Aller au contenu

Règles Shield

Les règles personnalisées, la liste de blocage, la liste d'autorisation et leur priorité.

Le score décide seul la plupart du temps. Trois dérogations déterministes s'appliquent ensuite aux cas où vous possédez une information invisible dans les signaux : un client fiable, un numéro déjà utilisé pour vous frauder ou une tranche de paiements que vous souhaitez contrôler quel que soit son score.

Toutes les trois nécessitent Shield Advanced, à une exception près : un client que vous avez autorisé depuis la file d'examen reste autorisé avec tous les plans. Rien de tout cela ne s'exécute tant que votre propre configuration de Shield n'est pas active.

Ordre de résolution d'une décision

Rien ici ne remplace le score. Tous ces éléments s'appliquent après son calcul. Cette séquence explique tous les résultats présentés sur cette page.

ÉtapeDéroulement
1Les signaux sont collectés et le score est calculé
2Une correspondance avec la liste de blocage ou les sanctions fixe le score à 100
3Le score est comparé à vos seuils et produit une autorisation, un examen ou un blocage
4Vos règles sont parcourues dans l'ordre et la première règle live correspondante décide
5L'action de cette règle s'applique par-dessus la décision du score

La règle de la première correspondance s'applique uniquement à l'étape 4. L'étape 2 explique pourquoi une règle d'autorisation ne peut pas sauver un client présent dans la liste de blocage.

Composition d'une règle

namestringobligatoire
Jusqu'à 120 caractères. Ce nom apparaît dans les motifs d'un paiement décidé par cette règle. Nommez-la donc selon ce qu'elle détecte.
conditionsarrayobligatoire
Entre une et dix conditions, chacune composée d'un champ, d'un opérateur et d'une valeur. Elles doivent toutes être satisfaites. Il n'existe aucun OR et une liste vide ne correspond à rien.
actionenumobligatoire
block, review, challenge_3ds ou allow. Le tableau ci-dessous décrit chaque action.
modeenumobligatoiredéfaut : live
Les règles live décident. Les règles test sont évaluées et comptabilisées sans jamais rien modifier.
priorityintegerfacultatifdéfaut : dix au-dessus de la valeur la plus élevée
La valeur la plus faible s'exécute en premier. Les règles de même priorité sont parcourues de la plus récente à la plus ancienne. La plus récente remporte donc une égalité.
enabledbooleanfacultatifdéfaut : true
Une règle désactivée n'est pas évaluée et ne comptabilise aucune correspondance.

Chaque règle contient également un compteur de correspondances et l'heure de sa dernière correspondance. Ces deux valeurs sont mises à jour pour tous les paiements concernés, y compris pour les règles test. Ce compteur mesure réellement si une règle produit un effet.

Les huit champs

Le générateur repose sur un catalogue fermé. Il ne possède aucun langage d'expression et ne peut accéder à aucun élément absent de cette liste, y compris le score de risque lui-même.

ChampTypeOpérateurs
Montant de la transactionnumbergt gte lt lte eq
Deviselistin not.in
Moyen de paiementlistin not.in
Adresse e-mail du clienttexteq contains matches
Téléphone du clientlistin not.in
Pays de l'adresse IPlistin not.in
Première transaction de ce clientbooleanis_true is_false
Correspond à une entrée de la liste de blocagebooleanis_true

Vous devez connaître plusieurs comportements avant d'écrire une règle.

Le montant utilise les unités principales, comme le paiement. 50000 représente donc cinquante mille XAF.

Le moyen de paiement correspond au type du canal, pas à son slug : card, mobile_money, wallet, crypto, ussd, voucher, bnpl, redirect, et trois types bancaires, bank.transfer, bank.debit et bank.redirect. Il n'existe pas de type bank seul : une règle sur les paiements bancaires liste les types bancaires qu'elle vise. C'est le seul endroit du produit où un terme de niveau produit est la bonne valeur.

Les numéros de téléphone sont comparés uniquement selon leurs chiffres. +237 6 70 00 00 00 et 237670000000 représentent donc la même valeur. La comparaison des adresses e-mail ne tient pas compte de la casse, tout comme matches, dont * est le seul caractère générique et qui est ancré aux deux extrémités.

Première transaction signifie que ce client n'a encore jamais réussi un paiement live avec vous. Un paiement sans client associé compte comme une première transaction.

Les quatre actions

L'effet d'une action dépend de la décision déjà prise par le score. Ce comportement surprend souvent.

ActionEffet
blockLe paiement est refusé, quel que soit son score
reviewLe paiement est signalé, sauf si le score l'a déjà bloqué. Un examen ne lève jamais un blocage
challenge_3ds3D Secure est demandé sur un paiement par carte. La décision d'autorisation, d'examen ou de blocage ne change pas
allowLa décision du score est ignorée et le paiement est traité, sauf en cas de correspondance avec votre liste de blocage ou avec les sanctions

challenge_3ds atteint l'émetteur uniquement par les prestataires qui le prennent en charge. Ailleurs, le prestataire applique sa propre politique 3D Secure et la règle ne change rien.

Mode test

Une règle en mode test est évaluée sur chaque paiement live, y compris ceux qu'une règle live a déjà tranchés. Elle comptabilise ses correspondances et est enregistrée comme correspondante sur le paiement, sans jamais prendre de décision. C'est ce qui se rapproche le plus d'une simulation dans Shield, et la seule disponible. Il n'existe toujours aucune sandbox pour Shield.

Pour l'utiliser, écrivez la règle envisagée en mode test, laissez-la fonctionner pendant une semaine, puis consultez son compteur de correspondances. Vous devez savoir qu'une règle aurait bloqué quatre cents paiements avant de la passer en live.

La liste de blocage

Une entrée dans la liste de blocage fixe le score à 100. Elle entraîne donc un refus avec tous les seuils que vous pourriez configurer. C'est l'outil le plus direct de Shield et le seul qui ne nécessite aucune règle.

typeenumobligatoire
email, phone, ip, country ou card_bin.
valuestringobligatoire
Contrôlée selon son type et enregistrée sous une seule forme : une adresse e-mail en minuscules, un téléphone en + suivi de 6 à 15 chiffres (+237 670 00 00 00 et 237670000000 sont donc une seule entrée), une adresse IP unique en IPv4 ou IPv6 (pas de plage), un pays en code ISO 3166-1 alpha-2 en majuscules, et un BIN de carte de 6 à 8 chiffres, comparé au début de la carte. Une valeur qui ne peut pas être de son type est refusée par un 422.
reasonstringfacultatif
Jusqu'à 500 caractères, à votre intention. La décision enregistre cette valeur comme motif.

Une entrée country est comparée au pays de l'adresse IP du payeur, pas à son numéro de téléphone ni à sa devise. Bloquer NG arrête tous les paiements effectués depuis une adresse IP nigériane, y compris ceux de vos propres clients nigérians qui se trouvent dans le pays.

Les entrées ip et country sont comparées à l'adresse du payeur lui-même. Si vous débitez depuis votre serveur avec une clé secrète, envoyez le jeton Wajub.signals() du payeur avec chaque débit.

La liste s'applique uniquement lorsqu'elle est activée

Une entrée dans la liste de blocage ne produit aucun effet tant que Shield et blocklist_enabled ne sont pas tous deux activés dans vos paramètres, y compris les entrées que Shield ajoute après un litige perdu. L'ajout d'une entrée depuis le Dashboard active la liste automatiquement. L'ajout par l'API ne le fait pas.

Une entrée card_bin correspond à toutes les cartes dont le numéro commence par ces chiffres. Une correspondance est refusée, ou part dans votre file d'examen, où vous pouvez rembourser le paiement et bloquer le payeur.

La liste de blocage est la seule partie de cette page qui possède une API.

POSThttps://api.wajub.com/shield/blocklist

Le type et la valeur sont obligatoires. Vous pouvez renseigner le motif, qui sera enregistré dans la décision lorsque l'entrée correspond.

Bloquer un numéro
curl https://api.wajub.com/shield/blocklist \
  -H "Authorization: sk.xxxxxxxxxxxxxxxx…" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "phone",
    "value": "+237690000000",
    "reason": "confirmed fraud, chargeback March"
  }'

La liste complète est renvoyée après chaque écriture. Vous n'avez donc pas besoin d'un second appel pour consulter le résultat.

La liste d'autorisation

Autoriser un client crée une règle d'autorisation qui s'exécute avant vos autres règles. Le Dashboard en écrit une lorsque vous clôturez un examen avec allow this customer : une règle par identifiant, avec une correspondance exacte sur l'adresse e-mail ou sur les chiffres du téléphone.

Cette règle est la seule partie de cette page qui fonctionne avec tous les plans. Sans Shield Advanced, elle reste lue à chaque paiement alors que toutes les autres règles sont en sommeil, et Shield, lists affiche les clients que vous avez autorisés et en retire un en un clic. C'est ainsi que vous libérez un payeur que Shield a refusé par erreur.

Ce qui compte est volontairement étroit : une règle allow en mode live avec une seule condition, l'adresse e-mail avec eq ou le téléphone avec in. Avec Shield Advanced, vous pouvez créer la même règle manuellement. Gardez-la tout aussi précise. Une règle allow avec contains au lieu de eq autoriserait [email protected] en même temps que [email protected], et c'est une règle personnalisée comme les autres : elle cesse d'être lue si vous quittez Shield Advanced.

Ce qu'une règle ne peut pas faire

Elle ne peut pas consulter le score. Le catalogue ne contient aucun champ de score de risque. Vous ne pouvez donc pas écrire « bloquer les premières transactions dont le score dépasse 60 ». Les seuils sont le seul moyen d'agir sur le score.

Elle ne peut pas combiner les conditions avec OR. Toutes les conditions d'une règle doivent être remplies. Deux possibilités nécessitent deux règles.

Elle ne peut pas lire vos métadonnées. Aucun élément envoyé avec le paiement n'est visible dans une règle, à l'exception du montant, de la devise, du canal, de l'adresse e-mail et du téléphone du client.

Elle ne peut pas sortir un paiement de la liste de blocage. Cette décision correspond à l'étape 2 ci-dessus et est prise avant même la lecture des règles.

Que pensez-vous de ce contenu ?