Règles de routage
Ce qu'une règle peut fixer, la valeur de sa correspondance et les situations où elle ne peut pas aider.
Une règle de routage ajoute des points. Elle indique que lorsqu'un paiement possède certaines caractéristiques, l'une de vos connexions reçoit des points. Ceux-ci ne sont comparés qu'à ceux des autres connexions du même palier de priorité. Voilà tout le mécanisme.
Une règle n'est pas une liste ordonnée de prestataires et ne construit pas une chaîne de repli. La chaîne correspond à la liste de candidats classés décrite dans Orchestration des paiements. Une règle peut seulement modifier la première connexion d'un de ses paliers.
À partir de Growth, uniquement en live
Les règles de routage sont une fonctionnalité payante. Avec Pay as you go, la page Orchestration, Rules est remplacée par une invitation à changer de plan. Toute la section Orchestration est réservée au mode live par le middleware de route. Cette page suppose donc l'utilisation d'une clé live et d'un plan Growth, Scale ou Enterprise.
Ce que lit le routeur
Une règle possède quatre conditions, une cible et un nombre qui lui est propre. Tous les champs sont facultatifs, sauf la cible.
channelstringfacultatifcurrencystringfacultatifmin_amount / max_amountmontantfacultatifcountry_codestringfacultatifprovider_idstringobligatoirepriorityintegerobligatoiredéfaut : 0is_activebooleanfacultatifdéfaut : trueToutes vos règles actives sont évaluées pour chaque paiement live. Aucun ordre n'est à maintenir et la première correspondance ne l'emporte pas. Toutes les règles correspondantes contribuent, chacune pour sa propre cible.
Valeur d'une correspondance
Le score dépend du nombre de conditions réellement définies par la règle. Une règle vague vaut volontairement moins qu'une règle précise.
| Partie de la correspondance | Points |
|---|---|
| La règle correspond | 1000 |
| Elle fixe un canal | 500 |
| Elle fixe une devise | 500 |
| Elle fixe une plage de montants, avec au moins une borne | 500 |
| Elle fixe un pays | 500 |
La priority propre à la règle | Sa valeur, ajoutée telle quelle |
Prenons un compte connecté à CinetPay et à Flutterwave. Les deux connexions ont une priorité de 0,
peuvent traiter cm.mtn en XAF, et une règle associe cm.mtn et XAF à CinetPay avec une priorité
de règle de 0. CinetPay reçoit 1000 points pour la correspondance, 500 pour le canal et 500 pour
la devise, soit 2000. Flutterwave ne possède aucune règle. Sur un nouveau compte, cette connexion
reçoit au maximum le bonus du moindre coût et celui de la télémétrie.
Décision de routage · cm.mtn · 12 000 XAF
Une règle, deux connexions dans le même palier. L'écart entre 2000 et 250 est considérable.
- 1

cinetpayaccepté1.1 spriority 0 · score 2000règle +2000 - 2

flutterwavejamais appeléepriority 0 · score 250coût minimal +200réussite 91 % +50
Cet écart est intentionnel. Une règle vaut entre 1000 et 3000 points, contre 200 pour le coût et au maximum 50 pour le taux de réussite en direct. Lorsqu'une règle correspond, aucun autre élément du score ne peut l'emporter. Écrivez des règles pour les cas où vous connaissez une meilleure réponse que les chiffres. Laissez les chiffres décider dans les autres cas.
Deux règles sur la même connexion
Seule la règle au score le plus élevé est conservée pour chaque cible. Si une règle générale fixe
uniquement cm.mtn, tandis qu'une règle plus précise fixe cm.mtn, XAF et un montant maximal,
et que toutes deux ciblent CinetPay, CinetPay reçoit un seul score de 2500. La règle générale
n'ajoute aucun point. L'accumulation de règles sur une connexion ne cumule jamais leurs scores.
Deux règles sur des connexions différentes
Les deux comptent, chacune pour sa propre cible, et le total le plus élevé passe en premier. Vous pouvez ainsi répartir le trafic par montant : une règle par tranche, chacune ciblant une connexion différente.
Situations où une règle ne peut pas aider
Trois situations rendent silencieusement une règle inactive. Vérifiez-les avant de conclure que le moteur vous a ignoré.
Une règle ne traverse jamais un palier de priorité. Les candidats sont regroupés selon la
priority de votre connexion. Le groupe supérieur est entièrement essayé avant de passer au
suivant. Une règle de 3000 points qui cible une connexion d'un palier inférieur ne change rien. Le
palier supérieur reste essayé en premier et, si l'une de ses connexions accepte, la cible de votre
règle n'est jamais appelée. Si une règle semble ignorée, commencez par vérifier la priorité de la
connexion.
La cible doit être une de vos connexions. Le formulaire permet uniquement de choisir parmi les prestataires déjà connectés à votre compte, actifs et en mode live. La suspension ultérieure d'une connexion désactive également ses règles.
Le canal doit être un slug réellement reçu par le routeur. Au moment du classement des
candidats, le canal est le slug résolu d'un opérateur. Une règle basée sur un terme de produit comme
mobile_money, bank_transfer ou mobile ne correspond à rien, car aucun paiement n'est routé sur
ces chaînes.
Laissez la condition de pays vide
Le routeur déduit le pays du canal, pas du payeur : cm.mtn donne cm en minuscules. Il compare
cette valeur au country_code enregistré dans la règle, que le Dashboard écrit en majuscules.
Dans Postgres, CM et cm ne sont pas égaux. Une règle qui fixe un pays ne correspond donc à rien
aujourd'hui. Laisser ce champ vide ne vous fait rien perdre, car le canal contient déjà le pays
sur tous les réseaux d'opérateur. Une règle sur cm.mtn concerne déjà le Cameroun.
Une règle qui produit un effet
Le modèle à reproduire utilise un canal précis, indique explicitement la devise et cible une connexion déjà située dans le palier où la décision est prise.
Supposons que MTN Cameroon soit votre principal réseau. Trois connexions peuvent le traiter et l'une d'elles offre le meilleur taux d'acceptation pour les montants inférieurs à 100 000 XAF. Placez les trois connexions à la même priorité pour les mettre en concurrence, puis créez une règle.
| Champ | Valeur |
|---|---|
channel | cm.mtn |
currency | XAF |
max_amount | 100000 |
provider_id | votre connexion préférée |
priority | 0 |
Cette règle obtient 2500 points. Au-dessus de 100 000 XAF, elle ne correspond plus et son bonus disparaît. Les trois connexions sont alors départagées par leur coût et leur taux de réussite en direct. C'est généralement le comportement souhaité pour les montants les plus importants.
Les bornes de montant utilisent les unités principales, comme le paiement. 100000 représente
100 000 XAF, pas 1 000 XAF.
Le simulateur de la page Rules
La page Rules contient un simulateur qui accepte un canal, une devise et un montant, puis affiche les règles correspondantes. Il sert à vérifier que les conditions saisies sélectionnent bien les règles prévues.
Ce simulateur n'est pas le routeur. Il lit directement vos règles, sans reproduire les paliers de priorité des connexions, le bonus du moindre coût, le bonus du taux de réussite en direct ou le coupe-circuit. De plus, il compare la condition de pays sans tenir compte de la casse, contrairement au moteur. Un prestataire peut donc arriver en tête dans le simulateur sans jamais être appelé pour un paiement réel. Pour obtenir la véritable réponse, envoyez un paiement live et consultez le journal de routage.
Champs enregistrés par le formulaire, mais ignorés par le routeur
Le formulaire contient plus de champs que le moteur n'en utilise. Les champs suivants sont enregistrés dans votre règle et visibles lorsque vous la rouvrez, mais le parcours de paiement ne les lit jamais.
| Champ | Comportement |
|---|---|
fallback_provider_id | Enregistré. L'ordre de repli provient de la liste des candidats, jamais d'une règle |
weight | Enregistré. La répartition du trafic utilise le weight de la connexion, pas celui de la règle |
| Fenêtres temporelles | Enregistrées, jamais évaluées |
| Segments de clients | Enregistrés, jamais évalués |
| Filtres de métadonnées | Enregistrés, jamais évalués |
| Plafonds de fréquence | Enregistrés, jamais évalués |
Tous les éléments lus par le routeur figurent dans le premier tableau de cette page. Si le comportement attendu ne s'explique pas par ces champs, il ne provient pas de vos règles.
Pages associées
- Orchestration des paiementsLes filtres, les paliers de priorité et les trois éléments additionnés au score.
- Cascade et repliCe qui parcourt la liste et ce qui retire une route de la rotation.
- PrestatairesLa priorité, le poids et les tarifs négociés sur la connexion elle-même.
- Journal de routageLa règle qui a attribué un score à chaque connexion pour un paiement déjà effectué.