Passer au contenu principal
POST
curl

Autorisations

X-Transaction-Token
string
header
requis

Token restreint de courte durée généré par votre backend via POST /v3/transactions/sdk-token/. Utilisé par les SDK Didit sur les endpoints /v1/transactions/ côté appareil.

Corps

application/json
txnId
string
requis

Votre identifiant unique pour cette transaction (correspond à transaction_id, 128 caractères maximum).

Exemple:

"wd-2026-07-07-0042"

type
string
requis

Catégorie de transaction (correspond à transaction_category), par ex. finance, kyc, travelRule, userPlatformEvent, gamblingBet.

Exemple:

"travelRule"

info
object
requis

Détails financiers principaux de la transaction (correspond à transaction_details).

subject
object
requis

L'objet (demandeur) de la transaction. externalUserId est ignoré ici : l'identité du sujet est toujours imposée à partir des vendor_data du token.

txnDate
string<date-time>

Date et heure auxquelles la transaction a eu lieu (correspond à transaction_at). Prend par défaut l'heure actuelle si ce champ est omis.

zoneId
string

Identifiant de fuseau horaire IANA (correspond à time_zone), par exemple Europe/Madrid.

counterparty
object

La contrepartie de la transaction (facultatif). Même structure que subject ; externalUserId a une signification ici.

props
object

Paires clé-valeur personnalisées (correspond à custom_properties). Chaque clé peut être référencée dans les conditions de règles sous la forme custom_values.<key>.

travelRule
object

Détails de la Travel Rule (correspond à travel_rule_details). Lorsque la Travel Rule est activée pour l'application, Didit ignore tout status que vous envoyez et pilote lui-même l'échange.

includeCryptoScreening
boolean | null

Remplacement par transaction pour le filtrage par analyse de la blockchain crypto (correspond à include_crypto_screening).

fingerprint_v2
object

Le payload d'empreinte d'appareil didit-fp-v2. Injecté automatiquement par les SDK ; pertinent uniquement lors de l'appel direct à l'API filaire.

Réponse

Transaction soumise et surveillée. Même structure de détails que GET /v3/transactions/{transaction_id}/, y compris le bloc action_required lorsque l'utilisateur final doit effectuer une action de suivi (les SDK la lancent automatiquement par défaut).

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