Aller au contenu

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.

channelstringfacultatif
Un slug de canal exact, identique à celui utilisé par le routeur : cm.mtn, sn.wave, card. Une valeur vide correspond à tous les canaux.
currencystringfacultatif
Code ISO, enregistré en majuscules. Une valeur vide correspond à toutes les devises.
min_amount / max_amountmontantfacultatif
Bornes inclusives dans la devise saisie et dans les mêmes unités principales que le paiement. Chaque borne peut rester ouverte.
country_codestringfacultatif
Deux lettres. Redondant avec le canal sur tous les réseaux d'opérateur, ce champ ne restreint actuellement rien. Voir ci-dessous.
provider_idstringobligatoire
La connexion unique à laquelle cette règle attribue un bonus. Elle doit correspondre à un prestataire déjà connecté à votre compte, actif et en mode live.
priorityintegerobligatoiredéfaut : 0
Ajoutée au score de correspondance. Il s'agit de la priorité propre à la règle, sans aucun rapport avec celle de votre connexion.
is_activebooleanfacultatifdéfaut : true
Les règles inactives ne sont jamais chargées.

Toutes 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 correspondancePoints
La règle correspond1000
Elle fixe un canal500
Elle fixe une devise500
Elle fixe une plage de montants, avec au moins une borne500
Elle fixe un pays500
La priority propre à la règleSa 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. 1
    cinetpay
    accepté1.1 s
    priority 0 · score 2000règle +2000
  2. 2
    flutterwave
    jamais appelée
    priority 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.

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.

ChampValeur
channelcm.mtn
currencyXAF
max_amount100000
provider_idvotre connexion préférée
priority0

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.

ChampComportement
fallback_provider_idEnregistré. L'ordre de repli provient de la liste des candidats, jamais d'une règle
weightEnregistré. La répartition du trafic utilise le weight de la connexion, pas celui de la règle
Fenêtres temporellesEnregistrées, jamais évaluées
Segments de clientsEnregistrés, jamais évalués
Filtres de métadonnéesEnregistrés, jamais évalués
Plafonds de fréquenceEnregistré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.

Que pensez-vous de ce contenu ?