Skip to main content
POST
curl

Authorizations

X-Transaction-Token
string
header
required

Short-lived scoped token minted by your backend via POST /v3/transactions/sdk-token/. Used by the Didit SDKs on the device-facing /v1/transactions/ endpoints.

Body

application/json
txnId
string
required

Your unique identifier for this transaction (maps to transaction_id, max 128 characters).

Example:

"wd-2026-07-07-0042"

type
string
required

Transaction category (maps to transaction_category), e.g. finance, kyc, travelRule, userPlatformEvent, gamblingBet.

Example:

"travelRule"

info
object
required

Core financial details of the transaction (maps to transaction_details).

subject
object
required

The subject (applicant) of the transaction. externalUserId is ignored here: the subject identity is always enforced from the token's vendor_data.

txnDate
string<date-time>

When the transaction occurred (maps to transaction_at). Defaults to now if omitted.

zoneId
string

IANA time zone identifier (maps to time_zone), e.g. Europe/Madrid.

counterparty
object

The counterparty of the transaction (optional). Same shape as subject; externalUserId is meaningful here.

props
object

Custom key-value pairs (maps to custom_properties). Each key can be referenced in rule conditions as custom_values.<key>.

travelRule
object

Travel Rule details (maps to travel_rule_details). When Travel Rule is enabled for the application, Didit ignores any status you send and drives the exchange itself.

includeCryptoScreening
boolean | null

Per-transaction override for crypto blockchain analytics screening (maps to include_crypto_screening).

fingerprint_v2
object

The didit-fp-v2 device fingerprint payload. Injected automatically by the SDKs; only relevant when calling the wire API directly.

Response

Transaction submitted and monitored. Same detail shape as GET /v3/transactions/{transaction_id}/, including the action_required block when the end user must complete a follow-up action (the SDKs auto-launch it by default).

Full monitoring record for one transaction, as returned by GET /v3/transactions/{transaction_id}/ and POST /v3/transactions/.

uuid
string<uuid>

Didit-stable transaction identifier. Use as {transaction_id} for follow-up calls.

environment
enum<string>

Environment of the application that owns the transaction. A sandbox transaction is stored but never evaluated, screened, notified or billed, so its empty rule_runs means "not evaluated".

Available options:
live,
sandbox
transaction_number
integer

Application-scoped sequential transaction number shown in Console (e.g. 4123).

txn_id
string

The transaction_id you supplied at create time (max 128 chars). Unique per application.

txn_date
string<date-time>

When the transaction occurred (from transaction_at; defaults to submission time).

zone_id
string | null

IANA time zone identifier provided at create time.

transaction_type
string

Top-level category as stored: finance, kyc, travelRule, userPlatformEvent, gamblingBet, gamblingLimitChange, gamblingBonusChange, auditTrailEvent. Note multi-word values are echoed back in camelCase even when submitted in snake_case.

action_type
string

Sub-type within the category (e.g. deposit, withdrawal, transfer). Defaults to the category when not supplied.

direction
enum<string>

Direction relative to the subject. Stored uppercase regardless of the casing submitted (in/out/inbound/outbound are accepted on input).

Available options:
INBOUND,
OUTBOUND
status
enum<string>

Current monitoring verdict. Transactions are created APPROVED; rules may flip them to IN_REVIEW/DECLINED synchronously.

Available options:
APPROVED,
IN_REVIEW,
DECLINED,
AWAITING_USER
source
enum<string>

How the record originated: LIVE for transactions submitted through the API or SDK, IMPORTED for transactions loaded through the console import.

Available options:
LIVE,
IMPORTED
amount
string

Transaction amount as a decimal string with trailing zeros stripped (e.g. "1500", "0.5", "0.123456789012345678"). Up to 18 decimal places.

currency
string

Currency code of amount. Any ISO 4217 alphabetic code is accepted (e.g. EUR, USD, NGN), as is a crypto asset symbol (e.g. BTC). Prefer a currently-circulating code. Not every accepted code has an exchange rate: when none is available for the code (for example the ISO accounting unit XSU, or a crypto symbol Didit does not price), automatic conversion fails and preferred_currency_amount is returned null unless the request supplied a pre-converted amount_in_default_currency.

currency_type
string | null

fiat or crypto, as submitted in currency_kind.

amount_in_default_currency
string | null

Pre-converted amount you supplied, as a decimal string with trailing zeros stripped.

default_currency_code
string | null
preferred_currency_amount
string | null

amount converted to the application's preferred currency, when available.

preferred_currency_code
string | null
payment_details
string | null

Free-text payment reference or memo from the submission.

payment_txn_id
string | null

External payment system reference (e.g. blockchain transaction hash) from payment_reference_id.

score
integer

Risk score accumulated by rules (typically 0–100). Higher = riskier.

severity
enum<string> | null

Categorical risk severity set by rules/providers (UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL). null until something sets it.

Available options:
UNKNOWN,
LOW,
MEDIUM,
HIGH,
CRITICAL
decision_reason_code
string | null

Machine-readable reason for the current status.

decision_reason_label
string | null

Human-readable label for decision_reason_code.

vendor_data
string | null

Convenience copy of the applicant's vendor_data.

metadata
object

Snapshot of the subject and counterparty payloads as submitted at create time.

props
object

The custom_properties you supplied at create time. Each key is addressable in rule conditions as custom_values.<key>.

tags
object[]

Tags attached to the transaction (manually or by rules).

parties
object[]

Transaction parties (applicant, counterparty).

payment_methods
object[]

Payment methods linked to the transaction.

documents
object[]

Files attached to the transaction from the console. [] when none.

activities
object[]

Activity log entries (creation, notes, manual reviews, status changes).

alerts
object[]

Alerts raised by rules and providers.

rule_runs
object[]

Per-rule execution results — which rule fired, with what score impact.

provider_results
object[]

Raw provider payloads (AML screening, blockchain analytics, etc.).

travel_rule
object | null

Travel Rule transfer or check. Populated when travel_rule_details was submitted, and also when Travel Rule is enabled and the transaction was created with transaction_category: travelRule (Didit initiates the exchange itself, even without travel_rule_details). null when no transfer or check exists.

network_snapshot
object | null

Graph snapshot of related transactions/parties used by the rules engine. Either the network_snapshot submitted with the transaction or the graph Didit builds from a successful AML wallet screening (which replaces a submitted one). null when neither exists.

remediation
object | null

Remediation session offered to the user when re-verification is required. Superseded by action_required, which is the canonical block; kept for backward compatibility.

action_required
Verification session · object

Pending end-user action required to complete this transaction, or null when there is none. The Didit SDKs auto-launch the action by default and refresh the transaction when it finishes. Two variants, discriminated by type: verification_session (a hosted verification session created by a rule action) and wallet_ownership (a wallet-ownership widget session auto-minted for a Travel Rule transfer that needs proof of wallet control, gated by the auto_wallet_verification Travel Rule setting). When both could apply, wallet_ownership takes precedence because it blocks the Travel Rule exchange.

cost_breakdown
object | null

Cost of this transaction: total_price and items, one per charge, each with usage_type, price, details and created_at. A re-screen of the same transaction is a new item.