Passer au contenu principal
POST
curl

Autorisations

x-api-key
string
header
requis

La clé API de votre application, issue de Développeurs -> Clés API dans la Business Console. La clé principale dispose d'un accès complet. Une clé nommée peut être restreinte : aucun, lecture ou écriture par ressource, limitée à certains workflows ou aux sessions approuvées, à une liste d'adresses IP et à une date d'expiration. 401 signifie que la clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a été envoyée, que la clé n'a pas accès à cette ressource ou action, ou que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur une route de session signifie que la session est hors des workflows ou des statuts de la clé. Une clé sans accès aux médias reçoit les URL d'images, de vidéos et de PDF à null, et une clé sans accès en écriture aux sessions reçoit les liens et tokens de session à null. Voir https://docs.didit.me/console/api-keys.

Corps

application/json
transaction_id
string
requis

Votre identifiant unique pour cette transaction (128 caractères maximum).

Exemple:

"your-txn-2026-05-17-001"

transaction_category
enum<string>
requis

Catégorie de la transaction. Les alias en CamelCase (travelRule, userPlatformEvent, gamblingBet, …) sont également acceptés ; la valeur stockée/renvoyée est en camelCase pour les catégories composées de plusieurs mots.

Options disponibles:
finance,
kyc,
travel_rule,
user_event,
audit_trail_event,
gambling_bet,
gambling_limit_change,
gambling_bonus_change,
travelRule
Exemple:

"finance"

transaction_details
object
requis

Détails financiers principaux de la transaction.

subject
object
requis

L'objet (demandeur) de la transaction.

transaction_at
string<date-time>

Date et heure auxquelles la transaction a eu lieu. Prend par défaut l'heure actuelle si omis.

time_zone
string

Identifiant de fuseau horaire IANA, par exemple Europe/Madrid.

counterparty
object

La contrepartie de la transaction (facultatif).

custom_properties
object

Paires clé-valeur arbitraires associées à la transaction. Chaque clé peut être référencée dans les conditions de règles avec le chemin de champ custom_values.<key>.

Exemple:
travel_rule_details
object

Données Travel Rule. Lorsque la Travel Rule est activée et que transaction_category est travel_rule, Didit gère l'échange lui-même : il ignore status, protocol, required ainsi que obligations_count, et utilise originator_data, beneficiary_data et metadata. Sinon, Didit stocke ces valeurs en tant qu'enregistrement Travel Rule passif. Tant que la Travel Rule est activée, un transfert sortant supérieur ou égal à votre seuil doit comporter les informations requises par son régime (TFR de l'UE ou Recommandation 16 du GAFI), vérifiées sur les volets que vous transmettez : un champ manquant renvoie une erreur 400 sous travel_rule_details.originator_data ou travel_rule_details.beneficiary_data, par exemple « Le TFR de l'UE exige le nom du donneur d'ordre. »

network_snapshot
object

Instantané précalculé du graphe de réseau.

include_crypto_screening
boolean | null

Remplacement par transaction pour le filtrage par analyse de la blockchain crypto. Lorsqu'il vaut true, le filtrage crypto est effectué quelle que soit la valeur par défaut de l'application. Lorsqu'il vaut false, le filtrage crypto est ignoré même s'il est activé dans les paramètres de l'application. Lorsqu'il est omis ou défini sur null, la valeur par défaut au niveau de l'application configurée dans la Console est utilisée. Le filtrage crypto nécessite transaction_details.direction, currency_kind: "crypto", une chaîne ou une devise, ainsi que l'adresse de portefeuille sélectionnée par le sens de la transaction : le filtrage entrant pré-transfert utilise counterparty.payment_method.account_id, le filtrage entrant par hash de transaction utilise subject.payment_method.account_id, et le filtrage sortant utilise counterparty.payment_method.account_id. Lorsque transaction_details.payment_reference_id contient un hash de transaction de blockchain, Didit effectue le filtrage de la transaction et renvoie l'enrichissement du résumé de la transaction lorsqu'il est disponible.

Réponse

Transaction soumise et surveillée. Le corps contient l'ensemble des détails de la transaction (même structure que GET /v3/transactions/{transaction_id}/), reflétant les résultats des règles déjà appliquées.

Enregistrement de surveillance complet pour une transaction, tel que renvoyé par GET /v3/transactions/{transaction_id}/ et POST /v3/transactions/.

uuid
string<uuid>

Identifiant de transaction stable attribué par Didit. À utiliser comme {transaction_id} pour les appels de suivi.

environment
enum<string>

Environnement de l'application propriétaire de la transaction. Une transaction sandbox est enregistrée mais n'est jamais évaluée, filtrée, notifiée ou facturée, de sorte que son rule_runs vide signifie « non évaluée ».

Options disponibles:
live,
sandbox
transaction_number
integer

Numéro de transaction séquentiel propre à l'application affiché dans la console (ex. 4123).

txn_id
string

Le transaction_id que vous avez fourni lors de la création (128 caractères max.). Unique par application.

txn_date
string<date-time>

Date et heure auxquelles la transaction a eu lieu (à partir de transaction_at ; par défaut, la date de soumission).

zone_id
string | null

Identifiant de fuseau horaire IANA fourni au moment de la création.

transaction_type
string

Catégorie de premier niveau telle que stockée : finance, kyc, travelRule, userPlatformEvent, gamblingBet, gamblingLimitChange, gamblingBonusChange, auditTrailEvent. Notez que les valeurs composées de plusieurs mots sont renvoyées en camelCase même lorsqu'elles ont été transmises en snake_case.

action_type
string

Sous-type au sein de la catégorie (par exemple deposit, withdrawal, transfer). Correspond par défaut à la catégorie s'il n'est pas fourni.

direction
enum<string>

Direction relative au sujet. Stockée en majuscules quelle que soit la casse fournie (in/out/inbound/outbound sont acceptés en entrée).

Options disponibles:
INBOUND,
OUTBOUND
status
enum<string>

Verdict actuel de la surveillance. Les transactions sont créées avec le statut APPROVED ; les règles peuvent les faire basculer vers IN_REVIEW/DECLINED de manière synchrone.

Options disponibles:
APPROVED,
IN_REVIEW,
DECLINED,
AWAITING_USER
source
enum<string>

Origine de l'enregistrement : LIVE pour les transactions soumises via l'API ou le SDK, IMPORTED pour les transactions chargées via l'import de la console.

Options disponibles:
LIVE,
IMPORTED
amount
string

Montant de la transaction sous forme de chaîne décimale sans les zéros de fin (par ex. "1500", "0.5", "0.123456789012345678"). Jusqu'à 18 décimales.

currency
string

Code devise de amount. Tout code alphabétique ISO 4217 est accepté (par ex. EUR, USD, NGN), ainsi qu'un symbole d'actif crypto (par ex. BTC). Privilégiez un code actuellement en circulation. Tous les codes acceptés ne disposent pas d'un taux de change : lorsqu'aucun taux n'est disponible pour le code (par exemple l'unité de compte ISO XSU, ou un symbole crypto dont Didit n'établit pas le prix), la conversion automatique échoue et preferred_currency_amount est retourné nul, sauf si la requête a fourni un montant pré-converti amount_in_default_currency.

currency_type
string | null

fiat ou crypto, selon la valeur fournie dans currency_kind.

amount_in_default_currency
string | null

Montant pré-converti que vous avez fourni, sous forme de chaîne décimale sans les zéros de fin.

default_currency_code
string | null
preferred_currency_amount
string | null

amount converti dans la devise préférée de l'application, lorsqu'il est disponible.

preferred_currency_code
string | null
payment_details
string | null

Référence ou mémo de paiement en texte libre issu de la soumission.

payment_txn_id
string | null

Référence du système de paiement externe (par ex. hachage de transaction blockchain) issue de payment_reference_id.

score
integer

Score de risque cumulé par les règles (généralement 0–100). Plus il est élevé, plus le risque est grand.

severity
enum<string> | null

Gravité catégorielle du risque définie par les règles/fournisseurs (UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL). null jusqu'à ce qu'un élément la définisse.

Options disponibles:
UNKNOWN,
LOW,
MEDIUM,
HIGH,
CRITICAL
decision_reason_code
string | null

Raison lisible par machine pour le status actuel.

decision_reason_label
string | null

Libellé lisible par l'humain pour decision_reason_code.

vendor_data
string | null

Copie de commodité des vendor_data du demandeur.

metadata
object

Instantané des payloads subject et counterparty tels qu'ils ont été soumis au moment de la création.

props
object

Les custom_properties fournies lors de la création. Chaque clé est accessible dans les conditions de règles sous la forme custom_values.<key>.

tags
object[]

Tags associés à la transaction (manuellement ou par des règles).

parties
object[]

Parties à la transaction (demandeur, contrepartie).

payment_methods
object[]

Moyens de paiement associés à la transaction.

documents
object[]

Fichiers joints à la transaction depuis la console. [] s'il n'y en a aucun.

activities
object[]

Entrées du journal d'activité (création, notes, examens manuels, changements de statut).

alerts
object[]

Toujours vide aujourd'hui. Une alerte ouverte est une transaction avec le statut IN_REVIEW ou AWAITING_USER.

rule_runs
object[]

Résultats d'exécution par règle — quelle règle s'est déclenchée, avec quel impact sur le score.

provider_results
object[]

Payloads bruts des fournisseurs (filtrage AML, analyse blockchain, etc.).

travel_rule
object | null

Transfert ou vérification Travel Rule. Renseigné lorsque travel_rule_details a été soumis, et également lorsque la Travel Rule est activée et que la transaction a été créée avec transaction_category: travelRule (Didit initie lui-même l'échange, même sans travel_rule_details). null lorsqu'aucun transfert ou vérification n'existe. Lors d'un transfert entrant, les champs originator_data et beneficiary_data de la contrepartie restent masqués (data_masked: true) jusqu'à ce que la détention du portefeuille soit confirmée.

network_snapshot
object | null

Instantané du graphe des transactions/parties liées utilisé par le moteur de règles. Il s'agit soit du network_snapshot soumis avec la transaction, soit du graphe que Didit génère à partir d'un filtrage AML des portefeuilles réussi (qui remplace un graphe soumis). null si aucun des deux n'existe.

remediation
object | null

Session de remédiation proposée à l'utilisateur lorsqu'une revérification est requise. Remplacée par action_required, qui est le bloc canonique ; conservée à des fins de rétrocompatibilité.

action_required
Verification session · object

Action de l'utilisateur final en attente, requise pour terminer cette transaction, ou null lorsqu'il n'y en a aucune. Les SDK Didit lancent automatiquement l'action par défaut et actualisent la transaction lorsqu'elle se termine. Deux variantes, différenciées par type : verification_session (une session de vérification hébergée créée par une action de règle) et wallet_ownership (une session de widget de propriété de portefeuille générée automatiquement pour un transfert Travel Rule nécessitant une preuve de contrôle du portefeuille, conditionnée par le paramètre Travel Rule auto_wallet_verification). Lorsque les deux pourraient s'appliquer, wallet_ownership prévaut car elle bloque l'échange Travel Rule.

cost_breakdown
object | null

Coût de cette transaction : total_price et items, un pour chaque frais facturé, chacun avec usage_type, price, details et created_at. Un nouveau filtrage de la même transaction constitue un nouvel élément.

Dernière modification le 7 novembre 2026