Skip to main content
Submit transactions to Didit via the Create Transaction API. Each transaction includes structured party, payment, and context data that the rules engine evaluates in real time.
When the transaction originates on an end-user’s device - a crypto withdrawal, an in-app payment - consider SDK transaction submission: a scoped token replaces the API key, device intelligence is collected automatically, and required user actions (wallet-ownership proof, step-up verification) launch on the spot.

Transaction categories

Every transaction has a transaction_category that determines how rules and analytics treat it:

Transaction details

The transaction_details object carries the financial data:

Subject and counterparty

Each transaction has a subject (required) and an optional counterparty. Both use the same party model: When vendor_data matches an existing user or business, Didit automatically links the transaction to that entity’s profile, enabling cross-session rule evaluation and velocity checks. In the response, both parties come back in the parties array with roles APPLICANT and COUNTERPARTY.

Payment methods

Attach a payment_method to each party to describe the instrument on that side: On travelRule transactions, a counterparty payment method with payment_method_type: "unhosted_wallet" declares the destination as a self-hosted wallet and routes the transfer straight to the ownership-proof flow - see Declared self-hosted wallets. For crypto transactions, include wallet addresses in account_id and set currency_kind to crypto so blockchain screening can run automatically. Direction controls which wallet is screened: inbound pre-transfer screening uses the sender wallet in counterparty.payment_method.account_id; outbound screening uses the destination wallet in counterparty.payment_method.account_id. If you send a blockchain hash in transaction_details.payment_reference_id, inbound transaction screening requires your service deposit address in subject.payment_method.account_id, while outbound transaction screening requires the destination wallet in counterparty.payment_method.account_id.

Crypto screening override

Use include_crypto_screening at the top level of the request to override the default configured in Transactions > Settings in the Console:

Device context

Include device information on the subject party to power device intelligence rules: Device context enables rules like multi-accounting detection (same fingerprint across different subjects) and location-based risk scoring.

Custom properties

Add any additional key-value pairs in the custom_properties object. Rules can reference these fields in their conditions — useful for passing business-specific context like product category, merchant ID, or channel.
In rule conditions, reference each key with the field path custom_values.<key> — for example, the payload above matches custom_values.product_category eq "electronics". In the Console rule builder, keys seen on recently ingested transactions appear in the condition field selector under Custom Properties, and Enter custom property in the same group lets you type any key manually (case-sensitive). See Rules & scoring for details.

Example request

Response

The API returns the created transaction with its initial evaluation results: See the API Reference for the full request and response schema, and the dedicated response schema reference for an annotated payload walkthrough.

Idempotency

txn_id is unique per application. Re-submitting the same txn_id returns the existing transaction rather than creating a duplicate — effectively idempotent for retries. Always generate txn_id on your side (e.g. your own transaction DB ID, UUID, or deterministic hash).

Historical backfill

Pass txn_date in the past to ingest historical transactions. Rules still evaluate by default — use the console CSV import with dry-ingest mode if you want to skip rule evaluation during bulk historical loads. See integration guide.

Next steps

Rules & scoring

How submitted transactions are evaluated against rules.

Response schema

Full annotated response payload.

Crypto screening

Automatic wallet and transaction screening for crypto transactions.

Travel rule

Attach travel rule compliance data to virtual asset transfers.

IP enrichment

IP-derived context available to rules.

API reference

Full request schema for the Create Transaction endpoint.