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

JSON
"credit_limit":{15 items
"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":{}0 items
"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"
}
{
  "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

ChampTypeDescription
idstringIdentifiant de la limite (préfixe crl_).
objectstringToujours "credit_limit".
buyer_idstringEntreprise acheteuse concernée (cmp_…).
merchant_idstringMarchand propriétaire de la limite.
amount_excluding_taxinteger | nullPlafond HT en centimes. Au moins l'un des deux montants (HT ou TTC) est requis.
amount_including_taxinteger | nullPlafond TTC en centimes. Au moins l'un des deux montants (HT ou TTC) est requis.
currencystringCode devise ISO 4217 en minuscules (ex. eur).
sourceenumOrigine de la limite : merchant, credit_insurer ou bnpl_provider.
source_referencestring | nullRéférence dans le système source (identifiant de la décision chez l'assureur-crédit, etc.).
metadataobjectMap plate de scalaires `string | number | boolean`, selon la convention metadata de l’API.
valid_fromdate | nullDébut de validité. Null = valide depuis toujours.
valid_untildate | nullFin de validité. Null = pas d'expiration.
activebooleanSi false, la limite est ignorée dans les calculs de limite effective et dans la surveillance du receivable.
created_atdatetimeDate de création.
updated_atdatetimeDate 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.

SourceDescription
merchantPlafond fixé directement par le marchand. Décision interne, sans intervention de tiers.
credit_insurerPlafond accordé par un assureur-crédit (Allianz Trade, Coface…). source_reference porte l'identifiant de la garantie.
bnpl_providerPlafond 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.

Aucune limite active = aucune surveillance Si un acheteur n'a aucune limite active pour un marchand donné, les événements credit_limit.exceeded et credit_limit.approaching ne sont jamais émis pour cet acheteur — le receivable n'est pas surveillé contre un plafond.
La console expose les montants autorisés et les dates de validité des limites. Les données montrées proviennent du compte de test.
La console expose les montants autorisés et les dates de validité des limites. Les données montrées proviennent du compte de test. Agrandir

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.

HTTP
GET /v1/credit-limits/effective
  ?merchant_id=mer_1a2b
  &buyer_id=cmp_3a8f
  &currency=eur
  &strategy=maximum
  &basis=excluding_tax
  &sources=merchant,credit_insurer
  &at=2026-06-17
"effective_credit_limit":{14 items
"object":"effective_credit_limit"
"merchant_id":"mer_1a2b"
"buyer_id":"cmp_3a8f"
"currency":"eur"
"at":"2026-06-17"
"strategy":"maximum"
"basis":"excluding_tax"
"sources":[2 items
0:"merchant"
1:"credit_insurer"
]
"amount":50000000
"amount_excluding_tax":50000000
"amount_including_tax":null
"selected_credit_limit_id":"crl_5f3a2e"
"selected_credit_limit_ids":[1 item
0:"crl_5f3a2e"
]
"candidates":[1 item
0:{...}3 items
]
}
{
  "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

strategyDescription
maximumRetient la limite la plus haute parmi les candidates. Utile quand chaque source couvre l'intégralité du risque (ex. assurance-crédit).
minimumRetient la limite la plus basse. Approche conservatrice quand plusieurs companies doivent toutes approuver.
cumulativeAdditionne 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

JSON
{8 items
"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"
}
{
  "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

JSON
{1 item
"credit_limit":"platform.credit_limit"
}
{
  "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

JSON
{5 items
"company":"platform.company"
"currency":"eur"
"basis":"excluding_tax"
"strategy":"maximum"
"requested_amount":10000000
}
{
  "company": "platform.company",
  "currency": "eur",
  "basis": "excluding_tax",
  "strategy": "maximum",
  "requested_amount": 10000000
}

Le node sélectionne la route approved ou rejected.

Sorties

JSON
{3 items
"effective_credit_limit":"platform.effective_credit_limit"
"credit_exposure":"platform.credit_exposure"
"credit_availability_check":"platform.credit_availability_check"
}
{
  "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é :

NodeRôle
credit.fetch_effective_credit_limitRésout la limite effective (stratégie, base, sources, date).
credit.fetch_credit_exposureRécupère l'exposition de crédit courante de la company.
credit.check_credit_availabilityDécide (approved / rejected) si le montant demandé tient dans la capacité disponible (limite − exposition).
credit.grant_creditAugmente l'exposition autorisée après décision favorable — à appeler après approved pour consommer la capacité.

Événements

ÉvénementDéclencheur
credit_limit.updatedLa limite vient d'être créée ou modifiée (montants, dates, active, source_reference).
credit_limit.exceededLe solde TTC du receivable de l'acheteur dépasse la limite active. Déclenche également la suspension de la company.
credit_limit.approachingLe 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.