Documentation

Documentation de l’API

Les appels que votre système adresse à YARDA : analyse des transactions, qualifications, filtrage des sanctions et état du service. Les opérations, les champs et leurs types sont générés depuis la description OpenAPI de l’API ; les explications sont rédigées par l’équipe YARDA.

Générée depuis la description OpenAPI de l’API, version 1.0.0.

Les principes

  • Authentification

    Chaque appel porte l’en-tête X-API-Key avec la clé de votre établissement. Votre administrateur la crée dans la console, avec une durée de vie et des droits : envoyer des transactions, lire les résultats, transmettre des qualifications. Elle ne s’affiche qu’une fois. L’adresse de l’API vous est communiquée avec votre accès.

  • Requêtes rejouables

    Ajoutez l’en-tête Idempotency-Key à une requête POST : renvoyée avec la même clé dans les 24 heures, elle obtient la même réponse, signalée par l’en-tête Idempotent-Replayed. La même clé avec une autre requête est refusée (422) ; une requête encore en cours donne 409.

  • Limites

    Par défaut, 600 requêtes par minute et par clé, 1 200 par minute et par adresse, et 1 Mo par requête (413 au-delà). Une requête refusée pour la cadence reçoit 429 et l’en-tête Retry-After ; les en-têtes X-RateLimit indiquent où vous en êtes.

  • Traçabilité

    Chaque réponse porte un en-tête X-Request-ID. Indiquez-le au support YARDA pour qu’il retrouve la requête.

Les opérations

Une réponse peut contenir d’autres champs, réservés à des usages internes ou anciens : ignorez-les.

POST/v1/predict/fraud

Analyser une transaction

Envoyez la transaction avant de l’exécuter : la réponse donne la décision, le score et ses raisons. Envoyez transaction, avec les noms de champs standard, ou raw_transaction, avec ceux de votre système. Droit requis : envoyer des transactions.

Clé d’API requise

Corps de la requête (JSON)

raw_transactionobject · facultatif
La transaction avec les noms de champs de votre système, à la place de transaction. La correspondance est établie à la mise en service.
request_idstring · facultatif
Identifiant de l’analyse : le vôtre, ou celui que génère YARDA. Un identifiant déjà utilisé est refusé (409).
transactionobject · facultatif
La transaction, avec les noms de champs standard. Elle ou raw_transaction est obligatoire.
transaction.amountnumber · obligatoire
Montant, positif ou nul, dans la devise indiquée.
transaction.receiver_idstring · obligatoire
Identifiant du bénéficiaire dans votre système. Pseudonymisé à l’arrivée.
transaction.sender_idstring · obligatoire
Identifiant de l’expéditeur dans votre système. Pseudonymisé à l’arrivée.
transaction.transaction_idstring · obligatoire
Votre référence de la transaction, unique dans votre établissement (100 caractères au plus).
transaction.agent_idstring · facultatif
Agent qui a traité l’opération. Pseudonymisé à l’arrivée.
transaction.cash_point_idstring · facultatif
Caisse de l’agent ou point de retrait. Pseudonymisé à l’arrivée.
transaction.channelstring · facultatif
Canal de l’opération : agent, application, USSD, web, par exemple.
transaction.corridorstring · facultatif
Corridor de la transaction, selon la nomenclature de votre profil.
transaction.currencystring · facultatif
Code ISO 4217 de la devise, ou symbole d’une monnaie stable comme EURC ou USDC.
transaction.device_changed_atstring (date-time) · facultatif
Date du dernier changement d’appareil de l’expéditeur.
transaction.device_idstring · facultatif
Appareil ou installation de l’application de l’expéditeur. Pseudonymisé à l’arrivée.
transaction.fee_amountnumber · facultatif
Frais facturés à l’expéditeur, dans la devise de l’opération ; comparés à votre grille tarifaire.
transaction.funding_methodstring · facultatif
Comment l’expéditeur a payé : cash, mobile_money, bank_account, card, crypto ou other.
transaction.ip_addressstring · facultatif
Adresse IP d’une opération à distance (IPv4 ou IPv6). Conservée sous pseudonyme.
transaction.kyc_tierstring · facultatif
Niveau de connaissance du client de l’expéditeur dans votre système.
transaction.locationstring · facultatif
Accepté pour compatibilité, jamais conservé.
transaction.merchant_idstring · facultatif
Marchand payé. Pseudonymisé à l’arrivée.
transaction.metadataobject · facultatif
Informations complémentaires de votre système ; l’analyse ne les utilise pas.
transaction.original_transaction_idstring · facultatif
Pour un remboursement ou une annulation, la référence de l’opération qu’il défait.
transaction.payout_amountnumber · facultatif
Montant payé au bénéficiaire, quand il diffère du montant envoyé (autre devise, frais déduits).
transaction.payout_currencystring · facultatif
Devise payée au bénéficiaire.
transaction.payout_methodstring · facultatif
Comment le bénéficiaire a été payé : cash, mobile_money, bank_account, card, crypto ou other.
transaction.pin_reset_atstring (date-time) · facultatif
Date de la dernière réinitialisation du code ou du mot de passe de l’expéditeur.
transaction.receiver_countrystring · facultatif
Pays du bénéficiaire, en code ISO (par exemple CI).
transaction.receiver_namestring · facultatif
Nom du bénéficiaire. Exigé par la loi sur tout virement et criblé contre vos listes de sanctions. Comparé en mémoire, jamais conservé.
transaction.receiver_phonestring · facultatif
Téléphone du bénéficiaire. Pseudonymisé à l’arrivée.
transaction.sender_addressstring · facultatif
Adresse de l’expéditeur, l’un des moyens de l’identifier exigés par la loi. Seule sa présence est vérifiée ; jamais conservée.
transaction.sender_balancenumber · facultatif
Solde du compte ou du portefeuille de l’expéditeur avant l’opération.
transaction.sender_birth_datestring (date) · facultatif
Date de naissance de l’expéditeur ; avec le lieu de naissance, elle suffit à l’identifier. Seule sa présence est vérifiée ; jamais conservée.
transaction.sender_birth_placestring · facultatif
Lieu de naissance de l’expéditeur. Seule sa présence est vérifiée ; jamais conservé.
transaction.sender_countrystring · facultatif
Pays de l’expéditeur, en code ISO (par exemple SN).
transaction.sender_declared_monthly_amountnumber · facultatif
Montant mensuel que l’expéditeur a déclaré à l’entrée en relation.
transaction.sender_id_numberstring · facultatif
Numéro de la pièce d’identité officielle de l’expéditeur. Seule sa présence est vérifiée ; jamais conservé.
transaction.sender_namestring · facultatif
Nom de l’expéditeur. Exigé par la loi sur tout virement (loi uniforme, article 39 ; règlement (UE) 2023/1113) et criblé contre vos listes de sanctions. Comparé en mémoire, jamais conservé.
transaction.sender_phonestring · facultatif
Téléphone de l’expéditeur. Pseudonymisé à l’arrivée.
transaction.sender_sincestring (date) · facultatif
Date d’entrée en relation avec l’expéditeur.
transaction.sender_typestring · facultatif
Personne physique (person) ou morale (legal_entity).
transaction.sim_swap_atstring (date-time) · facultatif
Date du dernier changement de carte SIM de l’expéditeur, si vous la connaissez.
transaction.statusstring · facultatif
Statut de l’opération : completed, pending, failed, cancelled ou reversed. Les termes courants de vos exports sont reconnus (success, refunded, annulé...).
transaction.timestampstring (date-time) · facultatif
Date et heure de la transaction, au format ISO 8601.
transaction.transaction_typestring · facultatif
Type d’opération : cash_in, cash_out, p2p, merchant_payment, bill_payment, remittance, par exemple.
transaction.wallet_idstring · facultatif
Portefeuille de l’expéditeur, s’il se distingue de l’expéditeur. Pseudonymisé à l’arrivée.

Réponse 200

anomaly_scorenumber · obligatoire
Score du modèle de comportement inhabituel, de 0 à 1.
client_idstring · obligatoire
L’identifiant de votre établissement chez YARDA.
client_phasestring · obligatoire
La phase d’apprentissage de votre espace.
decisionstring · obligatoire
La décision. block n’apparaît que si vous avez autorisé le blocage.Valeurs : allow, review, alert, block
explanationsarray of object · obligatoire
La contribution de chaque modèle au score final.
explanations[].scorenumber · obligatoire
Son score, de 0 à 1.
explanations[].sourcestring · obligatoire
Le modèle concerné.
explanations[].weightnumber · obligatoire
Son poids.
explanations[].weighted_scorenumber · obligatoire
Son score multiplié par son poids.
explanations[].detailsarray of string · facultatif
Précisions propres au modèle.
final_scorenumber · obligatoire
Score final, de 0 à 1 : le rang de la transaction dans votre propre trafic.
inference_time_msnumber · obligatoire
La durée de l’analyse côté serveur, en millisecondes.
ml_scorenumber · obligatoire
Score du modèle supervisé, de 0 à 1, lorsqu’un tel modèle est en service.
request_idstring · obligatoire
Identifiant de l’analyse : le vôtre, ou celui que génère YARDA. Un identifiant déjà utilisé est refusé (409).
thresholdsobject · obligatoire
Les seuils de revue, d’alerte et de blocage appliqués à cette analyse.
timestampstring (date-time) · obligatoire
Date et heure de la réponse.
transaction_idstring · obligatoire
Votre référence de la transaction.
weightsobject · obligatoire
Poids de chaque modèle dans le score final.
decision_causeobject · facultatif
La cause décisive de la décision.
decision_cause.decisionstring · obligatoire
La décision que cette cause explique.
decision_cause.kindstring · obligatoire
Nature de la cause : score_band, score_rules, detection_cap, typology, list_entry, declarative, on_error ou blocking_disabled.
decision_cause.reason_enstring · obligatoire
La cause, rédigée en anglais.
decision_cause.reason_frstring · obligatoire
La cause, rédigée en français.
decision_cause.detailsobject · facultatif
Les valeurs citées dans la cause : score, seuil, version.
decision_cause.originalobject · facultatif
Pour blocking_disabled, la cause qui demandait le blocage.
decision_cause.rulestring · facultatif
La règle qui a décidé, lorsque c’est une règle.
decision_policyobject · facultatif
Présent lorsque votre politique a modifié la décision : un blocage ramené à une alerte, par exemple.
decision_policy.codestring · obligatoire
Nature de l’ajustement, aujourd’hui blocking_disabled.
decision_policy.decisionstring · obligatoire
La décision après l’ajustement.
decision_policy.original_decisionstring · obligatoire
La décision avant l’ajustement.
decision_policy.reason_enstring · obligatoire
L’ajustement, expliqué en anglais.
decision_policy.reason_frstring · obligatoire
L’ajustement, expliqué en français.
degradedboolean · facultatif
Vrai lorsqu’un modèle n’a pas pu répondre : la décision suit alors le plancher fixé par votre politique.Par défaut : false
legalobject · facultatif
Le socle légal, à part de la décision : l’expéditeur et le bénéficiaire criblés contre vos listes de sanctions quand vous envoyez leurs noms (sender_name, receiver_name).
legal.holdboolean · obligatoire
Vrai lorsqu’une partie ressemble à une entrée d’une liste de sanctions, ou que le criblage a échoué : n’exécutez pas le virement avant qu’une personne ait statué dans la console. Le gel ne change ni le score ni la décision. Vous êtes prévenu de sa levée par webhook (legal.hold.updated) et pouvez suivre chaque gel avec GET /v1/legal-holds.
legal.screeningstring · obligatoire
screened : les parties nommées ont été criblées ; names_absent : aucun nom envoyé, rien n’a pu être criblé ; unavailable : aucune de vos listes n’est chargée ; failed : le criblage a échoué et le virement est gelé.Valeurs : screened, names_absent, unavailable, failed
legal.cashobject · facultatif
Les espèces du jour des parties, pour un client soumis à l’UEMOA : pour chaque partie qui a remis ou reçu des espèces, le jour local, le total en FCFA (cette opération comprise) et le nombre d’opérations, avec les seuils de 9 000 000 FCFA (identification, loi uniforme art. 17 i) et de 15 000 000 FCFA (déclaration à la CENTIF, art. 72). Nul pour une opération sans espèces.
legal.dutiesarray of string · facultatif
Ce que votre établissement doit faire, jamais un gel : cash_identification, identifier le client dont les espèces du jour dépassent 9 000 000 FCFA ; cash_report, déclarer les espèces à la CENTIF à partir de 15 000 000 FCFA.
legal.list_setstring · facultatif
Les versions des listes contre lesquelles les parties ont été criblées.
legal.partiesarray of object · facultatif
Pour chaque partie nommée : son rôle, son pseudonyme, son statut (clear, potential, confirmed, dismissed), les références des entrées soulevées et le meilleur score.
legal.reasonsarray of string · facultatif
Les motifs du gel : sanctions_potential_sender, sanctions_potential_receiver, sanctions_confirmed_sender, sanctions_confirmed_receiver, screening_failed, transfer_information_incomplete.
legal.transfer_informationobject · facultatif
Si le virement porte les informations que la loi exige sur ses parties : statut (complete, incomplete, not_applicable, ou attested quand votre établissement mène l’analyse de ses alertes et tient lui-même ces informations), ce qui manque (payer_name, payee_name, payer_identification) et les régimes appliqués (uemoa, eu). Incomplet, le virement est gelé : ne l’exécutez pas avant d’avoir obtenu ces informations.
model_version_idinteger · facultatif
La version du modèle supervisé qui a noté la transaction, le cas échéant.
reasonsarray of object · facultatif
Les variables de comportement qui expliquent le score.
reasons[].directionstring · obligatoire
high si la valeur est inhabituellement haute, low si elle est basse.
reasons[].featurestring · obligatoire
La variable concernée.
reasons[].typicalnumber · obligatoire
La valeur habituelle.
reasons[].valuenumber · obligatoire
La valeur pour cette transaction.
reasons[].weightnumber · obligatoire
Le poids de la raison : rareté pour le modèle de comportement, contribution vers la fraude pour le modèle supervisé.
reasons[].sourcestring · facultatif
Le modèle qui donne la raison : anomaly ou supervised.
triggered_rulesarray of object · facultatif
Les règles et typologies qui ont agi sur la transaction.
triggered_rules[].rule_namestring · obligatoire
Le nom de la règle.
triggered_rules[].rule_typestring · obligatoire
typology (typologie intégrée ou liste de blocage) ou declarative (votre règle).
triggered_rules[].scorenumber · obligatoire
La hausse de score demandée, 1 lorsqu’elle n’en demande aucune.
triggered_rules[].descriptionstring · facultatif
Pourquoi la règle a agi, en anglais.
triggered_rules[].severitystring · facultatif
La décision minimale imposée (review, alert, block), ou flag.Par défaut : low
triggered_rules[].versioninteger · facultatif
La version de votre règle.
warningsarray of object · facultatif
Ce que la transaction contient et que son modèle n’a pas appris : un champ presque toujours rempli à l’entraînement et absent ici, ou une valeur jamais vue. La transaction peut paraître inhabituelle pour cette seule raison : vérifiez ce que votre intégration envoie. Ces avertissements ne changent jamais la décision ; liste vide quand il n’y en a pas.
warnings[].codestring · obligatoire
field_absent (champ absent) ou unknown_value (valeur inconnue du modèle).
warnings[].fieldstring · obligatoire
Le champ concerné de la transaction.
warnings[].message_enstring · obligatoire
L’avertissement rédigé en anglais.
warnings[].message_frstring · obligatoire
L’avertissement rédigé en français.
warnings[].training_sharenumber · obligatoire
Part des transactions d’entraînement où le champ est rempli, de 0 à 1.
warnings[].valuestring · facultatif
Pour unknown_value, la valeur reçue.

422 Requête non conforme au schéma.

GET/v1/predictions/{request_id}

Relire une analyse

Renvoie l’analyse enregistrée sous cet identifiant, si elle appartient à votre établissement (404 sinon). Droit requis : lire les résultats.

Clé d’API requise

Paramètres

request_idstring · obligatoire
L’identifiant de l’analyse, renvoyé par l’appel d’analyse.

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

POST/v1/predictions/{request_id}/feedback

Qualifier une analyse

Indique si l’opération analysée était légitime ou relevait d’un type de fraude de votre taxonomie. Droit requis : transmettre des qualifications.

Clé d’API requise

Paramètres

request_idstring · obligatoire
L’identifiant de l’analyse, renvoyé par l’appel d’analyse.

Corps de la requête (JSON)

labelstring · obligatoire
Le type de fraude de votre taxonomie, ou legitimate.
investigator_idstring · facultatif
La personne qui a qualifié, selon votre système.
notesstring · facultatif
Une note libre.

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

POST/v1/labels

Transmettre des qualifications tardives

Ce que vous apprenez après la décision : réclamations, annulations, conclusions d’enquête, jusqu’à 1 000 par appel. Chaque qualification est vérifiée séparément ; les valides sont enregistrées même si d’autres sont refusées. Droit requis : transmettre des qualifications.

Clé d’API requise

Corps de la requête (JSON)

labelsarray of object · obligatoire
Les qualifications, de 1 à 1 000.
labels[].event_atstring (date-time) · obligatoire
Date du fait : ni antérieure à la transaction, ni dans le futur.
labels[].is_fraudboolean · obligatoire
Vrai pour une fraude, faux pour une opération légitime.
labels[].sourcestring · obligatoire
D’où vient l’information : complaint (réclamation), reversal (annulation) ou investigation (conclusion d’enquête).Valeurs : complaint, reversal, investigation
labels[].transaction_idstring · obligatoire
Votre référence d’une transaction déjà reçue par YARDA.
labels[].fraud_typestring · facultatif
Le type de fraude, qui doit appartenir à votre taxonomie.
labels[].notestring · facultatif
Une note libre, 2 000 caractères au plus.

Réponse 200

createdinteger · obligatoire
Qualifications enregistrées pour la première fois.
rejectedarray of object · obligatoire
Qualifications refusées, chacune avec sa raison.
rejected[].reasonstring · obligatoire
Pourquoi elle est refusée.
rejected[].transaction_idstring · obligatoire
La référence de la transaction concernée.
updatedinteger · obligatoire
Qualifications qui en remplacent une précédente.

422 Requête non conforme au schéma.

GET/v1/labels/summary

Compter les qualifications par source

Le nombre de qualifications reçues de chaque source, pour vérifier que vos envois arrivent.

Clé d’API requise

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

POST/v1/disputes

Transmettre des litiges

Les réclamations, litiges et rétrofacturations de vos clients, jusqu’à 1 000 par appel, nouveaux ou mis à jour : renvoyez chacun sous son external_id quand son statut change. Une contestation pour fraude donne une qualification aux modèles, sa conclusion une autre, un retrait la reprend ; une contestation de service n’en donne aucune. Chaque litige est vérifié séparément. Droit requis : transmettre des qualifications.

Clé d’API requise

Corps de la requête (JSON)

disputesarray of object · obligatoire
De 1 à 1 000 litiges.
disputes[].external_idstring · obligatoire
Votre référence du litige, la même à chaque mise à jour.
disputes[].kindstring · obligatoire
complaint (réclamation), dispute (litige) ou chargeback (rétrofacturation).Valeurs : complaint, dispute, chargeback
disputes[].opened_atstring (date-time) · obligatoire
Quand le client l’a déposé (ISO 8601).
disputes[].reasonstring · obligatoire
Le motif : fraud, unauthorised, scam, account_takeover (contestations pour fraude), ou not_received, processing_error, duplicate, other.Valeurs : fraud, unauthorised, scam, account_takeover, not_received, processing_error, duplicate, other
disputes[].transaction_idstring · obligatoire
Votre référence de la transaction contestée.
disputes[].amountnumber · facultatif
Le montant contesté.
disputes[].currencystring · facultatif
La devise du montant contesté.
disputes[].fraud_typestring · facultatif
Le type de fraude de votre taxonomie, pour une contestation pour fraude.
disputes[].notestring · facultatif
Une note de votre part, sans nom ni coordonnées.
disputes[].resolved_atstring (date-time) · facultatif
Quand vous l’avez conclu ; obligatoire s’il est fondé ou rejeté.
disputes[].statusstring · facultatif
open (par défaut), upheld (fondé), rejected (rejeté) ou withdrawn (retiré).Valeurs : open, upheld, rejected, withdrawnPar défaut : open

Réponse 200

createdinteger · obligatoire
Qualifications enregistrées pour la première fois.
labels_retractedinteger · obligatoire
Qualifications reprises (retrait, ou motif qui n’est plus une fraude).
labels_writteninteger · obligatoire
Qualifications écrites ou corrigées pour les modèles.
refusedarray of object · obligatoire
Les entrées refusées, chacune avec son motif.
refused[].external_idstring · obligatoire
La référence du litige refusé.
refused[].reasonstring · obligatoire
Pourquoi elle est refusée.
updatedinteger · obligatoire
Qualifications qui en remplacent une précédente.

422 Requête non conforme au schéma.

GET/v1/disputes

Lister les litiges

Vos litiges, les plus récemment déposés d’abord, avec les qualifications que chacun donne aux modèles ; filtrables par statut, nature ou transaction.

Clé d’API requise

Paramètres

statusstring · facultatif
clear (aucun rapprochement), potential (à examiner), confirmed ou dismissed (décision d’une personne).Valeurs : open, upheld, rejected, withdrawn
kindstring · facultatif
Seulement cette nature : complaint, dispute ou chargeback.Valeurs : complaint, dispute, chargeback
transaction_idstring · facultatif
Votre référence de la transaction.
limitinteger · facultatif
Combien au plus (100 par défaut).
offsetinteger · facultatif
Combien en sauter, pour lire la page suivante.

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

PUT/v1/reference/agents

Transmettre le registre des agents

Vos agents, sous-agents, agences et points de retrait, jusqu’à 5 000 par appel. Les identifiants sont ceux de vos transactions, pseudonymisés de la même façon. Une entrée renvoyée remplace la précédente ; un agent se ferme par sa date de fermeture et reste au registre, pour que les opérations passées le retrouvent. Droit requis : transmettre des transactions.

Clé d’API requise

Corps de la requête (JSON)

agentsarray of object · obligatoire
De 1 à 5 000 entrées du registre.
agents[].identifierstring · obligatoire
L’agent_id de vos transactions (le cash_point_id pour un point de retrait).
agents[].kindstring · obligatoire
agent, sub_agent (sous-agent), branch (agence) ou cash_point (point de retrait).Valeurs : agent, sub_agent, branch, cash_point
agents[].closed_atstring (date) · facultatif
Quand il a cessé ; l’agent reste au registre.
agents[].countrystring · facultatif
Le pays où il opère (deux lettres).
agents[].opened_atstring (date) · facultatif
Quand il a commencé à opérer.
agents[].parentstring · facultatif
L’agent principal, pour un sous-agent seulement.
agents[].regionstring · facultatif
Votre propre code pour sa zone.

Réponse 200

createdinteger · obligatoire
Qualifications enregistrées pour la première fois.
refusedarray of object · obligatoire
Les entrées refusées, chacune avec son motif.
refused[].keystring · obligatoire
L’identifiant ou la référence de l’entrée refusée.
refused[].reasonstring · obligatoire
Pourquoi elle est refusée.
updatedinteger · obligatoire
Qualifications qui en remplacent une précédente.

422 Requête non conforme au schéma.

GET/v1/reference/agents

Lire le registre des agents

Votre registre tel qu’enregistré, les identifiants pseudonymisés.

Clé d’API requise

Paramètres

kindstring · facultatif
Seulement cette nature : agent, sub_agent, branch ou cash_point.Valeurs : agent, sub_agent, branch, cash_point
limitinteger · facultatif
Combien au plus (100 par défaut).
offsetinteger · facultatif
Combien en sauter, pour lire la page suivante.

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

PUT/v1/reference/tariffs

Transmettre la grille tarifaire

Les lignes de votre grille tarifaire, jusqu’à 1 000 par appel : frais = part fixe + taux x montant, entre un minimum et un maximum, pour une devise, une tranche de montant et, au besoin, un corridor, un type d’opération ou un mode de financement ou de paiement. Un nouveau tarif est une nouvelle ligne avec sa date de début, l’ancien clos par sa date de fin. Droit requis : transmettre des transactions.

Clé d’API requise

Corps de la requête (JSON)

linesarray of object · obligatoire
De 1 à 1 000 lignes tarifaires.
lines[].amount_minnumber · obligatoire
Début de la tranche de montant, inclus.
lines[].currencystring · obligatoire
La devise des opérations qu’elle tarife.
lines[].fee_fixednumber · obligatoire
La part fixe des frais.
lines[].fee_ratenumber · obligatoire
La part proportionnelle, en fraction du montant (0,01 vaut 1 %).
lines[].line_idstring · obligatoire
Votre référence de la ligne.
lines[].valid_fromstring (date) · obligatoire
Premier jour d’application.
lines[].amount_maxnumber · facultatif
Fin de la tranche de montant, exclue ; absente pour pas de limite.
lines[].corridorstring · facultatif
Seulement pour ce corridor, si renseigné.
lines[].fee_maxnumber · facultatif
Les frais maximaux, s’il y en a.
lines[].fee_minnumber · facultatif
Les frais minimaux, s’il y en a.
lines[].funding_methodstring · facultatif
Seulement pour ce mode de financement, si renseigné.Valeurs : cash, mobile_money, bank_account, card, crypto, other
lines[].payout_methodstring · facultatif
Seulement pour ce mode de paiement, si renseigné.Valeurs : cash, mobile_money, bank_account, card, crypto, other
lines[].transaction_typestring · facultatif
Seulement pour ce type d’opération, si renseigné.
lines[].valid_tostring (date) · facultatif
Jour où elle cesse de s’appliquer, exclu ; absent tant qu’elle est en vigueur.

Réponse 200

createdinteger · obligatoire
Qualifications enregistrées pour la première fois.
refusedarray of object · obligatoire
Les entrées refusées, chacune avec son motif.
refused[].keystring · obligatoire
L’identifiant ou la référence de l’entrée refusée.
refused[].reasonstring · obligatoire
Pourquoi elle est refusée.
updatedinteger · obligatoire
Qualifications qui en remplacent une précédente.

422 Requête non conforme au schéma.

GET/v1/reference/tariffs

Lire la grille tarifaire

Vos lignes tarifaires, toutes périodes confondues ou celles en vigueur à une date (active_on).

Clé d’API requise

Paramètres

active_onstring (date) · facultatif
Seulement les lignes en vigueur ce jour-là.
limitinteger · facultatif
Combien au plus (100 par défaut).
offsetinteger · facultatif
Combien en sauter, pour lire la page suivante.

Réponse 200

Le contenu de cette réponse n’est pas encore décrit champ par champ dans la description OpenAPI.

422 Requête non conforme au schéma.

POST/v1/screening

Filtrer un client

Compare le nom du client aux listes de sanctions en vigueur : liste consolidée des Nations unies et liste nationale de Côte d’Ivoire. Le nom est comparé en mémoire puis oublié ; le résultat est rattaché au pseudonyme du client. Un rapprochement est à examiner par une personne : rien n’est bloqué. Répond 503 tant qu’aucune liste n’est en vigueur.

Clé d’API requise

Corps de la requête (JSON)

customer_idstring · obligatoire
L’identifiant du client dans votre système. Seul son pseudonyme est conservé ; transmettez toujours le même pour le même client.
namestring · obligatoire
Le nom complet. Comparé en mémoire, jamais conservé.
birth_yearinteger · facultatif
L’année de naissance, entre 1900 et 2100. Facultative, elle réduit nettement les homonymies.

Réponse 200

idinteger · obligatoire
Identifiant du résultat.
listobject · obligatoire
La version de la liste des Nations unies, conservée pour les intégrations antérieures aux listes nationales.
list.entriesinteger · obligatoire
Nombre d’entrées.
list.fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
list.generated_atstring (date-time) · obligatoire
Date de publication de cette version.
list.sha256string · obligatoire
Empreinte SHA-256 de la version.
list.sourcestring · obligatoire
La liste.
listsarray of object · obligatoire
Toutes les listes en vigueur avec lesquelles le nom a été comparé.
lists[].entriesinteger · obligatoire
Nombre d’entrées.
lists[].fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
lists[].generated_atstring (date-time) · obligatoire
Date de publication de cette version.
lists[].sha256string · obligatoire
Empreinte SHA-256 de la version.
lists[].sourcestring · obligatoire
La liste.
matchesarray of object · obligatoire
Les entrées des listes proches du nom transmis.
matches[].birth_yearsarray of integer · obligatoire
Les années de naissance publiées.
matches[].kindstring · obligatoire
Personne physique ou entité.
matches[].listed_onstring · obligatoire
La date d’inscription.
matches[].matched_namestring · obligatoire
Le nom ou l’alias de l’entrée le plus proche du nom transmis.
matches[].namestring · obligatoire
Le nom de l’entrée.
matches[].programmestring · obligatoire
Le régime de sanctions de l’entrée.
matches[].referencestring · obligatoire
La référence de l’entrée dans sa liste.
matches[].scorenumber · obligatoire
La ressemblance des noms, de 0 à 1.
matches[].provenanceobject · facultatif
La version de la liste où l’entrée a été trouvée : éditeur, adresse de la publication, date de récupération et empreinte SHA-256.
matches[].sourcestring · facultatif
La liste d’origine.Par défaut : un_sc_consolidated
screened_atstring (date-time) · obligatoire
Date et heure du filtrage.
statusstring · obligatoire
clear (aucun rapprochement), potential (à examiner), confirmed ou dismissed (décision d’une personne).
subjectstring · obligatoire
Le pseudonyme du client.
decided_atstring (date-time) · facultatif
Date de cette décision.
decided_bystring · facultatif
La personne qui a confirmé ou écarté le rapprochement.
notestring · facultatif
Le motif de cette décision.

422 Requête non conforme au schéma.

POST/v1/screening/batch

Filtrer jusqu’à 1 000 clients

Le même filtrage pour une liste de clients. La réponse compte les clients filtrés et ne détaille que ceux qui ont un rapprochement à examiner ou confirmé.

Clé d’API requise

Corps de la requête (JSON)

customersarray of object · obligatoire
Les clients à filtrer, de 1 à 1 000.
customers[].customer_idstring · obligatoire
L’identifiant du client dans votre système. Seul son pseudonyme est conservé ; transmettez toujours le même pour le même client.
customers[].namestring · obligatoire
Le nom complet. Comparé en mémoire, jamais conservé.
customers[].birth_yearinteger · facultatif
L’année de naissance, entre 1900 et 2100. Facultative, elle réduit nettement les homonymies.

Réponse 200

clearinteger · obligatoire
Nombre de clients sans rapprochement.
listobject · obligatoire
La version de la liste des Nations unies, conservée pour les intégrations antérieures aux listes nationales.
list.entriesinteger · obligatoire
Nombre d’entrées.
list.fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
list.generated_atstring (date-time) · obligatoire
Date de publication de cette version.
list.sha256string · obligatoire
Empreinte SHA-256 de la version.
list.sourcestring · obligatoire
La liste.
listsarray of object · obligatoire
Toutes les listes en vigueur avec lesquelles le nom a été comparé.
lists[].entriesinteger · obligatoire
Nombre d’entrées.
lists[].fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
lists[].generated_atstring (date-time) · obligatoire
Date de publication de cette version.
lists[].sha256string · obligatoire
Empreinte SHA-256 de la version.
lists[].sourcestring · obligatoire
La liste.
screenedinteger · obligatoire
Nombre de clients filtrés.
to_reviewarray of object · obligatoire
Les clients avec un rapprochement à examiner ou confirmé, sous la forme d’un résultat de filtrage.
to_review[].idinteger · obligatoire
Identifiant du résultat.
to_review[].matchesarray of object · obligatoire
Les entrées des listes proches du nom transmis.
to_review[].screened_atstring (date-time) · obligatoire
Date et heure du filtrage.
to_review[].statusstring · obligatoire
clear (aucun rapprochement), potential (à examiner), confirmed ou dismissed (décision d’une personne).
to_review[].subjectstring · obligatoire
Le pseudonyme du client.
to_review[].decided_atstring (date-time) · facultatif
Date de cette décision.
to_review[].decided_bystring · facultatif
La personne qui a confirmé ou écarté le rapprochement.
to_review[].notestring · facultatif
Le motif de cette décision.

422 Requête non conforme au schéma.

GET/v1/dashboard/screening/status

Suivre l’état du filtrage

Les listes en vigueur et où en est votre clientèle : clients filtrés, rapprochements en attente ou confirmés, et date limite du nouveau filtrage après un changement de liste.

Clé d’API requise

Réponse 200

checked_atstring (date-time) · obligatoire
Dernière consultation de l’éditeur de la liste des Nations unies.
confirmedinteger · obligatoire
Rapprochements confirmés.
customersinteger · obligatoire
Nombre de clients filtrés.
listobject · obligatoire
La version de la liste des Nations unies, conservée pour les intégrations antérieures aux listes nationales.
list.entriesinteger · obligatoire
Nombre d’entrées.
list.fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
list.generated_atstring (date-time) · obligatoire
Date de publication de cette version.
list.sha256string · obligatoire
Empreinte SHA-256 de la version.
list.sourcestring · obligatoire
La liste.
listsarray of object · obligatoire
Toutes les listes en vigueur avec lesquelles le nom a été comparé.
lists[].entriesinteger · obligatoire
Nombre d’entrées.
lists[].fetched_atstring (date-time) · obligatoire
Date à laquelle YARDA l’a obtenue.
lists[].generated_atstring (date-time) · obligatoire
Date de publication de cette version.
lists[].sha256string · obligatoire
Empreinte SHA-256 de la version.
lists[].sourcestring · obligatoire
La liste.
on_current_listinteger · obligatoire
Clients filtrés avec les versions en vigueur.
overdueboolean · obligatoire
Vrai si cette date est dépassée.
pending_listsinteger · obligatoire
Versions de listes nationales lues et en attente de vérification.
potentialinteger · obligatoire
Rapprochements à examiner.
rescreen_due_atstring (date-time) · obligatoire
Date limite du nouveau filtrage, lorsqu’une liste a changé depuis le dernier.

422 Requête non conforme au schéma.

GET/health

Vérifier que le service répond

Un appel sans authentification ni limite de cadence, pour la supervision de votre côté.

Sans authentification

Réponse 200

statusstring · obligatoire
L’état du service.
timestampstring (date-time) · obligatoire
L’heure du serveur.
servicestring · facultatif
Le nom du service.Par défaut : mto-fraud-detector
versionstring · facultatif
La version du service.Par défaut : 0.1.0