Limite de crédit (credit_limit)
Une credit_limit est un plafond de crédit accordé à un acheteur par un marchand. Un acheteur peut en avoir plusieurs — une par source de décision — et la plateforme résout à la demande la limite effective en combinant ces enregistrements selon une stratégie paramétrable.
Rôle
La limite de crédit encadre le risque acheteur dans les flux B2B différés. Elle est comparée au receivable de l'acheteur pour déclencher des alertes (credit_limit.approaching) ou bloquer de nouvelles transactions (credit_limit.exceeded). Elle est également utilisée dans les processus d'orchestration pour décider d'accorder ou refuser une demande de crédit.
Le modèle multi-sources permet de représenter des décisions provenant d'acteurs différents (le marchand lui-même, un assureur-crédit, un prestataire BNPL) et de les combiner selon la logique métier de chaque flux.
Identifiant et structure
Chaque limite de crédit porte un identifiant stable préfixé par crl_.
{
"object": "credit_limit",
"id": "crl_5f3a2e9b1c8d4f7e",
"buyer_id": "cmp_3a8f1d9c2b4e7f6a",
"merchant_id": "mer_1a2b3c4d5e6f7a8b",
"amount_excluding_tax": 50000000,
"amount_including_tax": null,
"currency": "eur",
"source": "credit_insurer",
"source_reference": "AT-GARANTIE-2026-00512",
"metadata": {},
"valid_from": "2026-01-01",
"valid_until": "2026-12-31",
"active": true,
"created_at": "2026-01-10T09:00:00.000Z",
"updated_at": "2026-01-10T09:00:00.000Z"
}Champs
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant de la limite (préfixe crl_). |
object | string | Toujours "credit_limit". |
buyer_id | string | Entreprise acheteuse concernée (cmp_…). |
merchant_id | string | Marchand propriétaire de la limite. |
amount_excluding_tax | integer | null | Plafond HT en centimes. Au moins l'un des deux montants (HT ou TTC) est requis. |
amount_including_tax | integer | null | Plafond TTC en centimes. Au moins l'un des deux montants (HT ou TTC) est requis. |
currency | string | Code devise ISO 4217 en minuscules (ex. eur). |
source | enum | Origine de la limite : merchant, credit_insurer ou bnpl_provider. |
source_reference | string | null | Référence dans le système source (identifiant de la décision chez l'assureur-crédit, etc.). |
metadata | object | Map plate de scalaires `string | number | boolean`, selon la convention metadata de l’API. |
valid_from | date | null | Début de validité. Null = valide depuis toujours. |
valid_until | date | null | Fin de validité. Null = pas d'expiration. |
active | boolean | Si false, la limite est ignorée dans les calculs de limite effective et dans la surveillance du receivable. |
created_at | datetime | Date de création. |
updated_at | datetime | Date de dernière mise à jour. |
Au moins l'un des deux montants (amount_excluding_tax ou amount_including_tax) est requis à la création. Les deux peuvent être renseignés simultanément. La basis choisie au moment du calcul détermine lequel est utilisé.
Source
La source identifie qui a pris la décision d'accorder cette limite. Un même acheteur peut avoir une limite par source, toutes actives en même temps.
| Source | Description |
|---|---|
merchant | Plafond fixé directement par le marchand. Décision interne, sans intervention de tiers. |
credit_insurer | Plafond accordé par un assureur-crédit (Allianz Trade, Coface…). source_reference porte l'identifiant de la garantie. |
bnpl_provider | Plafond accordé par un prestataire BNPL. Peut être combiné avec d'autres sources selon la stratégie choisie. |
Validité et activation
Une limite de crédit est prise en compte dans les calculs uniquement si elle est active: true et si la date courante est comprise dans la fenêtre [valid_from, valid_until] (les deux bornes sont inclusives ; une borne nulle signifie absence de contrainte de ce côté).
Mettre active: false suspend immédiatement la limite sans la supprimer, ce qui préserve l'historique des décisions. Une limite désactivée reste accessible via l'API mais n'est plus considérée par la surveillance du receivable ni par la résolution de la limite effective.
credit_limit.exceeded et credit_limit.approaching ne sont jamais émis pour cet acheteur — le receivable n'est pas surveillé contre un plafond.
Limite effective
Lorsqu'un acheteur a plusieurs limites actives (plusieurs sources, ou plusieurs décisions d'une même source), la plateforme les combine via l'endpoint de résolution.
GET /v1/credit-limits/effective ?merchant_id=mer_1a2b &buyer_id=cmp_3a8f ¤cy=eur &strategy=maximum &basis=excluding_tax &sources=merchant,credit_insurer &at=2026-06-17
{
"object": "effective_credit_limit",
"merchant_id": "mer_1a2b",
"buyer_id": "cmp_3a8f",
"currency": "eur",
"at": "2026-06-17",
"strategy": "maximum",
"basis": "excluding_tax",
"sources": ["merchant", "credit_insurer"],
"amount": 50000000,
"amount_excluding_tax": 50000000,
"amount_including_tax": null,
"selected_credit_limit_id": "crl_5f3a2e",
"selected_credit_limit_ids": ["crl_5f3a2e"],
"candidates": [
{
"id": "crl_5f3a2e",
"source": "credit_insurer",
"amount": 50000000
}
]
}Stratégies de résolution
| strategy | Description |
|---|---|
maximum | Retient la limite la plus haute parmi les candidates. Utile quand chaque source couvre l'intégralité du risque (ex. assurance-crédit). |
minimum | Retient la limite la plus basse. Approche conservatrice quand plusieurs companies doivent toutes approuver. |
cumulative | Additionne toutes les limites candidates. Utile quand les sources sont complémentaires (ex. marchand + assureur couvrent des tranches distinctes). |
Le champ basis (excluding_tax ou including_tax) détermine quel montant est utilisé pour la comparaison et retourné dans amount. Toutes les limites candidates doivent avoir le montant correspondant à la base choisie pour être retenues.
Dans les processus
credit.add_credit_limit
Crée une nouvelle limite de crédit pour une company. Utile pour enregistrer une décision d'assureur-crédit reçue via webhook ou formulaire.
Paramètres principaux
{
"company": "platform.company",
"basis": "excluding_tax",
"amount": 50000000,
"currency": "eur",
"source": "credit_insurer",
"source_reference": "AT-GARANTIE-2026-00512",
"valid_from": "2026-01-01",
"valid_until": "2026-12-31"
}Sortie
{
"credit_limit": "platform.credit_limit"
}credit.evaluate_credit_availability
Node routeur qui combine en une seule étape la résolution de la limite effective, le calcul de l'exposition courante et la décision d'approbation. C'est le point d'entrée recommandé pour les vérifications de capacité dans un processus de demande de crédit.
Paramètres
{
"company": "platform.company",
"currency": "eur",
"basis": "excluding_tax",
"strategy": "maximum",
"requested_amount": 10000000
}Le node sélectionne la route approved ou rejected.
Sorties
{
"effective_credit_limit": "platform.effective_credit_limit",
"credit_exposure": "platform.credit_exposure",
"credit_availability_check": "platform.credit_availability_check"
}Nodes individuels
Les trois étapes de credit.evaluate_credit_availability sont également disponibles séparément pour plus de flexibilité :
| Node | Rôle |
|---|---|
credit.fetch_effective_credit_limit | Résout la limite effective (stratégie, base, sources, date). |
credit.fetch_credit_exposure | Récupère l'exposition de crédit courante de la company. |
credit.check_credit_availability | Décide (approved / rejected) si le montant demandé tient dans la capacité disponible (limite − exposition). |
credit.grant_credit | Augmente l'exposition autorisée après décision favorable — à appeler après approved pour consommer la capacité. |
Événements
| Événement | Déclencheur |
|---|---|
credit_limit.updated | La limite vient d'être créée ou modifiée (montants, dates, active, source_reference). |
credit_limit.exceeded | Le solde TTC du receivable de l'acheteur dépasse la limite active. Déclenche également la suspension de la company. |
credit_limit.approaching | Le solde TTC atteint 80 % de la limite active (sans la dépasser). |
credit_limit.updated est émis à la fois à la création et à chaque modification — il n'y a pas d'événement credit_limit.created distinct.
credit_limit.exceeded et credit_limit.approaching sont émis lors du refresh du snapshot du receivable, uniquement si l'acheteur a une limite active. Voir la documentation du receivable pour le détail du déclenchement et la logique de suspension.