Didit’s transaction creation API submits a transaction and can request an explicit Travel Rule counterparty choice.For explicit user choice, set travel_rule_details.counterparty_choice to user (default: discovery). Do not also send beneficiary_data.counterparty_vasp_name or counterparty_vasp_lei: that combination returns 400. For an eligible outbound exchange, Didit attempts to issue and email the link when a recorded address exists. Read travel_rule.user_choice for the waiting state and link outcome; a failed link or email attempt does not fail transaction creation. You can request a new end-user link.
Authorizations
x-api-key
string
header
required
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Body
application/json
transaction_id
string
required
Your unique identifier for this transaction (max 128 characters).
Example:
"your-txn-2026-05-17-001"
transaction_category
enum<string>
required
Category of the transaction. CamelCase aliases (travelRule, userPlatformEvent, gamblingBet, …) are also accepted; the stored/echoed value is camelCase for multi-word categories.
Available options:
finance,
kyc,
travel_rule,
user_event,
audit_trail_event,
gambling_bet,
gambling_limit_change,
gambling_bonus_change,
travelRule
Example:
"finance"
transaction_details
object
required
Core financial details of the transaction.
Show child attributes
subject
object
required
The subject (applicant) of the transaction.
Show child attributes
transaction_at
string<date-time>
When the transaction occurred. Defaults to now if omitted.
time_zone
string
IANA time zone identifier, e.g. Europe/Madrid.
counterparty
object
The counterparty of the transaction (optional).
Show child attributes
custom_properties
object
Arbitrary key-value pairs attached to the transaction. Each key can be referenced in rule conditions with the field path custom_values.<key>.
Example:
{ "merchant_id": "test", "bank_name": "test_2" }
travel_rule_details
object
Travel Rule data. When Travel Rule is enabled and transaction_category is travel_rule, Didit runs the exchange itself: it ignores status, protocol, required and obligations_count, and uses originator_data, beneficiary_data and metadata. Otherwise Didit stores these values as a passive Travel Rule record. While Travel Rule is on, an outbound transfer at or above your threshold must carry what its regime requires (EU TFR or FATF Recommendation 16), checked on the sides you send: a missing field answers 400 under travel_rule_details.originator_data or travel_rule_details.beneficiary_data, for example "EU TFR requires the originator name."
Show child attributes
network_snapshot
object
Pre-computed network graph snapshot.
Show child attributes
include_crypto_screening
boolean | null
Per-transaction override for crypto blockchain analytics screening. When true, crypto screening is performed regardless of the application default. When false, crypto screening is skipped even if enabled in the application settings. When omitted or null, the application-level default configured in the Console is used. Crypto screening requires transaction_details.direction, currency_kind: "crypto", a chain/currency, and the wallet address selected by the direction: inbound pre-transfer screening uses counterparty.payment_method.account_id, inbound transaction-hash screening uses subject.payment_method.account_id, and outbound screening uses counterparty.payment_method.account_id. When transaction_details.payment_reference_id contains a blockchain transaction hash, Didit performs transaction screening and returns transaction summary enrichment when available.
Response
Transaction submitted and monitored. The body is the full transaction detail (same shape as GET /v3/transactions/{transaction_id}/), reflecting any rule outcomes already applied.
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).
Show child attributes
parties
object[]
Transaction parties (applicant, counterparty).
Show child attributes
payment_methods
object[]
Payment methods linked to the transaction.
Show child attributes
documents
object[]
Files attached to the transaction from the console. [] when none.
Show child attributes
activities
object[]
Activity log entries (creation, notes, manual reviews, status changes).
Show child attributes
alerts
object[]
Always empty today. An open alert is a transaction with status IN_REVIEW or AWAITING_USER.
Show child attributes
rule_runs
object[]
Per-rule execution results — which rule fired, with what score impact.
Show child attributes
provider_results
object[]
Raw provider payloads (AML screening, blockchain analytics, etc.).
Show child attributes
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. On an inbound transfer, the counterparty's originator_data and beneficiary_data stay masked (data_masked: true) until wallet ownership is confirmed.
Show child attributes
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.
Show child attributes
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.
Show child attributes
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.
Verification session
Wallet ownership
Show child attributes
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.
Last modified on November 12, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Didit Docs","description":"The best way to integrate identity and fraud checks into your app. One API, four product lines (KYC · KYB · Transaction Monitoring · Wallet Screening), 220+ countries, 14,000+ documents, sub-2s inference, $10 free credit/month.","colors":{"primary":"#2567FF","light":"#90B1FF","dark":"#1B4FE0"},"logo":{"light":"https://mintcdn.com/didit-0f962782/dCzNNoYCusBNdK3I/logo/didit.svg?fit=max\u0026auto=format\u0026n=dCzNNoYCusBNdK3I\u0026q=85\u0026s=9f162fb8295fa1fd9300a24b293ce0b7","dark":"https://mintcdn.com/didit-0f962782/TefoKXCbZA_GIK5a/logo/didit-logo-wordmark-white.svg?fit=max\u0026auto=format\u0026n=TefoKXCbZA_GIK5a\u0026q=85\u0026s=c8c541689c814ca6a2c873cf6185a3a7","href":"https://docs.didit.me"},"favicon":"https://mintcdn.com/didit-0f962782/t6r0B-WdGMU5mSS-/favicon.ico?fit=max\u0026auto=format\u0026n=t6r0B-WdGMU5mSS-\u0026q=85\u0026s=b291917b960ebe959ae3b1aa233eafa8","api":{"examples":{"prefill":true},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://verification.didit.me"}},"background":{"color":{"light":"#FFFFFF","dark":"#1A1A1A"}},"navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Sign in","href":"https://business.didit.me"}},"footer":{"socials":{"x":"https://x.com/didit","github":"https://github.com/didit-protocol","linkedin":"https://linkedin.com/company/91001155","website":"https://didit.me"}},"search":{"prompt":"Search Didit docs..."},"seo":{"metatags":{"twitter:site":"@didit","theme-color":"#2567FF","apple-mobile-web-app-title":"Didit Docs"},"organization":{"id":"https://didit.me/#organization","name":"Didit","legalName":"Didit Protocol","url":"https://didit.me","logo":"https://didit.me/logos/primary-horizontal-light.png","sameAs":["https://www.linkedin.com/company/91001155","https://www.youtube.com/@getdidit","https://github.com/didit-protocol","https://x.com/didit"]},"indexing":"navigable"},"fonts":{"heading":{"family":"Inter","weight":500},"body":{"family":"Inter","weight":400}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page moved or never existed. [Back to docs](/)"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"light","background":"https://mintcdn.com/didit-0f962782/Xkecx-xLq1K2abHK/images/og-thumbnail-backplate.png?fit=max\u0026auto=format\u0026n=Xkecx-xLq1K2abHK\u0026q=85\u0026s=c699fa252554b2ac8d4c631e209a1473","fonts":{"family":"Inter"}},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"href":"es"},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"href":"pt-br"},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"href":"ja"},{"language":"de","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Anmelden","href":"https://business.didit.me"}},"href":"de"},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"href":"fr"},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"href":"it"},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"href":"pt"},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"href":"ca"},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"href":"id"},{"language":"ru","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Поддержка"},{"icon":"signal","href":"https://status.didit.me","label":"Статус"}],"primary":{"type":"button","label":"Вход","href":"https://business.didit.me"}},"href":"ru"},{"language":"ko","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"지원"},{"icon":"signal","href":"https://status.didit.me","label":"상태"}],"primary":{"type":"button","label":"로그인","href":"https://business.didit.me"}},"href":"ko"},{"language":"zh","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"支持"},{"icon":"signal","href":"https://status.didit.me","label":"状态"}],"primary":{"type":"button","label":"登录","href":"https://business.didit.me"}},"href":"zh"},{"language":"ar","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"الدعم"},{"icon":"signal","href":"https://status.didit.me","label":"الحالة"}],"primary":{"type":"button","label":"تسجيل الدخول","href":"https://business.didit.me"}},"href":"ar"},{"language":"hi","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"सहायता"},{"icon":"signal","href":"https://status.didit.me","label":"स्थिति"}],"primary":{"type":"button","label":"साइन इन करें","href":"https://business.didit.me"}},"href":"hi"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"didit-0f962782","hasAudioNarration":false,"actualSubdomain":"didit-0f962782","customDomains":["docs.didit.me"],"gitSource":{"type":"github","owner":"didit-protocol","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af81a2774b4f0f02ee03333","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"ar","tag":"مرجع API","count":440},{"language":"ca","tag":"Referència de l'API","count":440},{"language":"de","tag":"API-Referenz","count":440},{"language":"es","tag":"Referencia de la API","count":440},{"language":"fr","tag":"Référence API","count":440},{"language":"hi","tag":"API संदर्भ","count":440},{"language":"id","tag":"Referensi API","count":440},{"language":"it","tag":"Riferimento API","count":440},{"language":"ja","tag":"APIリファレンス","count":440},{"language":"ko","tag":"API 레퍼런스","count":440},{"language":"pt-BR","tag":"Referência da API","count":440},{"language":"pt","tag":"Referência da API","count":440},{"language":"ru","tag":"Справочник API","count":440},{"language":"zh","tag":"API 参考","count":440},{"language":"en","tag":"API Reference","count":432},{"language":"en","tag":"Database Validation","count":129},{"language":"ar","tag":"التحقق من قواعد البيانات","count":129},{"language":"ca","tag":"Validació en bases de dades","count":129},{"language":"de","tag":"Datenbankvalidierung","count":129},{"language":"es","tag":"Validación de base de datos","count":129},{"language":"fr","tag":"Validation en base de données","count":129},{"language":"hi","tag":"डेटाबेस सत्यापन","count":129},{"language":"id","tag":"Validasi Database","count":129},{"language":"it","tag":"Validazione su database","count":129},{"language":"ja","tag":"データベース検証","count":129},{"language":"ko","tag":"데이터베이스 검증","count":129},{"language":"pt-BR","tag":"Validação de banco de dados","count":129},{"language":"pt","tag":"Validação de base de dados","count":129},{"language":"ru","tag":"Проверка по базам данных","count":129},{"language":"zh","tag":"数据库核验","count":129},{"language":"ca","tag":"Primers passos","count":93},{"language":"de","tag":"Erste Schritte","count":93},{"language":"es","tag":"Primeros pasos","count":93},{"language":"ja","tag":"はじめに","count":93},{"language":"ko","tag":"시작하기","count":93},{"language":"pt-BR","tag":"Primeiros passos","count":93},{"language":"ru","tag":"Начало работы","count":93},{"language":"en","tag":"Get Started","count":87},{"language":"ar","tag":"ابدأ الآن","count":87},{"language":"fr","tag":"Commencer","count":87},{"language":"hi","tag":"शुरू करें","count":87},{"language":"id","tag":"Mulai","count":87},{"language":"it","tag":"Inizia","count":87},{"language":"pt","tag":"Começar","count":87},{"language":"zh","tag":"快速开始","count":87},{"language":"ko","tag":"인증","count":85},{"language":"en","tag":"User Verification","count":74},{"language":"ar","tag":"التحقق من المستخدمين","count":74},{"language":"ca","tag":"Verificació d'usuaris","count":74},{"language":"de","tag":"Benutzerverifizierung","count":74},{"language":"es","tag":"Verificación de usuarios","count":74},{"language":"fr","tag":"Vérification des utilisateurs","count":74},{"language":"hi","tag":"उपयोगकर्ता सत्यापन","count":74},{"language":"id","tag":"Verifikasi Pengguna","count":74},{"language":"it","tag":"Verifica degli utenti","count":74},{"language":"ja","tag":"ユーザー認証","count":74},{"language":"ko","tag":"사용자 인증","count":74},{"language":"pt-BR","tag":"Verificação de usuários","count":74},{"language":"pt","tag":"Verificação de utilizadores","count":74},{"language":"ru","tag":"Проверка пользователей","count":74},{"language":"zh","tag":"用户验证","count":74},{"language":"en","tag":"Integrate / SDKs","count":67},{"language":"ar","tag":"التكامل / SDKs","count":67},{"language":"ca","tag":"Integració / SDK","count":67},{"language":"de","tag":"Integrieren / SDKs","count":67},{"language":"es","tag":"Integración / SDKs","count":67},{"language":"fr","tag":"Intégrer / SDK","count":67},{"language":"hi","tag":"इंटीग्रेट करें / SDK","count":67},{"language":"id","tag":"Integrasi / SDK","count":67},{"language":"it","tag":"Integrazione / SDK","count":67},{"language":"ja","tag":"連携 / SDK","count":67},{"language":"ko","tag":"연동 / SDK","count":67},{"language":"pt-BR","tag":"Integração / SDKs","count":67},{"language":"pt","tag":"Integrar / SDKs","count":67},{"language":"ru","tag":"Интеграция / SDK","count":67},{"language":"zh","tag":"集成 / SDK","count":67},{"language":"en","tag":"Travel Rule","count":58},{"language":"ar","tag":"Travel Rule","count":58},{"language":"ca","tag":"Travel Rule","count":58},{"language":"de","tag":"Travel Rule","count":58},{"language":"es","tag":"Travel Rule","count":58},{"language":"fr","tag":"Travel Rule","count":58},{"language":"hi","tag":"Travel Rule","count":58},{"language":"id","tag":"Travel Rule","count":58},{"language":"it","tag":"Travel Rule","count":58},{"language":"ja","tag":"トラベルルール","count":58},{"language":"ko","tag":"Travel Rule","count":58},{"language":"pt-BR","tag":"Travel Rule","count":58},{"language":"pt","tag":"Travel Rule","count":58},{"language":"ru","tag":"Travel Rule","count":58},{"language":"zh","tag":"Travel Rule","count":58},{"language":"en","tag":"Verification","count":48},{"language":"ar","tag":"التحقق","count":48},{"language":"ca","tag":"Verificació","count":48},{"language":"de","tag":"Verifizierung","count":48},{"language":"es","tag":"Verificación","count":48},{"language":"fr","tag":"Vérification","count":48},{"language":"hi","tag":"सत्यापन","count":48},{"language":"id","tag":"Verifikasi","count":48},{"language":"it","tag":"Verifica","count":48},{"language":"ja","tag":"検証","count":48},{"language":"pt-BR","tag":"Verificação","count":48},{"language":"pt","tag":"Verificação","count":48},{"language":"ru","tag":"Верификация","count":48},{"language":"zh","tag":"验证","count":48},{"language":"en","tag":"Authentication","count":37},{"language":"ar","tag":"المصادقة","count":37},{"language":"ca","tag":"Autenticació","count":37},{"language":"de","tag":"Authentifizierung","count":37},{"language":"es","tag":"Autenticación","count":37},{"language":"fr","tag":"Authentification","count":37},{"language":"hi","tag":"प्रमाणीकरण","count":37},{"language":"id","tag":"Autentikasi","count":37},{"language":"it","tag":"Autenticazione","count":37},{"language":"ja","tag":"認証","count":37},{"language":"pt-BR","tag":"Autenticação","count":37},{"language":"pt","tag":"Autenticação","count":37},{"language":"ru","tag":"Аутентификация","count":37},{"language":"zh","tag":"身份认证","count":37},{"language":"en","tag":"Digital ID wallets","count":35},{"language":"en","tag":"User and Business Verifications","count":35},{"language":"ar","tag":"محافظ الهوية الرقمية","count":35},{"language":"ar","tag":"التحقق من المستخدمين والشركات","count":35},{"language":"ca","tag":"Carteres d'identitat digital","count":35},{"language":"ca","tag":"Verificacions d'usuaris i empreses","count":35},{"language":"de","tag":"Digitale ID-Wallets","count":35},{"language":"de","tag":"Benutzer- und Unternehmensverifizierungen","count":35},{"language":"es","tag":"Wallets de identidad digital","count":35},{"language":"es","tag":"Verificaciones de usuarios y empresas","count":35},{"language":"fr","tag":"Portefeuilles d'identité numérique","count":35},{"language":"fr","tag":"Vérifications des utilisateurs et des entreprises","count":35},{"language":"hi","tag":"डिजिटल ID वॉलेट","count":35},{"language":"hi","tag":"उपयोगकर्ता और व्यवसाय सत्यापन","count":35},{"language":"id","tag":"Dompet ID Digital","count":35},{"language":"id","tag":"Verifikasi Pengguna dan Bisnis","count":35},{"language":"it","tag":"Wallet di identità digitale","count":35},{"language":"it","tag":"Verifiche di utenti e aziende","count":35},{"language":"ja","tag":"デジタルIDウォレット","count":35},{"language":"ja","tag":"ユーザーと企業の認証","count":35},{"language":"ko","tag":"디지털 신분증 지갑","count":35},{"language":"ko","tag":"사용자 인증 및 기업 확인","count":35},{"language":"pt-BR","tag":"Carteiras de identidade digital","count":35},{"language":"pt-BR","tag":"Verificações de usuários e empresas","count":35},{"language":"pt","tag":"Carteiras de identidade digital","count":35},{"language":"pt","tag":"Verificações de utilizadores e empresas","count":35},{"language":"ru","tag":"Цифровые ID-кошельки","count":35},{"language":"ru","tag":"Верификация пользователей и компаний","count":35},{"language":"zh","tag":"数字身份钱包","count":35},{"language":"zh","tag":"用户与企业验证","count":35},{"language":"ko","tag":"거래 모니터링","count":28}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/didit-0f962782/714dd91730ddd114/style.css"}],"page":{"pagePath":"management-api/transactions/create","slug":"/management-api/transactions/create","pageMetadata":{"title":"Create Transaction API: KYT Submission","sidebarTitle":"Create Transaction","description":"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.","keywords":["create transaction API","transaction API","transaction monitoring API","KYT transaction API","transaction screening API","transaction CRUD","POST transactions","travel rule API","Didit Management API","pay-per-call KYT"],"openapi":"openapi-25.json POST /v3/transactions/","href":"/management-api/transactions/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_AGENT_PROMPT_LABELS_qsruim={en:{copy:`Copy`,copied:`Copied`,copyTitle:`Copy prompt to clipboard`,copiedTitle:`Copied!`,pasteInto:`Paste into`},es:{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar el prompt al portapapeles`,copiedTitle:`¡Copiado!`,pasteInto:`Pegar en`},\"pt-BR\":{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar o prompt para a área de transferência`,copiedTitle:`Copiado!`,pasteInto:`Colar em`},ja:{copy:`コピー`,copied:`コピーしました`,copyTitle:`プロンプトをクリップボードにコピー`,copiedTitle:`コピーしました`,pasteInto:`貼り付け先`},\"de\":{copy:`Kopieren`,copied:`Kopiert`,copyTitle:`Prompt in die Zwischenablage kopieren`,copiedTitle:`Kopiert!`,pasteInto:`Einfügen in`},\"fr\":{copy:`Copier`,copied:`Copié`,copyTitle:`Copier le prompt dans le presse-papiers`,copiedTitle:`Copié !`,pasteInto:`Coller dans`},\"it\":{copy:`Copia`,copied:`Copiato`,copyTitle:`Copia il prompt negli appunti`,copiedTitle:`Copiato!`,pasteInto:`Incolla in`},\"pt-PT\":{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar o prompt para a área de transferência`,copiedTitle:`Copiado!`,pasteInto:`Colar em`},\"ca\":{copy:`Copia`,copied:`Copiat`,copyTitle:`Copia el prompt al porta-retalls`,copiedTitle:`Copiat!`,pasteInto:`Enganxa a`},\"id\":{copy:`Salin`,copied:`Disalin`,copyTitle:`Salin prompt ke papan klip`,copiedTitle:`Disalin!`,pasteInto:`Tempel ke`},\"ru\":{copy:`Копировать`,copied:`Скопировано`,copyTitle:`Скопировать промпт в буфер обмена`,copiedTitle:`Скопировано!`,pasteInto:`Вставьте в`},\"ko\":{copy:`복사`,copied:`복사됨`,copyTitle:`프롬프트를 클립보드에 복사`,copiedTitle:`복사됨!`,pasteInto:`붙여넣을 곳`},\"zh\":{copy:`复制`,copied:`已复制`,copyTitle:`将提示词复制到剪贴板`,copiedTitle:`已复制!`,pasteInto:`粘贴到`},\"ar\":{copy:`نسخ`,copied:`تم النسخ`,copyTitle:`نسخ الموجّه إلى الحافظة`,copiedTitle:`تم النسخ!`,pasteInto:`الصق في`},\"hi\":{copy:`कॉपी करें`,copied:`कॉपी हो गया`,copyTitle:`प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें`,copiedTitle:`कॉपी हो गया!`,pasteInto:`यहाँ पेस्ट करें`}};const AgentPromptAccordion=({prompt,title=`AI Agent Integration Prompt`,lang=`en`})=>{const[copied,setCopied]=React.useState(false);const labels=__snippet_AGENT_PROMPT_LABELS_qsruim[lang]||__snippet_AGENT_PROMPT_LABELS_qsruim.en;const handleCopy=e=>{e.stopPropagation();if(!prompt)return;navigator.clipboard.writeText(prompt.trim()).then(()=>{setCopied(true);setTimeout(()=>setCopied(false),2e3)})};const agents=[`Claude Code`,`Codex`,`Cursor`,`Devin`,`Windsurf`,`GitHub Copilot`];return _jsxs(`div`,{className:`didit-agent-card`,children:[_jsxs(`div`,{className:`didit-agent-titlebar`,children:[_jsxs(`div`,{className:`didit-agent-dots`,\"aria-hidden\":`true`,children:[_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-red`}),_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-yellow`}),_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-green`})]}),_jsx(`span`,{className:`didit-agent-filename`,children:title}),_jsx(`button`,{type:`button`,className:`didit-agent-copy ${copied?`didit-agent-copy-copied`:``}`,onClick:handleCopy,title:labels.copyTitle,\"aria-label\":copied?labels.copiedTitle:labels.copyTitle,children:copied?_jsxs(_Fragment,{children:[_jsx(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,children:_jsx(`path`,{d:`M3 8.5l3.5 3.5L13 4`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),_jsx(`span`,{children:labels.copied})]}):_jsxs(_Fragment,{children:[_jsxs(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,children:[_jsx(`rect`,{x:`5`,y:`5`,width:`9`,height:`9`,rx:`1.5`,stroke:`currentColor`,strokeWidth:`1.5`}),_jsx(`path`,{d:`M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5`,stroke:`currentColor`,strokeWidth:`1.5`})]}),_jsx(`span`,{children:labels.copy})]})})]}),_jsx(`pre`,{className:`didit-agent-body`,children:_jsx(`code`,{children:prompt.trim()})}),_jsxs(`div`,{className:`didit-agent-footer`,children:[_jsx(`span`,{className:`didit-agent-footer-label`,children:labels.pasteInto}),_jsx(`div`,{className:`didit-agent-chips`,children:agents.map(name=>_jsx(`span`,{className:`didit-agent-chip`,children:name},name))})]})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,..._provideComponents(),...props.components},{_MdxComponentBoundary}=_components;if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Didit’s transaction creation API submits a transaction and can request an explicit Travel Rule counterparty choice.`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AgentPromptAccordion`,children:_jsx(AgentPromptAccordion,{title:`Create Transaction API Prompt`,prompt:`Submit a transaction for Didit monitoring through the Management API.\n\nEndpoint:\nPOST https://verification.didit.me/v3/transactions/\n\nAuthentication:\nUse the x-api-key header with my Didit API key.\n\nGoal:\n- Submit a transaction for KYT (transaction monitoring). Didit runs the configured rules engine, blockchain analytics, and AML screening synchronously and returns the verdict in the response. The full detail (parties, rule runs, provider results, remediation links) is also returned.\n- A Travel Rule transfer is stored in the same call, but Didit contacts the counterparty after the response: travel_rule.status comes back AWAITING_COUNTERPARTY (or NOT_APPLICABLE, UNCONFIRMED_OWNERSHIP, or COMPLETED for your own verified wallet) with travel_rule.protocol null, and every later status change, including COUNTERPARTY_VASP_NOT_FOUND, arrives as a travel_rule.status.updated webhook. Your rules run again when the rail or the status changes.\n\nWhen to call:\n- At payment authorization, before fanning out funds, to decide allow / hold / decline based on status, score, severity.\n- On post-trade events (gambling bets, audit-trail events, KYC events) for long-running monitoring without a per-transaction decision.\n- On crypto deposits / withdrawals — set transaction_details.currency_kind = \"crypto\" and provide the relevant wallet address in payment_method.account_id.\n- For Travel Rule, set transaction_category = \"travel_rule\" and include travel_rule_details (alias travelRule).\ntravel_rule_details.status is required (400 if missing); when Travel Rule is enabled, Didit runs the exchange and ignores the status you send, and otherwise Didit records the transfer passively with that status.\nWhen the subject is a user with an approved Didit KYC verification and Travel Rule is on, Didit replaces the originator_data fields the verification holds with the verified values (metadata.originator_provenance says which); otherwise it sends originator_data as you provide it, so build it from the identity you verified.\nbeneficiary_data carries the beneficiary (name, wallet_address, chain) and any routing hints (travel_address, counterparty_vasp_lei, counterparty_vasp_name, counterparty_vasp_email).\nIf beneficiary_data.chain is empty, Didit takes transaction_details.crypto_params.crypto_chain, else custom_properties.crypto_chain, else the currency, uppercases it, and sets it only when it is a chain Didit recognises (for example ETH or BTC).\n- Chain shapes: on XRP, XLM, EOS, ATOM and HBAR send the destination tag or memo as payment_method.memo (or beneficiary_data.memo); on BTC, LTC, BCH and DOGE send the transaction's inputs and outputs as travel_rule_details.utxo; on bitcoin or Lightning, payment_method.account_id may be a Lightning payment request or Lightning Address. What Didit resolved is on travel_rule.chain_details (see /transaction-monitoring/travel-rule#chain-shapes).\n\nIdentifiers:\n- transaction_id (alias txnId) is YOUR identifier (max 128 chars), unique per application.\nIt becomes txn_id on subsequent calls.\nReusing a transaction_id that already exists returns 400 {\"transaction_id\": [\"A transaction with this transaction_id already exists.\"]}, and when two identical requests race each other the loser gets 409.\nNeither response returns the existing transaction, so to retry safely, treat a 400 or 409 for a duplicate id as already created and look the transaction up instead of resubmitting: GET /v3/transactions/{uuid}/ with the Didit uuid from the first response, or with the transaction_id (the Didit uuid) that the transaction.created webhook carries next to your txn_id.\nGET does not accept your txn_id. Sandbox applications do not receive transaction.created or transaction.status.updated, so save the Didit uuid from the create response. Sandbox Travel Rule exchanges do emit travel_rule.status.updated with environment: sandbox.\n- The returned uuid is Didit's stable identifier — use it in GET /v3/transactions/{transaction_id}/.\n\nLinking to entities:\n- subject.vendor_data (and optionally counterparty.vendor_data) are your internal user/business identifiers. They link the transaction to the long-lived User / Business entity assembled from prior verification sessions. Use the SAME vendor_data you supplied when creating the KYC session.\n\nMinimum request body (application/json):\n{\n\"transaction_id\": \"your-txn-2026-05-17-001\",\n\"transaction_category\": \"finance\", // finance | kyc | travel_rule | user_event | audit_trail_event | gambling_bet | gambling_limit_change | gambling_bonus_change\n\"transaction_details\": {\n\"direction\": \"outbound\", // \"inbound\" | \"outbound\"\n\"amount\": 1500, // number or decimal string, up to 18 decimal places (string for exact precision); never negative, because direction carries the sign\n\"currency\": \"EUR\", // any ISO 4217 code (EUR, USD, NGN, ...) or a crypto symbol\n\"currency_kind\": \"fiat\", // \"fiat\" | \"crypto\" (optional)\n\"action_type\": \"withdrawal\" // optional, e.g. deposit/withdrawal/transfer\n},\n\"subject\": { // APPLICANT party\n\"entity_type\": \"individual\", // \"individual\" | \"company\"\n\"vendor_data\": \"user-12345\", // required\n\"full_name\": \"Maria Garcia\", // required\n\"address\": { \"country\": \"ESP\" } // optional\n},\n\"counterparty\": { ... }, // optional COUNTERPARTY party (same shape as subject)\n\"transaction_at\": \"2026-05-17T08:42:00Z\", // optional, defaults to now\n\"travel_rule_details\": { \"status\": \"AWAITING_COUNTERPARTY\", ... } // optional, for crypto Travel Rule; status is required inside it\n}\n\nCurrency codes:\n- currency has no enum. Any ISO 4217 alphabetic code (EUR, USD, NGN, ...) and any crypto asset symbol (BTC, ETH, ...) are accepted and stored exactly as you send them, up to 10 characters.\n- Prefer a currently-circulating code. Not every accepted code has an exchange rate: withdrawn currencies and accounting units such as XDR are often still quoted, but when Didit has no rate for the code you send (for example the ISO accounting unit XSU, or a crypto symbol Didit does not price), automatic conversion to your base currency fails and preferred_currency_amount comes back null. A pre-converted amount_in_default_currency is always used as sent when present, so supply it for any code you are not sure has a rate.\n- Set currency_kind = \"crypto\" for on-chain amounts. The kind gates the transaction's own crypto AML screening: without currency_kind = \"crypto\" that regular screening step is skipped and no screening fee is estimated or charged for it, even with monitoring enabled or include_crypto_screening = true. Travel Rule attribution is a separate path: on a production application with Travel Rule and VASP attribution enabled, an outbound transaction_category = \"travel_rule\" request whose beneficiary wallet and chain cannot be reached over any rail triggers a VASP attribution wallet screening, and that screening is billed at the wallet screening price whatever currency_kind is or is not set. The kind does not change the stored decimal scale: up to 18 decimal places are kept either way, but only when amount arrives as a decimal string (\"0.123456789012345678\"). A JSON number is parsed as a binary float first, so anything beyond about 15 significant digits is rounded before it is stored (0.123456789012345678 is stored as 0.12345678901234568). The kind also decides how the amount is rendered in the transaction PDF. Crypto amounts render with up to 8 decimal places, fiat amounts with their ISO 4217 minor unit (2 for most currencies). Without the kind, RON, MNT and GEL are rendered as fiat because each is both a token and an ISO 4217 currency, so a small token amount can show as 0 in the report.\nThe VASP attribution screening is skipped when the transaction's own crypto screening already screened that wallet: Didit reuses that result and charges nothing extra.\n\nExample call:\ncurl -X POST \"https://verification.didit.me/v3/transactions/\" \\\\\n-H \"x-api-key: YOUR_API_KEY\" -H \"Content-Type: application/json\" \\\\\n-d '{\n\"transaction_id\": \"your-txn-2026-05-17-001\",\n\"transaction_category\": \"finance\",\n\"transaction_details\": {\"direction\":\"outbound\",\"amount\":1500,\"currency\":\"EUR\",\"action_type\":\"withdrawal\"},\n\"subject\": {\"entity_type\":\"individual\",\"vendor_data\":\"user-12345\",\"full_name\":\"Maria Garcia\"}\n}'\n\nWhat to read from the response:\n- uuid — Didit transaction id, use for GET /v3/transactions/{transaction_id}/.\n- status - APPROVED | IN_REVIEW | DECLINED | AWAITING_USER (live verdict; at creation, AWAITING_USER comes from a rule action).\n- score (0–100, higher = riskier) and severity (LOW | MEDIUM | HIGH | CRITICAL).\n- decision_reason_code / decision_reason_label — machine + human verdict reason.\n- parties (role APPLICANT for the subject, COUNTERPARTY for the counterparty; kind USER, BUSINESS or EXTERNAL), cost_breakdown, rule_runs, provider_results (crypto screening results) and network_snapshot.\n- travel_rule - the Travel Rule transfer (status, protocol, required, originator_data, beneficiary_data, direction, rail, counterparty_vasp, delivery, deliveries, deliveries_truncated, discovery, reason, next_actions), or null; action_required - a pending wallet-ownership or verification step, or null.\ndeliveries is the newest 100 delivery entries, oldest first (uuid, kind, status, supplier-neutral rail, created_at, delivered_at, detail_lines); deliveries_truncated is true when older entries were omitted.\nreason and next_actions say why a COUNTERPARTY_VASP_NOT_FOUND or COUNTERPARTY_VASP_NOT_REACHABLE transfer is stuck and what moves it on (for example email_undeliverable: update_compliance_email, then resend); they are \"\" and [] for any other status.\n\nWebhooks:\n- transaction.created fires after this call succeeds.\n- For a travel_rule transaction, travel_rule.status.updated fires for each Travel Rule transition, after transaction.created. Each webhook is delivered and retried on its own, so key on transaction_id rather than on arrival order.\n- transaction.status.updated fires whenever the verdict changes (manual review, async screening, rule re-runs). Subscribe a destination via POST /v3/webhook/destinations/.\n\nFailure modes:\n- 400 - duplicate transaction_id, missing required field (including travel_rule_details.status), an unknown travel_rule_details.status (\"Invalid travel rule status: ...\"), invalid direction/category enum, or malformed party object.\n- 409 - a concurrent request with the same transaction_id was created first.\n- 403 - missing x-api-key (a wrong, revoked or expired key gets 401), or a key without permission for this action; the body is a { \"detail\": \"...\" } envelope.\n- 403 - the organization's balance cannot cover the fees this request would charge: { \"detail\": \"...\", \"code\": \"insufficient_credits\" }, and nothing is created.\n- 429 - more than 600 ingestion requests per minute for this API key (transaction and event ingestion share this budget, apart from the 300 of every other write); wait Retry-After seconds and retry.\n\nSide effects:\n- Creates the transaction record and runs the synchronous rules + screening pipeline.\n- Links the transaction to the User / Business entity that shares the subject.vendor_data.\n- An outbound travel_rule transaction is billed once, at creation, on one line. It pays the Travel Rule fee ($0.02) when Travel Rule is on and Didit starts an exchange for it (amount at or above threshold_amount, including a transfer to a self-hosted wallet or to the user's own verified wallet). Otherwise it is billed as transaction monitoring (included in the plan's monthly transaction allowance, $0.001 each beyond it): below threshold_amount, a Lightning payment the Travel Rule does not apply to, or data recorded while Travel Rule is disabled. A resend never charges again.\n- An inbound travel_rule transaction pays no base fee, an application that joined Travel Rule free pays none on outbound transactions until it turns outbound billing on, and sandbox applications are never charged.\n- Crypto screening, when it runs, adds the Wallet Verification \u0026 Screening charge.\n\nFor the full integration shape, see /integration/integration-prompt.`})}),`\n`,_jsxs(_components.p,{children:[`For explicit user choice, set `,_jsx(_components.code,{children:`travel_rule_details.counterparty_choice`}),` to `,_jsx(_components.code,{children:`user`}),` (default: `,_jsx(_components.code,{children:`discovery`}),`). Do not also send `,_jsx(_components.code,{children:`beneficiary_data.counterparty_vasp_name`}),` or `,_jsx(_components.code,{children:`counterparty_vasp_lei`}),`: that combination returns `,_jsx(_components.code,{children:`400`}),`. For an eligible outbound exchange, Didit attempts to issue and email the link when a recorded address exists. Read `,_jsx(_components.code,{children:`travel_rule.user_choice`}),` for the waiting state and link outcome; a failed link or email attempt does not fail transaction creation. You can `,_jsx(_components.a,{href:`/management-api/travel-rule/create-user-link`,children:`request a new end-user link`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_AGENT_PROMPT_LABELS_qsruim,AgentPromptAccordion,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Transaction API: KYT Submission","sidebarTitle":"Create Transaction","description":"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.","keywords":["create transaction API","transaction API","transaction monitoring API","KYT transaction API","transaction screening API","transaction CRUD","POST transactions","travel rule API","Didit Management API","pay-per-call KYT"],"openapi":"openapi-25.json POST /v3/transactions/","href":"/management-api/transactions/create"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[171,4204,"undefined;const AgentPromptAccordion=()=>null;function _crea"]]},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/didit-0f962782/75622e87c9213fdc/snippets/data/database-validation-coverage.js","/_mintlify/custom/didit-0f962782/4ac7d3c2a19a354d/database-validation-playground.js"],"openApiReferenceData":{"operation":{"summary":"Create transaction","description":"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.","operationId":"createTransaction","tags":["Transactions"],"x-codeSamples":[{"lang":"curl","label":"curl","source":"curl -X POST 'https://verification.didit.me/v3/transactions/' \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"transaction_id\": \"your-txn-2026-05-17-001\",\n \"transaction_category\": \"finance\",\n \"transaction_details\": {\n \"direction\": \"outbound\",\n \"amount\": 1500,\n \"currency\": \"EUR\",\n \"action_type\": \"withdrawal\"\n },\n \"subject\": {\n \"entity_type\": \"individual\",\n \"vendor_data\": \"user-12345\",\n \"full_name\": \"Maria Garcia\"\n }\n }'"},{"lang":"python","label":"Python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.transactions.create(\n transaction_id=\"your-txn-2026-05-17-001\",\n transaction_category=\"finance\",\n transaction_details={\n \"direction\": \"outbound\",\n \"amount\": 1500.0,\n \"currency\": \"EUR\",\n \"action_type\": \"withdrawal\",\n },\n subject={\n \"entity_type\": \"individual\",\n \"vendor_data\": \"user-12345\",\n \"full_name\": \"Maria Garcia\",\n },\n)\nprint(result)"},{"lang":"javascript","label":"Node.js","source":"import Didit from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.transactions.create({\n transaction_id: \"your-txn-2026-05-17-001\",\n transaction_category: \"finance\",\n transaction_details: {\n direction: \"outbound\",\n amount: 1500.0,\n currency: \"EUR\",\n action_type: \"withdrawal\",\n },\n subject: {\n entity_type: \"individual\",\n vendor_data: \"user-12345\",\n full_name: \"Maria Garcia\",\n },\n});\nconsole.log(result);"},{"lang":"go","label":"Go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Transactions.Create(ctx, didit.TransactionsCreateParams{\n\tTransactionID: \"your-txn-2026-05-17-001\",\n\tTransactionCategory: \"finance\",\n\tTransactionDetails: didit.TransactionsCreateParamsTransactionDetails{\n\t\tDirection: \"outbound\",\n\t\tAmount: 1500.0,\n\t\tCurrency: \"EUR\",\n\t\tActionType: didit.String(\"withdrawal\"),\n\t},\n\tSubject: didit.TransactionsCreateParamsSubject{\n\t\tEntityType: didit.String(\"individual\"),\n\t\tVendorData: \"user-12345\",\n\t\tFullName: \"Maria Garcia\",\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"lang":"java","label":"Java","source":"import me.didit.Didit;\nimport me.didit.types.TransactionsCreateParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.transactions().create(TransactionsCreateParams.builder()\n .transactionId(\"your-txn-2026-05-17-001\")\n .transactionCategory(TransactionsCreateParams.TransactionCategory.of(\"finance\"))\n .transactionDetails(TransactionsCreateParams.TransactionDetails.builder()\n .direction(TransactionsCreateParams.TransactionDetails.Direction.of(\"outbound\"))\n .amount(1500.0)\n .currency(\"EUR\")\n .actionType(\"withdrawal\")\n .build())\n .subject(TransactionsCreateParams.Subject.builder()\n .entityType(\"individual\")\n .vendorData(\"user-12345\")\n .fullName(\"Maria Garcia\")\n .build())\n .build());\nSystem.out.println(result);"},{"lang":"php","label":"PHP","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->transactions->create([\n 'transaction_id' => 'your-txn-2026-05-17-001',\n 'transaction_category' => 'finance',\n 'transaction_details' => [\n 'direction' => 'outbound',\n 'amount' => 1500.0,\n 'currency' => 'EUR',\n 'action_type' => 'withdrawal',\n ],\n 'subject' => [\n 'entity_type' => 'individual',\n 'vendor_data' => 'user-12345',\n 'full_name' => 'Maria Garcia',\n ],\n]);\nprint_r($result->toArray());"},{"lang":"ruby","label":"Ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.transactions.create(\n transaction_id: \"your-txn-2026-05-17-001\",\n transaction_category: \"finance\",\n transaction_details: {\n direction: \"outbound\",\n amount: 1500.0,\n currency: \"EUR\",\n action_type: \"withdrawal\",\n },\n subject: {\n entity_type: \"individual\",\n vendor_data: \"user-12345\",\n full_name: \"Maria Garcia\",\n }\n)\nputs result.to_h"},{"lang":"csharp","label":".NET","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.Transactions.CreateAsync(new TransactionsCreateParams\n{\n TransactionId = \"your-txn-2026-05-17-001\",\n TransactionCategory = \"finance\",\n TransactionDetails = new()\n {\n Direction = \"outbound\",\n Amount = 1500.0,\n Currency = \"EUR\",\n ActionType = \"withdrawal\",\n },\n Subject = new()\n {\n EntityType = \"individual\",\n VendorData = \"user-12345\",\n FullName = \"Maria Garcia\",\n },\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"requestBody":"65117987-7339-4329-b683-935f322f3454","responses":{"201":"c591632c-57ef-416f-90c9-039c091475c2","400":"a187e6df-979e-46f9-ab6f-23d50fd766fd","403":"4db562e7-f735-4643-bacb-dcc23a9ecaeb","409":"2dac0732-19c8-4268-bff7-7e852ac4edad","429":"cf2c19c8-c5a9-4c57-844b-59ec484ccf22"},"security":["eff06fbf-7a65-424b-bb40-9ed5f0276b8a"],"x-didit-sdk":{"resource":"transactions","method":"create","auth":"api_key","server":true},"method":"post","type":"path","servers":["b0ba96d4-d4bf-4592-a911-47e2a156ceb7"],"path":"/v3/transactions/","baseUrlOptions":["https://verification.didit.me"],"title":"Create transaction","codeSamples":[{"label":"curl","lang":"curl","source":"curl -X POST 'https://verification.didit.me/v3/transactions/' \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"transaction_id\": \"your-txn-2026-05-17-001\",\n \"transaction_category\": \"finance\",\n \"transaction_details\": {\n \"direction\": \"outbound\",\n \"amount\": 1500,\n \"currency\": \"EUR\",\n \"action_type\": \"withdrawal\"\n },\n \"subject\": {\n \"entity_type\": \"individual\",\n \"vendor_data\": \"user-12345\",\n \"full_name\": \"Maria Garcia\"\n }\n }'"},{"label":"Python","lang":"python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.transactions.create(\n transaction_id=\"your-txn-2026-05-17-001\",\n transaction_category=\"finance\",\n transaction_details={\n \"direction\": \"outbound\",\n \"amount\": 1500.0,\n \"currency\": \"EUR\",\n \"action_type\": \"withdrawal\",\n },\n subject={\n \"entity_type\": \"individual\",\n \"vendor_data\": \"user-12345\",\n \"full_name\": \"Maria Garcia\",\n },\n)\nprint(result)"},{"label":"Node.js","lang":"javascript","source":"import Didit from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.transactions.create({\n transaction_id: \"your-txn-2026-05-17-001\",\n transaction_category: \"finance\",\n transaction_details: {\n direction: \"outbound\",\n amount: 1500.0,\n currency: \"EUR\",\n action_type: \"withdrawal\",\n },\n subject: {\n entity_type: \"individual\",\n vendor_data: \"user-12345\",\n full_name: \"Maria Garcia\",\n },\n});\nconsole.log(result);"},{"label":"Go","lang":"go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Transactions.Create(ctx, didit.TransactionsCreateParams{\n\tTransactionID: \"your-txn-2026-05-17-001\",\n\tTransactionCategory: \"finance\",\n\tTransactionDetails: didit.TransactionsCreateParamsTransactionDetails{\n\t\tDirection: \"outbound\",\n\t\tAmount: 1500.0,\n\t\tCurrency: \"EUR\",\n\t\tActionType: didit.String(\"withdrawal\"),\n\t},\n\tSubject: didit.TransactionsCreateParamsSubject{\n\t\tEntityType: didit.String(\"individual\"),\n\t\tVendorData: \"user-12345\",\n\t\tFullName: \"Maria Garcia\",\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"label":"Java","lang":"java","source":"import me.didit.Didit;\nimport me.didit.types.TransactionsCreateParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.transactions().create(TransactionsCreateParams.builder()\n .transactionId(\"your-txn-2026-05-17-001\")\n .transactionCategory(TransactionsCreateParams.TransactionCategory.of(\"finance\"))\n .transactionDetails(TransactionsCreateParams.TransactionDetails.builder()\n .direction(TransactionsCreateParams.TransactionDetails.Direction.of(\"outbound\"))\n .amount(1500.0)\n .currency(\"EUR\")\n .actionType(\"withdrawal\")\n .build())\n .subject(TransactionsCreateParams.Subject.builder()\n .entityType(\"individual\")\n .vendorData(\"user-12345\")\n .fullName(\"Maria Garcia\")\n .build())\n .build());\nSystem.out.println(result);"},{"label":"PHP","lang":"php","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->transactions->create([\n 'transaction_id' => 'your-txn-2026-05-17-001',\n 'transaction_category' => 'finance',\n 'transaction_details' => [\n 'direction' => 'outbound',\n 'amount' => 1500.0,\n 'currency' => 'EUR',\n 'action_type' => 'withdrawal',\n ],\n 'subject' => [\n 'entity_type' => 'individual',\n 'vendor_data' => 'user-12345',\n 'full_name' => 'Maria Garcia',\n ],\n]);\nprint_r($result->toArray());"},{"label":"Ruby","lang":"ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.transactions.create(\n transaction_id: \"your-txn-2026-05-17-001\",\n transaction_category: \"finance\",\n transaction_details: {\n direction: \"outbound\",\n amount: 1500.0,\n currency: \"EUR\",\n action_type: \"withdrawal\",\n },\n subject: {\n entity_type: \"individual\",\n vendor_data: \"user-12345\",\n full_name: \"Maria Garcia\",\n }\n)\nputs result.to_h"},{"label":".NET","lang":"csharp","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.Transactions.CreateAsync(new TransactionsCreateParams\n{\n TransactionId = \"your-txn-2026-05-17-001\",\n TransactionCategory = \"finance\",\n TransactionDetails = new()\n {\n Direction = \"outbound\",\n Amount = 1500.0,\n Currency = \"EUR\",\n ActionType = \"withdrawal\",\n },\n Subject = new()\n {\n EntityType = \"individual\",\n VendorData = \"user-12345\",\n FullName = \"Maria Garcia\",\n },\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.transaction_id":"your-txn-2026-05-17-001","body.transaction_category":"finance","body.transaction_details.direction":"outbound","body.transaction_details.amount":1500,"body.transaction_details.currency":"EUR","body.transaction_details.action_type.oneOf.0":"withdrawal","body.subject.vendor_data":"user-12345","body.subject.full_name":"Maria Garcia","body.subject.entity_type":"individual"},{"body.transaction_id":"your-txn-2026-05-17-002","body.transaction_category":"finance","body.transaction_details.direction":"outbound","body.transaction_details.amount":0.5,"body.transaction_details.currency":"BTC","body.transaction_details.currency_kind":"crypto","body.transaction_details.amount_in_default_currency.oneOf.0":32500,"body.transaction_details.default_currency":"USD","body.transaction_details.action_type.oneOf.0":"withdrawal","body.subject.vendor_data":"user-12345","body.subject.full_name":"Maria Garcia","body.subject.entity_type":"individual","body.subject.payment_method.method_type":"crypto_wallet","body.subject.payment_method.account_id":"bc1qexampleexchangewalletaddressxyz","body.subject.payment_method.issuing_country":"ESP","body.counterparty.entity_type":"individual","body.counterparty.payment_method.method_type":"unhosted_wallet","body.counterparty.payment_method.account_id":"bc1qexampleexternalwalletaddressabc","body.include_crypto_screening.oneOf.0":true},{"body.transaction_id":"your-txn-2026-05-17-003","body.transaction_category":"travel_rule","body.transaction_details.direction":"outbound","body.transaction_details.amount":25000,"body.transaction_details.currency":"USDT","body.transaction_details.currency_kind":"crypto","body.transaction_details.action_type.oneOf.0":"transfer","body.subject.vendor_data":"user-12345","body.subject.full_name":"Maria Garcia","body.subject.entity_type":"individual","body.subject.date_of_birth":"1992-03-14","body.subject.address.country":"ESP","body.subject.address.town":"Madrid","body.subject.address.street":"Calle Mayor 1","body.subject.address.post_code":"28013","body.counterparty.entity_type":"individual","body.counterparty.full_name":"John Beneficiary","body.counterparty.institution_details":{"name":"Beneficiary VASP, Inc.","code":"BVASP-US"},"body.travel_rule_details.status":"AWAITING_COUNTERPARTY","body.travel_rule_details.protocol":"IVMS101","body.travel_rule_details.required":true,"body.travel_rule_details.originator_data":{"name":"Maria Garcia"},"body.travel_rule_details.beneficiary_data":{"name":"John Beneficiary"}}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"transaction_id":{"type":"string","description":"Your unique identifier for this transaction (max 128 characters).","example":"your-txn-2026-05-17-001","isRequired":true,"uniqueKey":"transaction_id","typeLabel":"string"},"transaction_category":{"type":"string","description":"Category of the transaction. CamelCase aliases (`travelRule`, `userPlatformEvent`, `gamblingBet`, …) are also accepted; the stored/echoed value is camelCase for multi-word categories.","example":"finance","enum":["finance","kyc","travel_rule","user_event","audit_trail_event","gambling_bet","gambling_limit_change","gambling_bonus_change","travelRule"],"isRequired":true,"uniqueKey":"transaction_category","typeLabel":"enum\u003cstring>"},"transaction_details":{"type":"object","description":"Core financial details of the transaction.","required":["direction","amount","currency"],"properties":{"direction":{"type":"string","description":"Direction of the transaction relative to the subject. Case-insensitive; `in`/`out` are accepted as aliases. Echoed back uppercase (`INBOUND`/`OUTBOUND`).","example":"outbound","enum":["inbound","outbound","in","out"],"isRequired":true,"uniqueKey":"transaction_details.direction","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"Transaction amount (up to 18 decimal places). Send it as a decimal string (e.g. `\"0.123456789012345678\"`) when exact precision matters: a JSON number is parsed as a binary float first, so digits beyond about 15 significant digits are rounded before the amount is stored. Must be zero or greater: the direction carries the sign, and a negative amount returns `400`.","example":1500,"isRequired":true,"uniqueKey":"transaction_details.amount","typeLabel":"number"},"currency":{"type":"string","description":"Currency code. 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`.","example":"EUR","isRequired":true,"uniqueKey":"transaction_details.currency","typeLabel":"string"},"currency_kind":{"type":"string","description":"Whether the currency is `fiat` or `crypto`.","uniqueKey":"transaction_details.currency_kind","typeLabel":"string"},"amount_in_default_currency":{"oneOf":[{"type":"number","description":"Pre-converted amount in the default currency. If omitted, automatic FX conversion is attempted. Must be zero or greater.","uniqueKey":"transaction_details.amount_in_default_currency.oneOf.0","typeLabel":"number"},{"type":"null","description":"Pre-converted amount in the default currency. If omitted, automatic FX conversion is attempted. Must be zero or greater.","uniqueKey":"transaction_details.amount_in_default_currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"transaction_details.amount_in_default_currency","typeLabel":"number | null"},"default_currency":{"type":"string","description":"The default currency code for the converted amount. Any currently-circulating ISO 4217 code.","uniqueKey":"transaction_details.default_currency","typeLabel":"string"},"payment_details":{"oneOf":[{"type":"string","description":"Free-text payment reference or memo.","uniqueKey":"transaction_details.payment_details.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text payment reference or memo.","uniqueKey":"transaction_details.payment_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"transaction_details.payment_details","typeLabel":"string | null"},"payment_reference_id":{"oneOf":[{"type":"string","description":"External payment system reference. For crypto AML transaction-hash screening, send the blockchain transaction hash and also provide `subject.payment_method.account_id` with the related address.","uniqueKey":"transaction_details.payment_reference_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External payment system reference. For crypto AML transaction-hash screening, send the blockchain transaction hash and also provide `subject.payment_method.account_id` with the related address.","uniqueKey":"transaction_details.payment_reference_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"transaction_details.payment_reference_id","typeLabel":"string | null"},"action_type":{"oneOf":[{"type":"string","description":"Sub-type of the transaction, e.g. `deposit`, `withdrawal`, `transfer`.","uniqueKey":"transaction_details.action_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sub-type of the transaction, e.g. `deposit`, `withdrawal`, `transfer`.","uniqueKey":"transaction_details.action_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"transaction_details.action_type","typeLabel":"string | null"},"crypto_params":{"type":"object","description":"Crypto network selection, separate from currency (the asset symbol). Recording a custom token symbol does not guarantee transaction-hash coverage for its contract.","properties":{"crypto_chain":{"type":"string","description":"Actual network used for screening. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), ARB (Arbitrum One), AVAX (Avalanche C-Chain), ADA (Cardano), XLM (Stellar) and HBAR (Hedera). Common network names are accepted too, for example POLYGON or POL for MATIC, BSC for BNB and TRON for TRX. Always specify this for multi-network tokens. When it is missing for USDT, USDC or ETH sent with a 0x transaction hash, Didit looks the hash up on Ethereum, BNB Chain, Polygon, Base, Arbitrum and Optimism and screens it on the network where it is found; if no network has it, the transaction is not screened and custom_values.aml_screening_status is FAILED with the reason in custom_values.aml_screening_error. When it is missing for USDT or USDC screened by wallet (no transaction hash), a Tron address is screened on Tron, a Solana address on Solana, and a 0x address on the first of those six networks where it has sent a transaction or holds the token, or on Ethereum when it is active on none of them. Connected-provider coverage varies; LIGHTNING requires a supported connected provider.","example":"BASE","uniqueKey":"transaction_details.crypto_params.crypto_chain","typeLabel":"string"}},"uniqueKey":"transaction_details.crypto_params","typeLabel":"object"}},"isRequired":true,"uniqueKey":"transaction_details","typeLabel":"object"},"subject":{"type":"object","description":"The subject (applicant) of the transaction.","required":["vendor_data","full_name"],"properties":{"vendor_data":{"type":"string","description":"Your internal user/business identifier.","example":"user-12345","isRequired":true,"uniqueKey":"subject.vendor_data","typeLabel":"string"},"full_name":{"type":"string","description":"Full name of the subject.","example":"Maria Garcia","isRequired":true,"uniqueKey":"subject.full_name","typeLabel":"string"},"entity_type":{"type":"string","description":"Entity type: `individual` or `company`.","uniqueKey":"subject.entity_type","typeLabel":"string"},"first_name":{"type":"string","description":"First name of the subject.","uniqueKey":"subject.first_name","typeLabel":"string"},"last_name":{"type":"string","description":"Last name of the subject.","uniqueKey":"subject.last_name","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth (YYYY-MM-DD).","uniqueKey":"subject.date_of_birth","typeLabel":"string\u003cdate>"},"address":{"type":"object","description":"Address object.","properties":{"country":{"type":"string","description":"Country code (ISO 3166-1 alpha-3 recommended). Copied to the party's `country_code`.","uniqueKey":"subject.address.country","typeLabel":"string"},"town":{"type":"string","uniqueKey":"subject.address.town","typeLabel":"string"},"state":{"type":"string","uniqueKey":"subject.address.state","typeLabel":"string"},"street":{"type":"string","uniqueKey":"subject.address.street","typeLabel":"string"},"post_code":{"type":"string","uniqueKey":"subject.address.post_code","typeLabel":"string"}},"uniqueKey":"subject.address","typeLabel":"object"},"institution_details":{"type":"object","description":"Institution details (for institutional subjects).","properties":{"name":{"type":"string","uniqueKey":"subject.institution_details.name","typeLabel":"string"},"code":{"type":"string","uniqueKey":"subject.institution_details.code","typeLabel":"string"},"address":{"type":"object","uniqueKey":"subject.institution_details.address","typeLabel":"object"}},"uniqueKey":"subject.institution_details","typeLabel":"object"},"device_context":{"type":"object","description":"Device context captured at transaction time. browser_family and platform must be sent as explicit top-level keys — they are not derived from user_agent. The camelCase alias device is also accepted on the request.","properties":{"fingerprint":{"type":"string","description":"Unique device fingerprint.","uniqueKey":"subject.device_context.fingerprint","typeLabel":"string"},"persistent_device_id":{"type":"string","description":"Stable cross-session device identifier (v2 fingerprint schema).","uniqueKey":"subject.device_context.persistent_device_id","typeLabel":"string"},"user_agent":{"type":"string","description":"Browser or app user agent string. CamelCase alias: userAgent.","uniqueKey":"subject.device_context.user_agent","typeLabel":"string"},"browser_family":{"type":"string","description":"Browser family (e.g. Chrome, Firefox, Safari). Must be sent explicitly — it is not derived from user_agent. CamelCase alias: browserFamily.","uniqueKey":"subject.device_context.browser_family","typeLabel":"string"},"browser_version":{"type":"string","description":"Browser version string. Must be sent explicitly. CamelCase alias: browserVersion.","uniqueKey":"subject.device_context.browser_version","typeLabel":"string"},"platform":{"type":"string","description":"Platform identifier (web, ios, android, macos, windows, linux). Must be sent explicitly — it is not derived from user_agent.","uniqueKey":"subject.device_context.platform","typeLabel":"string"},"os_family":{"type":"string","description":"Operating system family (e.g. iOS, Android, Windows). CamelCase alias: osFamily.","uniqueKey":"subject.device_context.os_family","typeLabel":"string"},"os_version":{"type":"string","description":"Operating system version string. CamelCase alias: osVersion.","uniqueKey":"subject.device_context.os_version","typeLabel":"string"},"accept_language":{"type":"string","description":"Accept-Language header value. CamelCase alias: acceptLang.","uniqueKey":"subject.device_context.accept_language","typeLabel":"string"},"session_id":{"type":"string","description":"Session identifier of the user current session. Stored in metadata. CamelCase alias: sessionId.","uniqueKey":"subject.device_context.session_id","typeLabel":"string"},"session_age_ms":{"type":"number","description":"Age of the user session in milliseconds at transaction time. CamelCase alias: sessionAgeMs.","uniqueKey":"subject.device_context.session_age_ms","typeLabel":"number"},"network_context":{"type":"object","description":"Network context with IP address and geo-location. A top-level ipInfo block is also folded into this object.","properties":{"ip_address":{"type":"string","description":"Client IP address. CamelCase alias: ip.","uniqueKey":"subject.device_context.network_context.ip_address","typeLabel":"string"},"ip_country_code":{"type":"string","description":"Geo-resolved country of the IP (ISO 3166-1 alpha-3). CamelCase alias: countryCode3.","uniqueKey":"subject.device_context.network_context.ip_country_code","typeLabel":"string"},"latitude":{"type":"number","description":"Geographic latitude of the IP. CamelCase alias: lat.","uniqueKey":"subject.device_context.network_context.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Geographic longitude of the IP. CamelCase alias: lon.","uniqueKey":"subject.device_context.network_context.longitude","typeLabel":"number"}},"uniqueKey":"subject.device_context.network_context","typeLabel":"object"}},"uniqueKey":"subject.device_context","typeLabel":"object"},"payment_method":{"type":"object","description":"Payment method used by the subject.","properties":{"method_type":{"type":"string","description":"Type of payment method: `bank_card`, `bank_account`, `crypto_wallet`, `ewallet`, `unhosted_wallet`, `other`.","uniqueKey":"subject.payment_method.method_type","typeLabel":"string"},"account_id":{"type":"string","description":"Account identifier (e.g. IBAN, wallet address). For crypto screening, this should contain the wallet address for this participant. Inbound transaction-hash screening requires the service/customer deposit address on the subject. Outbound screening uses the destination wallet on the counterparty. On a crypto transfer on bitcoin or Lightning it may be a Lightning payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address: Didit stores the payee it names as the account (\"\" when it names none) and what the request says on the Travel Rule transfer's `chain_details.lightning`. At most 255 characters once stored. On a crypto transfer on bitcoin or Lightning it may be a Lightning payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address: Didit stores the payee it names as the account (\"\" when it names none) and what the request says on the Travel Rule transfer's `chain_details.lightning`. At most 255 characters once stored.","uniqueKey":"subject.payment_method.account_id","typeLabel":"string"},"memo":{"type":"string","maxLength":256,"description":"The destination tag or memo that is part of the wallet on a memo network (XRP, XLM, EOS, ATOM, HBAR). On one shared exchange address each memo is its own payment method. XRP: a destination tag, a whole number from 0 to 4294967295 (a JSON number is accepted). XLM: a text memo of up to 28 bytes, a 64-bit id or a 32-byte hash in hex. EOS: up to 256 bytes. ATOM: up to 256 characters. HBAR: up to 100 bytes. Bitcoin, EVM, Solana, Tron, Litecoin, Bitcoin Cash, Dogecoin and Lightning wallets take no memo: one there is a `400`. Alias: `destinationTag` or `destination_tag`.","uniqueKey":"subject.payment_method.memo","typeLabel":"string"},"issuing_country":{"type":"string","description":"ISO 3166-1 alpha-3 country code of the issuer.","uniqueKey":"subject.payment_method.issuing_country","typeLabel":"string"}},"uniqueKey":"subject.payment_method","typeLabel":"object"}},"isRequired":true,"uniqueKey":"subject","typeLabel":"object"},"transaction_at":{"type":"string","format":"date-time","description":"When the transaction occurred. Defaults to now if omitted.","uniqueKey":"transaction_at","typeLabel":"string\u003cdate-time>"},"time_zone":{"type":"string","description":"IANA time zone identifier, e.g. `Europe/Madrid`.","uniqueKey":"time_zone","typeLabel":"string"},"counterparty":{"type":"object","description":"The counterparty of the transaction (optional).","properties":{"entity_type":{"type":"string","description":"Entity type: `individual` or `company`.","uniqueKey":"counterparty.entity_type","typeLabel":"string"},"vendor_data":{"type":"string","description":"Your internal identifier for the counterparty.","uniqueKey":"counterparty.vendor_data","typeLabel":"string"},"full_name":{"type":"string","description":"Full name of the counterparty.","uniqueKey":"counterparty.full_name","typeLabel":"string"},"first_name":{"type":"string","uniqueKey":"counterparty.first_name","typeLabel":"string"},"last_name":{"type":"string","uniqueKey":"counterparty.last_name","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","uniqueKey":"counterparty.date_of_birth","typeLabel":"string\u003cdate>"},"address":{"type":"object","description":"Address object with `country` (ISO 3166-1 alpha-3).","uniqueKey":"counterparty.address","typeLabel":"object"},"institution_details":{"type":"object","uniqueKey":"counterparty.institution_details","typeLabel":"object"},"device_context":{"type":"object","description":"Device context for the counterparty. browser_family and platform must be sent as explicit top-level keys — they are not derived from user_agent.","properties":{"fingerprint":{"type":"string","description":"Unique device fingerprint.","uniqueKey":"counterparty.device_context.fingerprint","typeLabel":"string"},"persistent_device_id":{"type":"string","description":"Stable cross-session device identifier (v2 fingerprint schema).","uniqueKey":"counterparty.device_context.persistent_device_id","typeLabel":"string"},"user_agent":{"type":"string","description":"Browser or app user agent string. CamelCase alias: userAgent.","uniqueKey":"counterparty.device_context.user_agent","typeLabel":"string"},"browser_family":{"type":"string","description":"Browser family (e.g. Chrome, Firefox, Safari). Must be sent explicitly — it is not derived from user_agent. CamelCase alias: browserFamily.","uniqueKey":"counterparty.device_context.browser_family","typeLabel":"string"},"browser_version":{"type":"string","description":"Browser version string. Must be sent explicitly. CamelCase alias: browserVersion.","uniqueKey":"counterparty.device_context.browser_version","typeLabel":"string"},"platform":{"type":"string","description":"Platform identifier (web, ios, android, macos, windows, linux). Must be sent explicitly — it is not derived from user_agent.","uniqueKey":"counterparty.device_context.platform","typeLabel":"string"},"os_family":{"type":"string","description":"Operating system family (e.g. iOS, Android, Windows). CamelCase alias: osFamily.","uniqueKey":"counterparty.device_context.os_family","typeLabel":"string"},"os_version":{"type":"string","description":"Operating system version string. CamelCase alias: osVersion.","uniqueKey":"counterparty.device_context.os_version","typeLabel":"string"},"accept_language":{"type":"string","description":"Accept-Language header value. CamelCase alias: acceptLang.","uniqueKey":"counterparty.device_context.accept_language","typeLabel":"string"},"session_id":{"type":"string","description":"Session identifier for the counterparty session. Stored in metadata. CamelCase alias: sessionId.","uniqueKey":"counterparty.device_context.session_id","typeLabel":"string"},"session_age_ms":{"type":"number","description":"Age of the user session in milliseconds at transaction time. CamelCase alias: sessionAgeMs.","uniqueKey":"counterparty.device_context.session_age_ms","typeLabel":"number"},"network_context":{"type":"object","description":"Network context with IP address and geo-location. A top-level ipInfo block is also folded into this object.","properties":{"ip_address":{"type":"string","description":"Client IP address. CamelCase alias: ip.","uniqueKey":"counterparty.device_context.network_context.ip_address","typeLabel":"string"},"ip_country_code":{"type":"string","description":"Geo-resolved country of the IP (ISO 3166-1 alpha-3). CamelCase alias: countryCode3.","uniqueKey":"counterparty.device_context.network_context.ip_country_code","typeLabel":"string"},"latitude":{"type":"number","description":"Geographic latitude of the IP. CamelCase alias: lat.","uniqueKey":"counterparty.device_context.network_context.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Geographic longitude of the IP. CamelCase alias: lon.","uniqueKey":"counterparty.device_context.network_context.longitude","typeLabel":"number"}},"uniqueKey":"counterparty.device_context.network_context","typeLabel":"object"}},"uniqueKey":"counterparty.device_context","typeLabel":"object"},"payment_method":{"type":"object","description":"Payment method used by the counterparty. On travelRule transactions, `method_type: \"unhosted_wallet\"` declares the counterparty wallet as self-hosted: the transfer skips counterparty-VASP routing, is created directly in `UNCONFIRMED_OWNERSHIP`, and (when `auto_wallet_verification` is enabled) a wallet-ownership widget session is auto-minted and returned in the transaction's `action_required` block.","properties":{"method_type":{"type":"string","description":"Type of payment method: `bank_card`, `bank_account`, `crypto_wallet`, `ewallet`, `unhosted_wallet`, `other`. Use `unhosted_wallet` to declare a self-hosted wallet for the Travel Rule.","uniqueKey":"counterparty.payment_method.method_type","typeLabel":"string"},"account_id":{"type":"string","description":"Account identifier (e.g. IBAN or wallet address). On a crypto transfer on bitcoin or Lightning it may be a Lightning payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address: Didit stores the payee it names as the account (\"\" when it names none) and what the request says on the Travel Rule transfer's `chain_details.lightning`. At most 255 characters once stored. On a crypto transfer on bitcoin or Lightning it may be a Lightning payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address: Didit stores the payee it names as the account (\"\" when it names none) and what the request says on the Travel Rule transfer's `chain_details.lightning`. At most 255 characters once stored.","uniqueKey":"counterparty.payment_method.account_id","typeLabel":"string"},"memo":{"type":"string","maxLength":256,"description":"The destination tag or memo that is part of the wallet on a memo network (XRP, XLM, EOS, ATOM, HBAR). On one shared exchange address each memo is its own payment method. XRP: a destination tag, a whole number from 0 to 4294967295 (a JSON number is accepted). XLM: a text memo of up to 28 bytes, a 64-bit id or a 32-byte hash in hex. EOS: up to 256 bytes. ATOM: up to 256 characters. HBAR: up to 100 bytes. Bitcoin, EVM, Solana, Tron, Litecoin, Bitcoin Cash, Dogecoin and Lightning wallets take no memo: one there is a `400`. Alias: `destinationTag` or `destination_tag`.","uniqueKey":"counterparty.payment_method.memo","typeLabel":"string"},"issuing_country":{"type":"string","uniqueKey":"counterparty.payment_method.issuing_country","typeLabel":"string"}},"uniqueKey":"counterparty.payment_method","typeLabel":"object"}},"uniqueKey":"counterparty","typeLabel":"object"},"custom_properties":{"type":"object","description":"Arbitrary key-value pairs attached to the transaction. Each key can be referenced in rule conditions with the field path `custom_values.\u003ckey>`.","additionalProperties":true,"example":{"merchant_id":"test","bank_name":"test_2"},"uniqueKey":"custom_properties","typeLabel":"object"},"travel_rule_details":{"type":"object","description":"Travel Rule data. When Travel Rule is enabled and transaction_category is travel_rule, Didit runs the exchange itself: it ignores status, protocol, required and obligations_count, and uses originator_data, beneficiary_data and metadata. Otherwise Didit stores these values as a passive Travel Rule record. While Travel Rule is on, an outbound transfer at or above your threshold must carry what its regime requires (EU TFR or FATF Recommendation 16), checked on the sides you send: a missing field answers 400 under `travel_rule_details.originator_data` or `travel_rule_details.beneficiary_data`, for example \"EU TFR requires the originator name.\"","required":["status"],"properties":{"status":{"type":"string","description":"Required whenever you send travel_rule_details. One of the Travel Rule transfer statuses (for example AWAITING_COUNTERPARTY, COMPLETED, NOT_APPLICABLE); lowercase and camelCase spellings and the legacy values UNKNOWN, COMPLIANT, PENDING_ACTION, PENDING_COUNTERPARTY, FAILED and EXEMPT are also accepted and mapped. Any other value returns 400.","isRequired":true,"uniqueKey":"travel_rule_details.status","typeLabel":"string"},"protocol":{"type":"string","uniqueKey":"travel_rule_details.protocol","typeLabel":"string"},"required":{"type":"boolean","uniqueKey":"travel_rule_details.required","typeLabel":"boolean"},"obligations_count":{"type":"integer","uniqueKey":"travel_rule_details.obligations_count","typeLabel":"integer"},"originator_data":{"type":"object","description":"Originator party, as flat fields or one IVMS 101 person. For your user with an approved KYC verification, Didit replaces the fields the verification holds with the verified values (see `metadata.originator_provenance`). It must be an object: anything else is a `400`. On a memo network a `memo` key names the originator wallet's memo or tag.","uniqueKey":"travel_rule_details.originator_data","typeLabel":"object"},"beneficiary_data":{"type":"object","description":"Beneficiary party, as flat fields or one IVMS 101 person. It must be an object: anything else is a `400`. To route the transfer, Didit reads `wallet_address` (an empty one is filled from `counterparty.payment_method.account_id`), `chain` (filled from `transaction_details.crypto_params.crypto_chain` or the `currency` when that names a supported chain), `name` (falling back to `counterparty.full_name`), `travel_address`, `counterparty_vasp_name`, `counterparty_vasp_lei` and `counterparty_vasp_email`. On a memo network `memo` names the beneficiary wallet's memo or tag; `wallet_address` and `memo` win over the counterparty's payment method.","uniqueKey":"travel_rule_details.beneficiary_data","typeLabel":"object"},"metadata":{"type":"object","uniqueKey":"travel_rule_details.metadata","typeLabel":"object"},"utxo":{"type":"object","description":"Optional, UTXO chains only (BTC, LTC, BCH, DOGE). The transaction's inputs and outputs, from which Didit infers the originator wallet and the beneficiary output when you do not declare them.","required":["outputs"],"properties":{"outputs":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","description":"One input or output of a UTXO transaction, as the chain recorded it.","required":["address"],"properties":{"address":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].address","typeLabel":"string"},"amount":{"oneOf":[{"type":"string","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].amount","typeLabel":"string | null"},"txid":{"type":"string","maxLength":128,"description":"Optional. The transaction an input spends.","uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].txid","typeLabel":"string"},"vout":{"oneOf":[{"type":"integer","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].vout.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].vout.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX].vout","typeLabel":"integer | null"}},"uniqueKey":"travel_rule_details.utxo.outputs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"travel_rule_details.utxo.outputs","typeLabel":"object[]"},"inputs":{"type":"array","maxItems":1000,"items":{"type":"object","description":"One input or output of a UTXO transaction, as the chain recorded it.","required":["address"],"properties":{"address":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].address","typeLabel":"string"},"amount":{"oneOf":[{"type":"string","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].amount","typeLabel":"string | null"},"txid":{"type":"string","maxLength":128,"description":"Optional. The transaction an input spends.","uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].txid","typeLabel":"string"},"vout":{"oneOf":[{"type":"integer","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].vout.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].vout.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX].vout","typeLabel":"integer | null"}},"uniqueKey":"travel_rule_details.utxo.inputs.items.[INDEX]","typeLabel":"object"},"description":"Optional. Without inputs no originator is inferred and no change output is recognised.","uniqueKey":"travel_rule_details.utxo.inputs","typeLabel":"object[]"}},"uniqueKey":"travel_rule_details.utxo","typeLabel":"object"},"originator":{"type":"object","description":"An IVMS 101 originator block: `originatorPersons` (one `naturalPerson` or `legalPerson`; a legal person makes the party a company) and `accountNumber` (wallet addresses). Used for `originator_data` when that object is empty. A malformed block answers 400 keyed by its path, for example `originator.originatorPersons`.","uniqueKey":"travel_rule_details.originator","typeLabel":"object"},"beneficiary":{"type":"object","description":"An IVMS 101 beneficiary block: `beneficiaryPersons` (one `naturalPerson` or `legalPerson`; a legal person makes the party a company) and `accountNumber` (wallet addresses). Used for `beneficiary_data` when that object is empty. A malformed block answers 400 keyed by its path, for example `beneficiary.beneficiaryPersons`.","uniqueKey":"travel_rule_details.beneficiary","typeLabel":"object"},"ivms101":{"type":"object","description":"The `originator` and `beneficiary` blocks wrapped in one IVMS 101 object (`IVMS101` is accepted too). Top-level blocks win over the wrapper's.","uniqueKey":"travel_rule_details.ivms101","typeLabel":"object"},"counterparty_choice":{"type":"string","description":"discovery uses automatic counterparty discovery. user asks the end user to choose, issues a link and attempts email when their Didit record has an address. Cannot be combined with beneficiary_data.counterparty_vasp_name or counterparty_vasp_lei. Read user_choice in the response; link or email failure does not fail creation.","enum":["discovery","user"],"default":"discovery","uniqueKey":"travel_rule_details.counterparty_choice","typeLabel":"enum\u003cstring>"}},"uniqueKey":"travel_rule_details","typeLabel":"object"},"network_snapshot":{"type":"object","description":"Pre-computed network graph snapshot.","properties":{"nodes":{"type":"array","items":{"type":"object","uniqueKey":"network_snapshot.nodes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"network_snapshot.nodes","typeLabel":"object[]"},"edges":{"type":"array","items":{"type":"object","uniqueKey":"network_snapshot.edges.items.[INDEX]","typeLabel":"object"},"uniqueKey":"network_snapshot.edges","typeLabel":"object[]"},"metrics":{"type":"object","uniqueKey":"network_snapshot.metrics","typeLabel":"object"}},"uniqueKey":"network_snapshot","typeLabel":"object"},"include_crypto_screening":{"oneOf":[{"type":"boolean","description":"Per-transaction override for crypto blockchain analytics screening. When `true`, crypto screening is performed regardless of the application default. When `false`, crypto screening is skipped even if enabled in the application settings. When omitted or `null`, the application-level default configured in the Console is used. Crypto screening requires `transaction_details.direction`, `currency_kind: \"crypto\"`, a chain/currency, and the wallet address selected by the direction: inbound pre-transfer screening uses `counterparty.payment_method.account_id`, inbound transaction-hash screening uses `subject.payment_method.account_id`, and outbound screening uses `counterparty.payment_method.account_id`. When `transaction_details.payment_reference_id` contains a blockchain transaction hash, Didit performs transaction screening and returns transaction summary enrichment when available.","uniqueKey":"include_crypto_screening.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Per-transaction override for crypto blockchain analytics screening. When `true`, crypto screening is performed regardless of the application default. When `false`, crypto screening is skipped even if enabled in the application settings. When omitted or `null`, the application-level default configured in the Console is used. Crypto screening requires `transaction_details.direction`, `currency_kind: \"crypto\"`, a chain/currency, and the wallet address selected by the direction: inbound pre-transfer screening uses `counterparty.payment_method.account_id`, inbound transaction-hash screening uses `subject.payment_method.account_id`, and outbound screening uses `counterparty.payment_method.account_id`. When `transaction_details.payment_reference_id` contains a blockchain transaction hash, Didit performs transaction screening and returns transaction summary enrichment when available.","uniqueKey":"include_crypto_screening.oneOf.1","typeLabel":"null"}],"uniqueKey":"include_crypto_screening","typeLabel":"boolean | null"}},"required":["transaction_id","transaction_category","transaction_details","subject"],"uniqueKey":"","typeLabel":"object"},"examples":{"Minimal fiat withdrawal":{"title":"Minimal fiat withdrawal","value":{"transaction_id":"your-txn-2026-05-17-001","transaction_category":"finance","transaction_details":{"direction":"outbound","amount":1500,"currency":"EUR","action_type":"withdrawal"},"subject":{"entity_type":"individual","vendor_data":"user-12345","full_name":"Maria Garcia"}}},"Crypto outbound with screening":{"title":"Crypto outbound with screening","value":{"transaction_id":"your-txn-2026-05-17-002","transaction_category":"finance","include_crypto_screening":true,"transaction_details":{"direction":"outbound","amount":0.5,"currency":"BTC","currency_kind":"crypto","amount_in_default_currency":32500,"default_currency":"USD","action_type":"withdrawal"},"subject":{"entity_type":"individual","vendor_data":"user-12345","full_name":"Maria Garcia","payment_method":{"method_type":"crypto_wallet","account_id":"bc1qexampleexchangewalletaddressxyz","issuing_country":"ESP"}},"counterparty":{"entity_type":"individual","payment_method":{"method_type":"unhosted_wallet","account_id":"bc1qexampleexternalwalletaddressabc"}}}},"Travel Rule transfer":{"title":"Travel Rule transfer","value":{"transaction_id":"your-txn-2026-05-17-003","transaction_category":"travel_rule","transaction_details":{"direction":"outbound","amount":25000,"currency":"USDT","currency_kind":"crypto","action_type":"transfer"},"subject":{"entity_type":"individual","vendor_data":"user-12345","full_name":"Maria Garcia","date_of_birth":"1992-03-14","address":{"country":"ESP","town":"Madrid","street":"Calle Mayor 1","post_code":"28013"}},"counterparty":{"entity_type":"individual","full_name":"John Beneficiary","institution_details":{"name":"Beneficiary VASP, Inc.","code":"BVASP-US"}},"travel_rule_details":{"status":"AWAITING_COUNTERPARTY","protocol":"IVMS101","required":true,"originator_data":{"name":"Maria Garcia"},"beneficiary_data":{"name":"John Beneficiary"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"c591632c-57ef-416f-90c9-039c091475c2":{"description":"Transaction submitted and monitored. The body is the full transaction detail (same shape as `GET /v3/transactions/{transaction_id}/`), reflecting any rule outcomes already applied.","content":{"application/json":{"schema":{"type":"object","description":"Full monitoring record for one transaction, as returned by `GET /v3/transactions/{transaction_id}/` and `POST /v3/transactions/`.","properties":{"uuid":{"type":"string","format":"uuid","description":"Didit-stable transaction identifier. Use as `{transaction_id}` for follow-up calls.","uniqueKey":"uuid","typeLabel":"string\u003cuuid>"},"environment":{"type":"string","enum":["live","sandbox"],"description":"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\".","uniqueKey":"environment","typeLabel":"enum\u003cstring>"},"transaction_number":{"type":"integer","description":"Application-scoped sequential transaction number shown in Console (e.g. `4123`).","uniqueKey":"transaction_number","typeLabel":"integer"},"txn_id":{"type":"string","description":"The `transaction_id` you supplied at create time (max 128 chars). Unique per application.","uniqueKey":"txn_id","typeLabel":"string"},"txn_date":{"type":"string","format":"date-time","description":"When the transaction occurred (from `transaction_at`; defaults to submission time).","uniqueKey":"txn_date","typeLabel":"string\u003cdate-time>"},"zone_id":{"oneOf":[{"type":"string","description":"IANA time zone identifier provided at create time.","uniqueKey":"zone_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA time zone identifier provided at create time.","uniqueKey":"zone_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"zone_id","typeLabel":"string | null"},"transaction_type":{"type":"string","description":"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.","uniqueKey":"transaction_type","typeLabel":"string"},"action_type":{"type":"string","description":"Sub-type within the category (e.g. `deposit`, `withdrawal`, `transfer`). Defaults to the category when not supplied.","uniqueKey":"action_type","typeLabel":"string"},"direction":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the subject. Stored uppercase regardless of the casing submitted (`in`/`out`/`inbound`/`outbound` are accepted on input).","uniqueKey":"direction","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["APPROVED","IN_REVIEW","DECLINED","AWAITING_USER"],"description":"Current monitoring verdict. Transactions are created `APPROVED`; rules may flip them to `IN_REVIEW`/`DECLINED` synchronously.","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["LIVE","IMPORTED"],"description":"How the record originated: `LIVE` for transactions submitted through the API or SDK, `IMPORTED` for transactions loaded through the console import.","uniqueKey":"source","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"Transaction amount as a decimal string with trailing zeros stripped (e.g. `\"1500\"`, `\"0.5\"`, `\"0.123456789012345678\"`). Up to 18 decimal places.","uniqueKey":"amount","typeLabel":"string"},"currency":{"type":"string","description":"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`.","uniqueKey":"currency","typeLabel":"string"},"currency_type":{"oneOf":[{"type":"string","description":"`fiat` or `crypto`, as submitted in `currency_kind`.","uniqueKey":"currency_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"`fiat` or `crypto`, as submitted in `currency_kind`.","uniqueKey":"currency_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"currency_type","typeLabel":"string | null"},"amount_in_default_currency":{"oneOf":[{"type":"string","description":"Pre-converted amount you supplied, as a decimal string with trailing zeros stripped.","uniqueKey":"amount_in_default_currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pre-converted amount you supplied, as a decimal string with trailing zeros stripped.","uniqueKey":"amount_in_default_currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"amount_in_default_currency","typeLabel":"string | null"},"default_currency_code":{"oneOf":[{"type":"string","uniqueKey":"default_currency_code.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"default_currency_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"default_currency_code","typeLabel":"string | null"},"preferred_currency_amount":{"oneOf":[{"type":"string","description":"`amount` converted to the application's preferred currency, when available.","uniqueKey":"preferred_currency_amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"`amount` converted to the application's preferred currency, when available.","uniqueKey":"preferred_currency_amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"preferred_currency_amount","typeLabel":"string | null"},"preferred_currency_code":{"oneOf":[{"type":"string","uniqueKey":"preferred_currency_code.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"preferred_currency_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"preferred_currency_code","typeLabel":"string | null"},"payment_details":{"oneOf":[{"type":"string","description":"Free-text payment reference or memo from the submission.","uniqueKey":"payment_details.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text payment reference or memo from the submission.","uniqueKey":"payment_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_details","typeLabel":"string | null"},"payment_txn_id":{"oneOf":[{"type":"string","description":"External payment system reference (e.g. blockchain transaction hash) from `payment_reference_id`.","uniqueKey":"payment_txn_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External payment system reference (e.g. blockchain transaction hash) from `payment_reference_id`.","uniqueKey":"payment_txn_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_txn_id","typeLabel":"string | null"},"score":{"type":"integer","description":"Risk score accumulated by rules (typically 0–100). Higher = riskier.","uniqueKey":"score","typeLabel":"integer"},"severity":{"oneOf":[{"type":"string","enum":["UNKNOWN","LOW","MEDIUM","HIGH","CRITICAL"],"description":"Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`, `CRITICAL`). `null` until something sets it.","uniqueKey":"severity.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["UNKNOWN","LOW","MEDIUM","HIGH","CRITICAL"],"description":"Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`, `CRITICAL`). `null` until something sets it.","uniqueKey":"severity.oneOf.1","typeLabel":"null"}],"uniqueKey":"severity","typeLabel":"enum\u003cstring> | null"},"decision_reason_code":{"oneOf":[{"type":"string","description":"Machine-readable reason for the current `status`.","uniqueKey":"decision_reason_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Machine-readable reason for the current `status`.","uniqueKey":"decision_reason_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_reason_code","typeLabel":"string | null"},"decision_reason_label":{"oneOf":[{"type":"string","description":"Human-readable label for `decision_reason_code`.","uniqueKey":"decision_reason_label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable label for `decision_reason_code`.","uniqueKey":"decision_reason_label.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_reason_label","typeLabel":"string | null"},"vendor_data":{"oneOf":[{"type":"string","description":"Convenience copy of the applicant's `vendor_data`.","uniqueKey":"vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Convenience copy of the applicant's `vendor_data`.","uniqueKey":"vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"vendor_data","typeLabel":"string | null"},"metadata":{"type":"object","description":"Snapshot of the `subject` and `counterparty` payloads as submitted at create time.","uniqueKey":"metadata","typeLabel":"object"},"props":{"type":"object","description":"The `custom_properties` you supplied at create time. Each key is addressable in rule conditions as `custom_values.\u003ckey>`.","uniqueKey":"props","typeLabel":"object"},"tags":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"tags.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"name":{"type":"string","uniqueKey":"tags.items.[INDEX].name","typeLabel":"string"},"color":{"type":"string","uniqueKey":"tags.items.[INDEX].color","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"tags.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"tags.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"tags.items.[INDEX].description","typeLabel":"string | null"},"source":{"type":"string","enum":["didit","custom"],"description":"Whether the tag is a Didit preset or a custom tag.","uniqueKey":"tags.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"tags.items.[INDEX]","typeLabel":"object"},"description":"Tags attached to the transaction (manually or by rules).","uniqueKey":"tags","typeLabel":"object[]"},"parties":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"parties.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"role":{"type":"string","enum":["APPLICANT","REMITTER","BENEFICIARY","COUNTERPARTY"],"description":"Party role. The create endpoint assigns `APPLICANT` (the subject) and `COUNTERPARTY`.","uniqueKey":"parties.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"entity_type":{"type":"string","enum":["individual","company","external","unhostedWallet"],"uniqueKey":"parties.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"kind":{"type":"string","enum":["USER","BUSINESS","EXTERNAL"],"description":"`USER`/`BUSINESS` parties link back to a Didit-owned entity via `vendor_data`. `EXTERNAL` parties have no Didit entity behind them.","uniqueKey":"parties.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"vendor_data":{"oneOf":[{"type":"string","description":"Your internal user/business identifier.","uniqueKey":"parties.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your internal user/business identifier.","uniqueKey":"parties.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].vendor_data","typeLabel":"string | null"},"full_name":{"oneOf":[{"type":"string","uniqueKey":"parties.items.[INDEX].full_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"parties.items.[INDEX].full_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].full_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","uniqueKey":"parties.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"parties.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","uniqueKey":"parties.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"parties.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].last_name","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","description":"Country code from the submitted `address.country` (typically ISO 3166-1 alpha-3).","uniqueKey":"parties.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country code from the submitted `address.country` (typically ISO 3166-1 alpha-3).","uniqueKey":"parties.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].country_code","typeLabel":"string | null"},"dob":{"oneOf":[{"type":"string","format":"date","description":"Date of birth from the submitted `date_of_birth`.","uniqueKey":"parties.items.[INDEX].dob.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Date of birth from the submitted `date_of_birth`.","uniqueKey":"parties.items.[INDEX].dob.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].dob","typeLabel":"string\u003cdate> | null"},"address":{"type":"object","description":"Address object as submitted. `{}` when omitted.","uniqueKey":"parties.items.[INDEX].address","typeLabel":"object"},"institution_info":{"type":"object","description":"Institution details as submitted. `{}` when omitted.","uniqueKey":"parties.items.[INDEX].institution_info","typeLabel":"object"},"device":{"type":"object","description":"Normalized device context, including server-side IP enrichment under network_context (geolocation, VPN/data-center flags) when an IP was provided.","properties":{"fingerprint":{"type":"string","description":"Unique device fingerprint.","uniqueKey":"parties.items.[INDEX].device.fingerprint","typeLabel":"string"},"persistent_device_id":{"type":"string","description":"Stable cross-session device identifier (v2 fingerprint schema).","uniqueKey":"parties.items.[INDEX].device.persistent_device_id","typeLabel":"string"},"user_agent":{"type":"string","description":"Browser or app user agent string.","uniqueKey":"parties.items.[INDEX].device.user_agent","typeLabel":"string"},"browser_family":{"type":"string","description":"Browser family (e.g. Chrome, Firefox, Safari).","uniqueKey":"parties.items.[INDEX].device.browser_family","typeLabel":"string"},"browser_version":{"type":"string","description":"Browser version string.","uniqueKey":"parties.items.[INDEX].device.browser_version","typeLabel":"string"},"platform":{"type":"string","description":"Platform identifier (web, ios, android, macos, windows, linux).","uniqueKey":"parties.items.[INDEX].device.platform","typeLabel":"string"},"os_family":{"type":"string","description":"Operating system family (e.g. iOS, Android, Windows).","uniqueKey":"parties.items.[INDEX].device.os_family","typeLabel":"string"},"os_version":{"type":"string","description":"Operating system version string.","uniqueKey":"parties.items.[INDEX].device.os_version","typeLabel":"string"},"accept_language":{"type":"string","description":"Accept-Language header value.","uniqueKey":"parties.items.[INDEX].device.accept_language","typeLabel":"string"},"session_id":{"type":"string","description":"Session identifier (stored in metadata).","uniqueKey":"parties.items.[INDEX].device.session_id","typeLabel":"string"},"session_age_ms":{"type":"number","description":"Session age in milliseconds.","uniqueKey":"parties.items.[INDEX].device.session_age_ms","typeLabel":"number"},"network_context":{"type":"object","description":"Network context with IP address and geo-location.","properties":{"ip_address":{"type":"string","description":"Client IP address.","uniqueKey":"parties.items.[INDEX].device.network_context.ip_address","typeLabel":"string"},"ip_country_code":{"type":"string","description":"Geo-resolved country of the IP (ISO 3166-1 alpha-3).","uniqueKey":"parties.items.[INDEX].device.network_context.ip_country_code","typeLabel":"string"},"latitude":{"type":"number","description":"Geographic latitude of the IP.","uniqueKey":"parties.items.[INDEX].device.network_context.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Geographic longitude of the IP.","uniqueKey":"parties.items.[INDEX].device.network_context.longitude","typeLabel":"number"}},"uniqueKey":"parties.items.[INDEX].device.network_context","typeLabel":"object"}},"uniqueKey":"parties.items.[INDEX].device","typeLabel":"object"},"external_party_snapshot":{"oneOf":[{"type":"object","description":"Frozen copy of the party data for `EXTERNAL` parties. `null` while the party is linked to a Didit user or business.","uniqueKey":"parties.items.[INDEX].external_party_snapshot.oneOf.0","typeLabel":"object"},{"type":"null","description":"Frozen copy of the party data for `EXTERNAL` parties. `null` while the party is linked to a Didit user or business.","uniqueKey":"parties.items.[INDEX].external_party_snapshot.oneOf.1","typeLabel":"null"}],"uniqueKey":"parties.items.[INDEX].external_party_snapshot","typeLabel":"object | null"}},"uniqueKey":"parties.items.[INDEX]","typeLabel":"object"},"description":"Transaction parties (applicant, counterparty).","uniqueKey":"parties","typeLabel":"object[]"},"payment_methods":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"payment_methods.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"payment_method_type":{"type":"string","enum":["bank_card","bank_account","e_wallet","crypto_wallet","unhosted_wallet","other"],"uniqueKey":"payment_methods.items.[INDEX].payment_method_type","typeLabel":"enum\u003cstring>"},"label":{"oneOf":[{"type":"string","uniqueKey":"payment_methods.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"payment_methods.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].label","typeLabel":"string | null"},"fingerprint":{"oneOf":[{"type":"string","description":"SHA-256 over `type:account_id:issuing_country` — stable identifier to correlate reuse of the same instrument.","uniqueKey":"payment_methods.items.[INDEX].fingerprint.oneOf.0","typeLabel":"string"},{"type":"null","description":"SHA-256 over `type:account_id:issuing_country` — stable identifier to correlate reuse of the same instrument.","uniqueKey":"payment_methods.items.[INDEX].fingerprint.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].fingerprint","typeLabel":"string | null"},"account_id":{"oneOf":[{"type":"string","description":"Account identifier (IBAN, wallet address, card token, …).","uniqueKey":"payment_methods.items.[INDEX].account_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Account identifier (IBAN, wallet address, card token, …).","uniqueKey":"payment_methods.items.[INDEX].account_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].account_id","typeLabel":"string | null"},"issuing_country":{"oneOf":[{"type":"string","uniqueKey":"payment_methods.items.[INDEX].issuing_country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"payment_methods.items.[INDEX].issuing_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].issuing_country","typeLabel":"string | null"},"owner_kind":{"type":"string","enum":["USER","BUSINESS","EXTERNAL"],"uniqueKey":"payment_methods.items.[INDEX].owner_kind","typeLabel":"enum\u003cstring>"},"vendor_data":{"oneOf":[{"type":"string","description":"Your identifier for the owning user/business.","uniqueKey":"payment_methods.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your identifier for the owning user/business.","uniqueKey":"payment_methods.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].vendor_data","typeLabel":"string | null"},"owner_name":{"oneOf":[{"type":"string","uniqueKey":"payment_methods.items.[INDEX].owner_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"payment_methods.items.[INDEX].owner_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].owner_name","typeLabel":"string | null"},"institution_info":{"type":"object","uniqueKey":"payment_methods.items.[INDEX].institution_info","typeLabel":"object"},"details":{"type":"object","description":"Raw `payment_method` object as submitted.","uniqueKey":"payment_methods.items.[INDEX].details","typeLabel":"object"},"external_owner_snapshot":{"oneOf":[{"type":"object","uniqueKey":"payment_methods.items.[INDEX].external_owner_snapshot.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"payment_methods.items.[INDEX].external_owner_snapshot.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_methods.items.[INDEX].external_owner_snapshot","typeLabel":"object | null"},"role":{"type":"string","enum":["SOURCE","DESTINATION","FUNDING","BENEFICIARY"],"description":"How this method was used in the transaction. The create endpoint assigns `SOURCE`/`DESTINATION` from the direction (outbound: subject = SOURCE; inbound: subject = DESTINATION).","uniqueKey":"payment_methods.items.[INDEX].role","typeLabel":"enum\u003cstring>"}},"uniqueKey":"payment_methods.items.[INDEX]","typeLabel":"object"},"description":"Payment methods linked to the transaction.","uniqueKey":"payment_methods","typeLabel":"object[]"},"documents":{"type":"array","description":"Files attached to the transaction from the console. `[]` when none.","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"documents.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"label":{"oneOf":[{"type":"string","uniqueKey":"documents.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"documents.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].label","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","uniqueKey":"documents.items.[INDEX].note.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"documents.items.[INDEX].note.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].note","typeLabel":"string | null"},"uploaded_by":{"oneOf":[{"type":"string","uniqueKey":"documents.items.[INDEX].uploaded_by.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"documents.items.[INDEX].uploaded_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].uploaded_by","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"documents.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"files":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived signed download URL; fetch it when needed rather than storing it.","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Short-lived signed download URL; fetch it when needed rather than storing it.","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_url","typeLabel":"string\u003curi> | null"},"original_filename":{"oneOf":[{"type":"string","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].original_filename.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].original_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].files.items.[INDEX].original_filename","typeLabel":"string | null"},"file_size":{"oneOf":[{"type":"integer","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_size.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].files.items.[INDEX].file_size","typeLabel":"integer | null"}},"uniqueKey":"documents.items.[INDEX].files.items.[INDEX]","typeLabel":"object"},"uniqueKey":"documents.items.[INDEX].files","typeLabel":"object[]"}},"uniqueKey":"documents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"documents","typeLabel":"object[]"},"activities":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"activities.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"activity_type":{"type":"string","description":"E.g. `TRANSACTION_CREATED`, `TRANSACTION_NOTE_ADDED`, `TRANSACTION_STATUS_CHANGED`.","uniqueKey":"activities.items.[INDEX].activity_type","typeLabel":"string"},"source":{"type":"string","uniqueKey":"activities.items.[INDEX].source","typeLabel":"string"},"status":{"oneOf":[{"type":"string","uniqueKey":"activities.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"activities.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"activities.items.[INDEX].status","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"activities.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"activities.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"activities.items.[INDEX].title","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","uniqueKey":"activities.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"activities.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"activities.items.[INDEX].description","typeLabel":"string | null"},"metadata":{"type":"object","uniqueKey":"activities.items.[INDEX].metadata","typeLabel":"object"},"occurred_at":{"type":"string","format":"date-time","uniqueKey":"activities.items.[INDEX].occurred_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"activities.items.[INDEX]","typeLabel":"object"},"description":"Activity log entries (creation, notes, manual reviews, status changes).","uniqueKey":"activities","typeLabel":"object[]"},"alerts":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"alerts.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"title":{"type":"string","uniqueKey":"alerts.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"alerts.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"alerts.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"alerts.items.[INDEX].description","typeLabel":"string | null"},"severity":{"type":"string","enum":["UNKNOWN","LOW","MEDIUM","HIGH","CRITICAL"],"uniqueKey":"alerts.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["OPEN","INVESTIGATING","AWAITING_USER","PENDING_SAR","SAR_FILED","RESOLVED","DISMISSED"],"uniqueKey":"alerts.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["RULE","PROVIDER","MANUAL"],"uniqueKey":"alerts.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"metadata":{"type":"object","uniqueKey":"alerts.items.[INDEX].metadata","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","uniqueKey":"alerts.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"due_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"alerts.items.[INDEX].due_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"alerts.items.[INDEX].due_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"alerts.items.[INDEX].due_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"alerts.items.[INDEX]","typeLabel":"object"},"description":"Always empty today. An open alert is a transaction with status `IN_REVIEW` or `AWAITING_USER`.","uniqueKey":"alerts","typeLabel":"object[]"},"rule_runs":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"rule_runs.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"rule":{"type":"string","format":"uuid","description":"UUID of the rule that ran.","uniqueKey":"rule_runs.items.[INDEX].rule","typeLabel":"string\u003cuuid>"},"rule_title":{"type":"string","uniqueKey":"rule_runs.items.[INDEX].rule_title","typeLabel":"string"},"rule_description":{"oneOf":[{"type":"string","uniqueKey":"rule_runs.items.[INDEX].rule_description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"rule_runs.items.[INDEX].rule_description.oneOf.1","typeLabel":"null"}],"uniqueKey":"rule_runs.items.[INDEX].rule_description","typeLabel":"string | null"},"rule_category":{"type":"string","uniqueKey":"rule_runs.items.[INDEX].rule_category","typeLabel":"string"},"matched":{"type":"boolean","description":"Whether the rule's conditions matched this transaction. A run is recorded only for matched rules, so live evaluations always carry `true`.","uniqueKey":"rule_runs.items.[INDEX].matched","typeLabel":"boolean"},"is_test":{"type":"boolean","description":"True when the rule ran in TEST mode (no effect on status/score).","uniqueKey":"rule_runs.items.[INDEX].is_test","typeLabel":"boolean"},"mode":{"type":"string","enum":["ACTIVE","DISABLED","TEST"],"uniqueKey":"rule_runs.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"severity":{"oneOf":[{"type":"string","uniqueKey":"rule_runs.items.[INDEX].severity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"rule_runs.items.[INDEX].severity.oneOf.1","typeLabel":"null"}],"uniqueKey":"rule_runs.items.[INDEX].severity","typeLabel":"string | null"},"score_delta":{"type":"integer","description":"Score added by this rule's `add_score` actions.","uniqueKey":"rule_runs.items.[INDEX].score_delta","typeLabel":"integer"},"status_target":{"oneOf":[{"type":"string","description":"Status set by a `change_status` action, if any.","uniqueKey":"rule_runs.items.[INDEX].status_target.oneOf.0","typeLabel":"string"},{"type":"null","description":"Status set by a `change_status` action, if any.","uniqueKey":"rule_runs.items.[INDEX].status_target.oneOf.1","typeLabel":"null"}],"uniqueKey":"rule_runs.items.[INDEX].status_target","typeLabel":"string | null"},"action_summary":{"oneOf":[{"type":"string","description":"Summary of the actions the rule executed, joined with `; ` (e.g. `score +30; change_status:IN_REVIEW; add_tag:high_risk_country`). Parts: `score +N`, `change_status:\u003cSTATUS>`, `add_tag:\u003cname>`, `add_note`, `add_to_list`, `open_case`. `null` when the rule executed no action.","uniqueKey":"rule_runs.items.[INDEX].action_summary.oneOf.0","typeLabel":"string"},{"type":"null","description":"Summary of the actions the rule executed, joined with `; ` (e.g. `score +30; change_status:IN_REVIEW; add_tag:high_risk_country`). Parts: `score +N`, `change_status:\u003cSTATUS>`, `add_tag:\u003cname>`, `add_note`, `add_to_list`, `open_case`. `null` when the rule executed no action.","uniqueKey":"rule_runs.items.[INDEX].action_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"rule_runs.items.[INDEX].action_summary","typeLabel":"string | null"},"metadata":{"type":"object","description":"Evaluation detail: `scope_match`, `conditions[]` and `aggregations[]`. Each condition entry carries `field`, `operator`, `expected_value`, the `current_value` read from the transaction, `matched`, `group_index` and `group_logic`. Each aggregation entry (velocity / count / sum) carries `metric`, `field`, `operator`, `expected_value`, the `computed_value` the aggregate evaluated to, `window`, `filters`, `matched` and `sample_references`; deferred async aggregations have `computed_value: null` and `deferred: true`. A nested condition group is one `conditions[]` entry with `operator` `any_of` or `all_of`, `field` null, and its members' results under its own `conditions`.","uniqueKey":"rule_runs.items.[INDEX].metadata","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","uniqueKey":"rule_runs.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"rule_runs.items.[INDEX]","typeLabel":"object"},"description":"Per-rule execution results — which rule fired, with what score impact.","uniqueKey":"rule_runs","typeLabel":"object[]"},"provider_results":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"provider_results.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"provider":{"type":"string","uniqueKey":"provider_results.items.[INDEX].provider","typeLabel":"string"},"result_type":{"type":"string","enum":["FIAT_MONITORING","WALLET_SCREENING","TRANSACTION_SCREENING","TRAVEL_RULE","NETWORK_GRAPH","CUSTOM"],"uniqueKey":"provider_results.items.[INDEX].result_type","typeLabel":"enum\u003cstring>"},"status":{"type":"string","uniqueKey":"provider_results.items.[INDEX].status","typeLabel":"string"},"severity":{"oneOf":[{"type":"string","uniqueKey":"provider_results.items.[INDEX].severity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"provider_results.items.[INDEX].severity.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider_results.items.[INDEX].severity","typeLabel":"string | null"},"score":{"type":"integer","uniqueKey":"provider_results.items.[INDEX].score","typeLabel":"integer"},"summary":{"oneOf":[{"type":"string","uniqueKey":"provider_results.items.[INDEX].summary.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"provider_results.items.[INDEX].summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider_results.items.[INDEX].summary","typeLabel":"string | null"},"payload":{"type":"object","description":"Raw provider response payload.","uniqueKey":"provider_results.items.[INDEX].payload","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","uniqueKey":"provider_results.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"provider_results.items.[INDEX]","typeLabel":"object"},"description":"Raw provider payloads (AML screening, blockchain analytics, etc.).","uniqueKey":"provider_results","typeLabel":"object[]"},"travel_rule":{"oneOf":[{"type":"object","description":"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. On an inbound transfer, the counterparty's `originator_data` and `beneficiary_data` stay masked (`data_masked: true`) until wallet ownership is confirmed.","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"travel_rule.oneOf.0.uuid","typeLabel":"string\u003cuuid>"},"status":{"type":"string","uniqueKey":"travel_rule.oneOf.0.status","typeLabel":"string"},"protocol":{"oneOf":[{"type":"string","uniqueKey":"travel_rule.oneOf.0.protocol.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.protocol.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.protocol","typeLabel":"string | null"},"required":{"type":"boolean","uniqueKey":"travel_rule.oneOf.0.required","typeLabel":"boolean"},"obligations_count":{"type":"integer","uniqueKey":"travel_rule.oneOf.0.obligations_count","typeLabel":"integer"},"originator_data":{"type":"object","description":"Originator party. For an inbound transfer the counterparty's values are masked until ownership is confirmed.","uniqueKey":"travel_rule.oneOf.0.originator_data","typeLabel":"object"},"beneficiary_data":{"type":"object","description":"Beneficiary party. For an inbound transfer the counterparty's values are masked until ownership is confirmed.","uniqueKey":"travel_rule.oneOf.0.beneficiary_data","typeLabel":"object"},"name_match":{"oneOf":[{"type":"object","description":"The name comparison that decided the transfer (score and strictness). Null until one ran. The compared names are masked together with the parties.","uniqueKey":"travel_rule.oneOf.0.name_match.oneOf.0","typeLabel":"object"},{"type":"null","description":"The name comparison that decided the transfer (score and strictness). Null until one ran. The compared names are masked together with the parties.","uniqueKey":"travel_rule.oneOf.0.name_match.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.name_match","typeLabel":"object | null"},"data_match":{"oneOf":[{"type":"object","description":"Field-by-field comparison of the transfer's party data with what the other side knows about the wallet holder. It names fields and results, never values, so it stays readable while the counterparty's data is masked. Null until a comparison ran.","properties":{"matched":{"type":"boolean","description":"True when no compared field differs.","uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.matched","typeLabel":"boolean"},"mismatched_fields":{"type":"array","items":{"type":"string","enum":["name","date_of_birth","address","account"],"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.mismatched_fields.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The fields that differ.","uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.mismatched_fields","typeLabel":"enum\u003cstring>[]"},"fields":{"type":"object","description":"One entry per field compared for the party's entity type (`name`, `date_of_birth`, `address`, `account`; a company has no `date_of_birth`).","additionalProperties":{"type":"object","properties":{"result":{"type":"string","enum":["matched","mismatched","not_compared"],"description":"`not_compared` when the rule is `NONE` or either side has no value for the field.","uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.fields.additionalProperties.result","typeLabel":"enum\u003cstring>"},"strictness":{"type":"string","enum":["NONE","STRICT","CONTAINS","DEFAULT","FUZZY"],"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.fields.additionalProperties.strictness","typeLabel":"enum\u003cstring>"}},"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.fields.additionalProperties","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0.fields","typeLabel":"object"}},"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.0","typeLabel":"object"},{"type":"null","description":"Field-by-field comparison of the transfer's party data with what the other side knows about the wallet holder. It names fields and results, never values, so it stays readable while the counterparty's data is masked. Null until a comparison ran.","properties":{"matched":{"type":"boolean","description":"True when no compared field differs."},"mismatched_fields":{"type":"array","items":{"type":"string","enum":["name","date_of_birth","address","account"]},"description":"The fields that differ."},"fields":{"type":"object","description":"One entry per field compared for the party's entity type (`name`, `date_of_birth`, `address`, `account`; a company has no `date_of_birth`).","additionalProperties":{"type":"object","properties":{"result":{"type":"string","enum":["matched","mismatched","not_compared"],"description":"`not_compared` when the rule is `NONE` or either side has no value for the field."},"strictness":{"type":"string","enum":["NONE","STRICT","CONTAINS","DEFAULT","FUZZY"]}}}}},"uniqueKey":"travel_rule.oneOf.0.data_match.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.data_match","typeLabel":"object | null"},"mismatched_fields":{"type":"array","items":{"type":"string","uniqueKey":"travel_rule.oneOf.0.mismatched_fields.items.[INDEX]","typeLabel":"string"},"description":"Shortcut for `data_match.mismatched_fields`. Empty when nothing differs.","uniqueKey":"travel_rule.oneOf.0.mismatched_fields","typeLabel":"string[]"},"data_unmasked":{"oneOf":[{"type":"object","description":"Audit record of the moment the counterparty's data was unmasked. Null while the data is still masked, and for outbound transfers.","properties":{"at":{"type":"string","format":"date-time","uniqueKey":"travel_rule.oneOf.0.data_unmasked.oneOf.0.at","typeLabel":"string\u003cdate-time>"},"reason":{"type":"string","enum":["ownership_confirmed","wallet_proof","address_book_match","own_verified_wallet","inquiry_approved","known_payment_method","travel_address"],"description":"What confirmed ownership: ownership_confirmed (your confirmation through the console or the API), wallet_proof (a wallet proof in the widget, or an INTERNAL inbound transfer, set when it is created), address_book_match (a verified address-book wallet), own_verified_wallet (your user's own verified wallet), inquiry_approved (your approval of an inbound TRP inquiry or a GTR or Sygna message), known_payment_method (a wallet your user already paid with) or travel_address (the per-wallet travel address named the wallet).","uniqueKey":"travel_rule.oneOf.0.data_unmasked.oneOf.0.reason","typeLabel":"enum\u003cstring>"},"actor":{"type":"string","description":"Who confirmed it: the console user's email or the API key's label. Blank for an automatic decision.","uniqueKey":"travel_rule.oneOf.0.data_unmasked.oneOf.0.actor","typeLabel":"string"}},"uniqueKey":"travel_rule.oneOf.0.data_unmasked.oneOf.0","typeLabel":"object"},{"type":"null","description":"Audit record of the moment the counterparty's data was unmasked. Null while the data is still masked, and for outbound transfers.","properties":{"at":{"type":"string","format":"date-time"},"reason":{"type":"string","enum":["ownership_confirmed","wallet_proof","address_book_match","own_verified_wallet","inquiry_approved","known_payment_method","travel_address"],"description":"What confirmed ownership: ownership_confirmed (your confirmation through the console or the API), wallet_proof (a wallet proof in the widget, or an INTERNAL inbound transfer, set when it is created), address_book_match (a verified address-book wallet), own_verified_wallet (your user's own verified wallet), inquiry_approved (your approval of an inbound TRP inquiry or a GTR or Sygna message), known_payment_method (a wallet your user already paid with) or travel_address (the per-wallet travel address named the wallet)."},"actor":{"type":"string","description":"Who confirmed it: the console user's email or the API key's label. Blank for an automatic decision."}},"uniqueKey":"travel_rule.oneOf.0.data_unmasked.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.data_unmasked","typeLabel":"object | null"},"data_masked":{"type":"boolean","description":"True while the counterparty's personal data is masked in this response.","uniqueKey":"travel_rule.oneOf.0.data_masked","typeLabel":"boolean"},"metadata":{"type":"object","uniqueKey":"travel_rule.oneOf.0.metadata","typeLabel":"object"},"direction":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Which side of the exchange this transfer is.","uniqueKey":"travel_rule.oneOf.0.direction","typeLabel":"enum\u003cstring>"},"rail":{"oneOf":[{"type":"string","description":"The rail the transfer went over: `INTERNAL`, `TRP`, `GTR`, `TRUST`, `VERIFYVASP`, `SYGNA` or `EMAIL` (`TEST_VASP` on a sandbox application, when the Didit Test VASP answered), or `null` until a rail is chosen.","uniqueKey":"travel_rule.oneOf.0.rail.oneOf.0","typeLabel":"string"},{"type":"null","description":"The rail the transfer went over: `INTERNAL`, `TRP`, `GTR`, `TRUST`, `VERIFYVASP`, `SYGNA` or `EMAIL` (`TEST_VASP` on a sandbox application, when the Didit Test VASP answered), or `null` until a rail is chosen.","uniqueKey":"travel_rule.oneOf.0.rail.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.rail","typeLabel":"string | null"},"counterparty_vasp":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.name","typeLabel":"string"},"lei":{"type":"string","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.lei","typeLabel":"string"},"dd_score":{"type":"integer","description":"Due-diligence score from 0 to 100, where higher is better. Same scale as in the VASP directory.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score","typeLabel":"integer"},"dd_score_breakdown":{"type":"object","description":"Per-component contributions to dd_score, one object per component as in the VASP directory (jurisdiction, verification, protocol, lei, history, essentials, responsiveness), each {points, max, reason, detail}. {} until the counterparty has been assessed.","additionalProperties":{"type":"object","properties":{"points":{"type":"number","description":"Points awarded for this component.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown.additionalProperties.points","typeLabel":"number"},"max":{"type":"integer","description":"Maximum points this component can award.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown.additionalProperties.max","typeLabel":"integer"},"reason":{"type":"string","description":"Machine-readable code of the component's verdict.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown.additionalProperties.reason","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable reason for the awarded points.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown.additionalProperties.detail","typeLabel":"string"}},"uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown.additionalProperties","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_score_breakdown","typeLabel":"object"},"dd_assessed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the due-diligence assessment last ran. Null until the counterparty has been assessed.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_assessed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the due-diligence assessment last ran. Null until the counterparty has been assessed.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_assessed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0.dd_assessed_at","typeLabel":"string\u003cdate-time> | null"}},"description":"The counterparty's directory entry, or `null` when the transfer links none.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"type":"string"},"lei":{"type":"string"},"dd_score":{"type":"integer","description":"Due-diligence score from 0 to 100, where higher is better. Same scale as in the VASP directory."},"dd_score_breakdown":{"type":"object","description":"Per-component contributions to dd_score, one object per component as in the VASP directory (jurisdiction, verification, protocol, lei, history, essentials, responsiveness), each {points, max, reason, detail}. {} until the counterparty has been assessed.","additionalProperties":{"type":"object","properties":{"points":{"type":"number","description":"Points awarded for this component."},"max":{"type":"integer","description":"Maximum points this component can award."},"reason":{"type":"string","description":"Machine-readable code of the component's verdict."},"detail":{"type":"string","description":"Human-readable reason for the awarded points."}}}},"dd_assessed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the due-diligence assessment last ran. Null until the counterparty has been assessed."},{"type":"null","format":"date-time","description":"When the due-diligence assessment last ran. Null until the counterparty has been assessed."}]}},"description":"The counterparty's directory entry, or `null` when the transfer links none.","uniqueKey":"travel_rule.oneOf.0.counterparty_vasp.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.counterparty_vasp","typeLabel":"object | null"},"delivery":{"oneOf":[{"type":"object","description":"The newest message the transfer owes another party. `null` when it has owed none, for example below `threshold_amount` or for a declared self-hosted wallet.","required":["kind","status","rail","attempts","last_error","next_attempt_at","delivered_at","updated_at","failure","route"],"properties":{"kind":{"type":"string","enum":["SEND","ANSWER","TXID","CANCEL","POLL"],"description":"What the message carries. `SEND`: the transfer's first message to the counterparty (outbound; the rail is chosen when it is sent). `ANSWER`: your accept or decline, owed to the network that asked (inbound). `TXID`: the on-chain transaction hash, after you finish the transfer. `CANCEL`: the cancellation, after you cancel it. `POLL`: a status query to a network that offers one, repeated every 5 minutes while the transfer waits on the counterparty.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["QUEUED","SENDING","RETRYING","DELIVERED","FAILED"],"description":"`QUEUED`: waiting to be sent. `SENDING`: an attempt is running. `RETRYING`: an attempt failed and the next one runs at `next_attempt_at`. `DELIVERED`: the other side took the message. `FAILED`: the other side refused it, or the last attempt failed.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.status","typeLabel":"enum\u003cstring>"},"rail":{"type":"string","enum":["INTERNAL","TRP","GTR","TRUST","VERIFYVASP","SYGNA","EMAIL","TEST_VASP",""],"description":"The rail that carries the message. Empty until Didit has chosen one for a first message.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.rail","typeLabel":"enum\u003cstring>"},"attempts":{"type":"integer","minimum":0,"description":"Attempts made so far for this message. A message that is not a status poll is attempted at most 6 times.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.attempts","typeLabel":"integer"},"last_error":{"type":"string","description":"A short customer-safe reason for the last failure, `\"\"` when there is none: `email undeliverable`, `trp identity endpoint unreachable`, `trp transfer inquiry delivery failed` or `The message could not be delivered.` It never carries the counterparty's own answer, which stays on the transfer's `timeline`, and never a response body.","example":"email undeliverable","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.last_error","typeLabel":"string"},"next_attempt_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the next attempt runs while the message is `QUEUED` or `RETRYING`.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.next_attempt_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the next attempt runs while the message is `QUEUED` or `RETRYING`.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.next_attempt_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.next_attempt_at","typeLabel":"string\u003cdate-time> | null"},"delivered_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the other side took the message.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.delivered_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the other side took the message.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.delivered_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.delivered_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"type":"string","format":"date-time","description":"When the delivery last changed.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"failure":{"oneOf":[{"type":"object","required":["code","message"],"description":"Why the last attempt failed, or null while the message has not failed. The message is a fixed customer-safe sentence: it never carries the counterparty's own text or a transport error.","properties":{"code":{"type":"string","enum":["email_undeliverable","delivery_failed"],"description":"`email_undeliverable`: the email bounced or the address does not accept mail. `delivery_failed`: any other failure.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.failure.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Customer-safe description of the failure.","example":"The message could not be delivered.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.failure.oneOf.0.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.failure.oneOf.0","typeLabel":"object"},{"type":"null","required":["code","message"],"description":"Why the last attempt failed, or null while the message has not failed. The message is a fixed customer-safe sentence: it never carries the counterparty's own text or a transport error.","properties":{"code":{"type":"string","enum":["email_undeliverable","delivery_failed"],"description":"`email_undeliverable`: the email bounced or the address does not accept mail. `delivery_failed`: any other failure."},"message":{"type":"string","description":"Customer-safe description of the failure.","example":"The message could not be delivered."}},"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.failure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.failure","typeLabel":"object | null"},"route":{"oneOf":[{"type":"string","description":"Readable name of the route that carried the message: `Email`, `TRP`, `Didit`, `Didit Test VASP`, the name of a network listed in the Marketplace, or `Network` for any other network. Null until a route is chosen.","example":"Email","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.route.oneOf.0","typeLabel":"string"},{"type":"null","description":"Readable name of the route that carried the message: `Email`, `TRP`, `Didit`, `Didit Test VASP`, the name of a network listed in the Marketplace, or `Network` for any other network. Null until a route is chosen.","example":"Email","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.route.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0.route","typeLabel":"string | null"}},"uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.delivery.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.delivery","typeLabel":"object | null"},"discovery":{"type":"array","description":"How Didit looked for the counterparty, one entry per step that ran. Empty when no discovery ran, for example on an inbound transfer.","items":{"type":"object","description":"One step of the counterparty discovery Didit ran for an outbound transfer, in the order it ran them. The first step that names a VASP with a route ends the chain.","properties":{"step":{"type":"string","enum":["internal_address_book","wallet_attribution","network_lookup","customer_hint","end_user"],"description":"`internal_address_book`: another Didit customer that proved control of the destination wallet. `wallet_attribution`: the wallet's blockchain analytics attribution. `network_lookup`: a network that can say which VASP holds the address. `customer_hint`: the VASP name, LEI or jurisdiction you sent in `beneficiary_data`. `end_user`: the counterparty the end user (or you) picked, or the request to pick one.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].step","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","enum":["match","miss","skipped"],"description":"`match`: the step named a counterparty. `miss`: it ran and found none. `skipped`: it could not run, and `reason` says why.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].outcome","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"Machine-readable reason, `\"\"` on a match: `no_proven_internal_wallet`, `attribution_disabled`, `already_attributed`, `no_attributed_entity`, `directory_match_no_route`, `gtr_address_lookup_runs_on_dispatch`, `no_membership`, `network_switched_off`, `no_network_address_lookup`, `no_directory_match`, `awaiting_end_user` or `picked_member_without_proven_wallet`.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].reason","typeLabel":"string"},"vasp":{"oneOf":[{"type":"string","format":"uuid","description":"The directory VASP the step named, when it named one.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].vasp.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"The directory VASP the step named, when it named one.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].vasp.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].vasp","typeLabel":"string\u003cuuid> | null"},"rail":{"oneOf":[{"type":"string","description":"The rail that reaches that counterparty, when the step found one.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].rail.oneOf.0","typeLabel":"string"},{"type":"null","description":"The rail that reaches that counterparty, when the step found one.","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].rail.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].rail","typeLabel":"string | null"},"at":{"type":"string","format":"date-time","uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX].at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"travel_rule.oneOf.0.discovery.items.[INDEX]","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.discovery","typeLabel":"object[]"},"reason":{"type":"string","description":"Why a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE` transfer is stuck; `\"\"` for any other status. A failed delivery decides it first, on `COUNTERPARTY_VASP_NOT_REACHABLE` only: `email_undeliverable` (the mail provider refused the compliance email and no address is left to try: when it was sent, on a reminder, or as a permanent bounce reported later) or `delivery_failed` (the rail that was delivering failed for good: a network rail refused the message or ran out of retries, a `TRP` identity host did not answer, or the counterparty's `TRP` host did not accept the inquiry). Otherwise the `discovery` trace decides it: `awaiting_end_user` (no step named a counterparty Didit can reach), `directory_match_no_route` (a step named a directory VASP that has no route), `picked_member_without_proven_wallet` (the end user picked a Didit customer that has not proven control of the wallet), or `no_directory_match` when the trace gives no other reason. A resend moves the transfer on, so the reason clears. See [Why a transfer is stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).","uniqueKey":"travel_rule.oneOf.0.reason","typeLabel":"string"},"next_actions":{"type":"array","description":"What moves the transfer on; `[]` for any status but `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`. `email_undeliverable` offers `update_compliance_email`, then `resend`. `delivery_failed` offers `resend`. A discovery reason offers `select_counterparty_vasp`, `declare_self_hosted`, `add_vasp_hint` and `resend`.","items":{"type":"object","description":"One thing that moves a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE` transfer on. See [Why a transfer is stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).","properties":{"action":{"type":"string","enum":["select_counterparty_vasp","declare_self_hosted","add_vasp_hint","update_compliance_email","resend"],"description":"`select_counterparty_vasp`: the end user picks the destination VASP in the wallet-ownership widget, or you PATCH `action=beneficiary_vasp`. `declare_self_hosted`: the end user declares the wallet self-hosted in the widget. `add_vasp_hint`: tell Didit who the counterparty is, with a VASP name, LEI or travel address (for example a `travel_address` on the destination wallet's address-book entry), then resend. `update_compliance_email` and `resend` are `action` values of `PATCH /v3/transactions/{transaction_id}/travel-rule/`: give the counterparty's compliance email again, and re-run routing.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.next_actions.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"The wallet-ownership widget link, on `select_counterparty_vasp` and `declare_self_hosted` while the transfer has an open widget session.","uniqueKey":"travel_rule.oneOf.0.next_actions.items.[INDEX].url","typeLabel":"string\u003curi>"}},"required":["action"],"uniqueKey":"travel_rule.oneOf.0.next_actions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.next_actions","typeLabel":"object[]"},"chain_details":{"type":"object","description":"How the transfer's chain names its two wallets, when that is more than one address paying another. Empty (`{}`) for an account-chain transfer (EVM, Solana, Tron), where the two addresses are the wallets. Matching, routing and the address book read the wallets from here first.","properties":{"chain":{"type":"string","description":"Canonical chain, e.g. `BTC`, `XRP`, or `LIGHTNING` for a Lightning transfer.","uniqueKey":"travel_rule.oneOf.0.chain_details.chain","typeLabel":"string"},"shape":{"type":"string","enum":["utxo","memo","lightning"],"uniqueKey":"travel_rule.oneOf.0.chain_details.shape","typeLabel":"enum\u003cstring>"},"originator":{"type":"object","description":"One side's wallet as Didit resolved it from the chain data.","properties":{"address":{"type":"string","description":"The wallet. On a memo network the classic address (an XRP X-address is split into its classic address and its tag); on Lightning the payee node id or Lightning Address.","uniqueKey":"travel_rule.oneOf.0.chain_details.originator.address","typeLabel":"string"},"memo":{"type":"string","description":"The destination tag or memo that is part of the wallet; `\"\"` for none.","uniqueKey":"travel_rule.oneOf.0.chain_details.originator.memo","typeLabel":"string"},"source":{"type":"string","enum":["declared","x_address","largest_input","only_non_change_output","amount_match","invoice_payee","updated"],"description":"Where the wallet came from: `declared` (your request), `x_address` (split from an XRP X-address), `largest_input` (the UTXO input address that contributed the most), `only_non_change_output` (the only UTXO output that is not change), `amount_match` (the one UTXO output paying the transfer amount), `invoice_payee` (the payee a Lightning payment request names), `updated` (set later with `action: update_originator_wallet`).","uniqueKey":"travel_rule.oneOf.0.chain_details.originator.source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"travel_rule.oneOf.0.chain_details.originator","typeLabel":"object"},"beneficiary":{"type":"object","description":"One side's wallet as Didit resolved it from the chain data.","properties":{"address":{"type":"string","description":"The wallet. On a memo network the classic address (an XRP X-address is split into its classic address and its tag); on Lightning the payee node id or Lightning Address.","uniqueKey":"travel_rule.oneOf.0.chain_details.beneficiary.address","typeLabel":"string"},"memo":{"type":"string","description":"The destination tag or memo that is part of the wallet; `\"\"` for none.","uniqueKey":"travel_rule.oneOf.0.chain_details.beneficiary.memo","typeLabel":"string"},"source":{"type":"string","enum":["declared","x_address","largest_input","only_non_change_output","amount_match","invoice_payee","updated"],"description":"Where the wallet came from: `declared` (your request), `x_address` (split from an XRP X-address), `largest_input` (the UTXO input address that contributed the most), `only_non_change_output` (the only UTXO output that is not change), `amount_match` (the one UTXO output paying the transfer amount), `invoice_payee` (the payee a Lightning payment request names), `updated` (set later with `action: update_originator_wallet`).","uniqueKey":"travel_rule.oneOf.0.chain_details.beneficiary.source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"travel_rule.oneOf.0.chain_details.beneficiary","typeLabel":"object"},"utxo":{"type":"object","description":"On a UTXO transfer: the inputs and outputs as stored (amounts as decimal strings) and which outputs Didit read as what.","properties":{"inputs":{"type":"array","items":{"type":"object","description":"One input or output of a UTXO transaction, as the chain recorded it.","required":["address"],"properties":{"address":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].address","typeLabel":"string"},"amount":{"oneOf":[{"type":"string","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].amount","typeLabel":"string | null"},"txid":{"type":"string","maxLength":128,"description":"Optional. The transaction an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].txid","typeLabel":"string"},"vout":{"oneOf":[{"type":"integer","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].vout.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].vout.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX].vout","typeLabel":"integer | null"}},"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.inputs","typeLabel":"object[]"},"outputs":{"type":"array","items":{"type":"object","description":"One input or output of a UTXO transaction, as the chain recorded it.","required":["address"],"properties":{"address":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].address","typeLabel":"string"},"amount":{"oneOf":[{"type":"string","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"Decimal string in the coin's own unit (BTC, not satoshis). Optional.","example":"0.0125","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].amount","typeLabel":"string | null"},"txid":{"type":"string","maxLength":128,"description":"Optional. The transaction an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].txid","typeLabel":"string"},"vout":{"oneOf":[{"type":"integer","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].vout.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"description":"Optional. The output index an input spends.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].vout.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX].vout","typeLabel":"integer | null"}},"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.outputs","typeLabel":"object[]"},"change_output_indexes":{"type":"array","items":{"type":"integer","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.change_output_indexes.items.[INDEX]","typeLabel":"integer"},"description":"Outputs that pay an input address back.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.change_output_indexes","typeLabel":"integer[]"},"beneficiary_output_index":{"oneOf":[{"type":"integer","description":"The output that pays the beneficiary; null when none could be told apart.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.beneficiary_output_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The output that pays the beneficiary; null when none could be told apart.","uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.beneficiary_output_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo.beneficiary_output_index","typeLabel":"integer | null"}},"uniqueKey":"travel_rule.oneOf.0.chain_details.utxo","typeLabel":"object"},"lightning":{"type":"object","description":"On a Lightning transfer: what the payment request says. Always `kind` (`bolt11`, `bolt12_offer`, `bolt12_invoice`, `bolt12_invoice_request`, `lnurl`, `lightning_address`, `node_id` or `unknown`); a BOLT11 invoice adds `network`, `payee_node_id`, `payment_hash`, `amount_msat`, `created_at` and `expires_at`; a BOLT12 string `blinded_paths` and `payee_node_id`; an LNURL or a Lightning Address its `domain`. Nothing is resolved over the network: the request is decoded only.","additionalProperties":true,"uniqueKey":"travel_rule.oneOf.0.chain_details.lightning","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"string","enum":["declared_originator_not_an_input","declared_beneficiary_not_an_output","beneficiary_output_ambiguous","beneficiary_output_amount_differs"],"uniqueKey":"travel_rule.oneOf.0.chain_details.warnings.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"UTXO inconsistencies worth a look: the declared originator is not an input, the declared beneficiary is not an output, no single beneficiary output could be told apart, or the beneficiary output pays a different amount than the transaction states.","uniqueKey":"travel_rule.oneOf.0.chain_details.warnings","typeLabel":"enum\u003cstring>[]"},"not_applicable_reason":{"type":"string","enum":["LIGHTNING_NO_PAYEE_IDENTIFIER","LIGHTNING_BOLT12_BLINDED_PAYEE","LIGHTNING_LNURL_NAMES_NO_PAYEE"],"description":"On an outbound Lightning transfer whose payment request names no payee: why the transfer is `NOT_APPLICABLE`. `LIGHTNING_NO_PAYEE_IDENTIFIER` (the request names no payee node, or could not be decoded), `LIGHTNING_BOLT12_BLINDED_PAYEE` (the offer hides its payee behind blinded paths), `LIGHTNING_LNURL_NAMES_NO_PAYEE` (an LNURL names a service, not a payee). The same code opens the transfer's last `timeline` entry.","uniqueKey":"travel_rule.oneOf.0.chain_details.not_applicable_reason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"travel_rule.oneOf.0.chain_details","typeLabel":"object"},"deliveries":{"type":"array","maxItems":100,"items":{"type":"object","description":"One supplier-neutral entry in the delivery history.","required":["uuid","kind","status","rail","created_at","delivered_at","detail_lines","attempts","updated_at","next_attempt_at","failure","route"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Delivery identifier.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"kind":{"type":"string","enum":["SEND","ANSWER","TXID","CANCEL","POLL"],"description":"What the message carries. `SEND`: the transfer's first message to the counterparty (outbound; the rail is chosen when it is sent). `ANSWER`: your accept or decline, owed to the network that asked (inbound). `TXID`: the on-chain transaction hash, after you finish the transfer. `CANCEL`: the cancellation, after you cancel it. `POLL`: a status query to a network that offers one, repeated every 5 minutes while the transfer waits on the counterparty.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["QUEUED","SENDING","RETRYING","DELIVERED","FAILED"],"description":"Current delivery status.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"rail":{"oneOf":[{"type":"string","enum":["EMAIL","TRP","INTERNAL","NETWORK",null],"description":"Supplier-neutral transport type; null until selected.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].rail.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["EMAIL","TRP","INTERNAL","NETWORK",null],"description":"Supplier-neutral transport type; null until selected.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].rail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].rail","typeLabel":"enum\u003cstring> | null"},"created_at":{"type":"string","format":"date-time","description":"When the delivery was created.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"delivered_at":{"oneOf":[{"type":"string","format":"date-time","description":"When delivery completed, or null.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].delivered_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When delivery completed, or null.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].delivered_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].delivered_at","typeLabel":"string\u003cdate-time> | null"},"detail_lines":{"type":"array","items":{"type":"string","uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].detail_lines.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message kind and delivery status. Does not expose transport payloads or raw errors.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].detail_lines","typeLabel":"string[]"},"attempts":{"type":"integer","minimum":0,"description":"Attempts made so far for this message.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].attempts","typeLabel":"integer"},"updated_at":{"type":"string","format":"date-time","description":"When the delivery last changed.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"},"next_attempt_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the next attempt runs while the message is `QUEUED` or `RETRYING`.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].next_attempt_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the next attempt runs while the message is `QUEUED` or `RETRYING`.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].next_attempt_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].next_attempt_at","typeLabel":"string\u003cdate-time> | null"},"failure":{"oneOf":[{"type":"object","required":["code","message"],"description":"Why the last attempt failed, or null while the message has not failed. The message is a fixed customer-safe sentence: it never carries the counterparty's own text or a transport error.","properties":{"code":{"type":"string","enum":["email_undeliverable","delivery_failed"],"description":"`email_undeliverable`: the email bounced or the address does not accept mail. `delivery_failed`: any other failure.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].failure.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Customer-safe description of the failure.","example":"The message could not be delivered.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].failure.oneOf.0.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].failure.oneOf.0","typeLabel":"object"},{"type":"null","required":["code","message"],"description":"Why the last attempt failed, or null while the message has not failed. The message is a fixed customer-safe sentence: it never carries the counterparty's own text or a transport error.","properties":{"code":{"type":"string","enum":["email_undeliverable","delivery_failed"],"description":"`email_undeliverable`: the email bounced or the address does not accept mail. `delivery_failed`: any other failure."},"message":{"type":"string","description":"Customer-safe description of the failure.","example":"The message could not be delivered."}},"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].failure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].failure","typeLabel":"object | null"},"route":{"oneOf":[{"type":"string","description":"Readable name of the route that carried the message: `Email`, `TRP`, `Didit`, `Didit Test VASP`, the name of a network listed in the Marketplace, or `Network` for any other network. Null until a route is chosen.","example":"Email","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].route.oneOf.0","typeLabel":"string"},{"type":"null","description":"Readable name of the route that carried the message: `Email`, `TRP`, `Didit`, `Didit Test VASP`, the name of a network listed in the Marketplace, or `Network` for any other network. Null until a route is chosen.","example":"Email","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].route.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX].route","typeLabel":"string | null"}},"example":{"uuid":"11111111-2222-4333-8444-555555555555","kind":"SEND","status":"DELIVERED","rail":"NETWORK","created_at":"2026-11-01T10:00:00Z","delivered_at":"2026-11-01T10:00:01Z","detail_lines":["Send","Delivered"],"attempts":1,"updated_at":"2026-11-01T10:00:01Z","next_attempt_at":null,"failure":null,"route":"Network"},"uniqueKey":"travel_rule.oneOf.0.deliveries.items.[INDEX]","typeLabel":"object"},"description":"Newest 100 delivery entries, presented oldest first (creation time, then identifier). Empty when no messages exist. Use the paginated delivery endpoint for complete history.","uniqueKey":"travel_rule.oneOf.0.deliveries","typeLabel":"object[]"},"deliveries_truncated":{"type":"boolean","description":"True when older entries were omitted from deliveries. Follow GET /v3/transactions/{transaction_id}/travel-rule/deliveries/ for the complete history.","uniqueKey":"travel_rule.oneOf.0.deliveries_truncated","typeLabel":"boolean"},"not_required_reason":{"oneOf":[{"type":"string","description":"Null when required is true. Otherwise below_threshold, the recorded chain exemption (for example LIGHTNING_NO_PAYEE_IDENTIFIER, LIGHTNING_BOLT12_BLINDED_PAYEE or LIGHTNING_LNURL_NAMES_NO_PAYEE), or unknown for legacy transfers without a recorded reason.","example":"below_threshold","uniqueKey":"travel_rule.oneOf.0.not_required_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when required is true. Otherwise below_threshold, the recorded chain exemption (for example LIGHTNING_NO_PAYEE_IDENTIFIER, LIGHTNING_BOLT12_BLINDED_PAYEE or LIGHTNING_LNURL_NAMES_NO_PAYEE), or unknown for legacy transfers without a recorded reason.","example":"below_threshold","uniqueKey":"travel_rule.oneOf.0.not_required_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.not_required_reason","typeLabel":"string | null"},"proof_state":{"type":"string","description":"not_required when the transfer is not required; otherwise confirmed or not_confirmed follows ownership_confirmed. With no verdict, requested means an active outbound ownership widget matches this transfer and subject; otherwise not_requested. A request is not completed proof.","enum":["not_required","confirmed","not_confirmed","requested","not_requested"],"example":"not_requested","uniqueKey":"travel_rule.oneOf.0.proof_state","typeLabel":"enum\u003cstring>"},"user_choice":{"oneOf":[{"type":"object","description":"Explicit user-choice state, or null when counterparty_choice=user was not requested.","required":["active","waiting","end_user_link","link_expires_at","emailed_to","email_available"],"properties":{"active":{"type":"boolean","description":"True when explicit user choice was requested.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.active","typeLabel":"boolean"},"waiting":{"type":"boolean","description":"True with no selected directory VASP while status is AWAITING_COUNTERPARTY, COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE or UNCONFIRMED_OWNERSHIP.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.waiting","typeLabel":"boolean"},"end_user_link":{"type":"string","description":"Latest open end-user link, or an empty string when none is available.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.end_user_link","typeLabel":"string"},"link_expires_at":{"oneOf":[{"type":"string","description":"Expiry of the open link, or null.","format":"date-time","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.link_expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Expiry of the open link, or null.","format":"date-time","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.link_expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.link_expires_at","typeLabel":"string\u003cdate-time> | null"},"emailed_to":{"type":"string","description":"Recorded recipient of the user-choice email, or an empty string.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.emailed_to","typeLabel":"string"},"email_available":{"type":"boolean","description":"Recorded availability of an end-user email for user choice.","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0.email_available","typeLabel":"boolean"}},"uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.user_choice.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.user_choice","typeLabel":"object | null"},"proof_request":{"oneOf":[{"type":"object","description":"Latest application- and subject-scoped request if it matches this transfer counterparty wallet and chain; otherwise null. A standalone request is not attached to a transfer. Request status and proof verdict are separate from the saved transfer decision.","required":["request_id","status","expires_at","proof"],"properties":{"request_id":{"type":"string","description":"Identifier of the matching widget request. Does not expose its access token.","format":"uuid","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.request_id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","description":"COMPLETED when the request was completed; otherwise EXPIRED once expires_at has passed, or PENDING. This is the request status, not the proof verdict.","enum":["PENDING","COMPLETED","EXPIRED"],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.status","typeLabel":"enum\u003cstring>"},"expires_at":{"type":"string","description":"Expiry of the widget request.","format":"date-time","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.expires_at","typeLabel":"string\u003cdate-time>"},"proof":{"oneOf":[{"type":"object","description":"Latest proof submitted for this request and matching wallet/chain, or null when none exists. Null after the wallet and its proofs are deleted; the saved transfer decision stays unchanged.","properties":{"proof_id":{"type":"string","format":"uuid","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.proof_id","typeLabel":"string\u003cuuid>"},"method":{"type":"string","enum":["MESSAGE_SIGNING","SATOSHI_TEST","SCREENSHOT","SELF_DECLARATION"],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.method","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","VERIFIED","REJECTED","EXPIRED"],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.status","typeLabel":"enum\u003cstring>"},"wallet_address":{"type":"string","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.wallet_address","typeLabel":"string"},"chain":{"type":"string","description":"Canonical chain identifier, e.g. ETH, BTC, SOL, TRX.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.chain","typeLabel":"string"},"holder_name":{"type":"string","description":"Holder name from the submitting widget, never a reassigned holder. Empty when the submitting widget was deleted.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.holder_name","typeLabel":"string"},"is_ownership_verified":{"type":"boolean","description":"Whether the address book entry is ownership-verified, by this proof or another one.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.is_ownership_verified","typeLabel":"boolean"},"transaction_id":{"oneOf":[{"type":"string","format":"uuid","description":"The transaction whose Travel Rule transfer the widget session was minted for. Null for a session minted without a transaction_id.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.transaction_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"The transaction whose Travel Rule transfer the widget session was minted for. Null for a session minted without a transaction_id.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.transaction_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.transaction_id","typeLabel":"string\u003cuuid> | null"},"file_name":{"oneOf":[{"type":"string","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.file_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.file_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.file_name","typeLabel":"string | null"},"content_type":{"oneOf":[{"type":"string","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.content_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.content_type","typeLabel":"string | null"},"screenshot_url":{"oneOf":[{"type":"string","description":"Authorized /v3/media/preview/ URL with an expiring signed source for this proof screenshot. Returns a recompressed preview, not the original upload or an arbitrary public URL. Null when no eligible screenshot exists. Read the proof again for a fresh link.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.screenshot_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Authorized /v3/media/preview/ URL with an expiring signed source for this proof screenshot. Returns a recompressed preview, not the original upload or an arbitrary public URL. Null when no eligible screenshot exists. Read the proof again for a fresh link.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.screenshot_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.screenshot_url","typeLabel":"string | null"},"attempts":{"type":"integer","description":"Number of attempts made for this proof.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.attempts","typeLabel":"integer"},"failure_reason":{"type":"string","description":"Fixed failure code for this proof or its last attempt; empty when no documented failure applies. A PENDING proof can carry a failure code while another attempt remains possible.","enum":["","SIGNATURE_INVALID","SIGNATURE_UNSUPPORTED_SCHEME","SIGNATURE_LOOKUP_FAILED","DEPOSIT_NOT_FOUND","DEPOSIT_UNCONFIRMED","DEPOSIT_LOOKUP_FAILED","DEPOSIT_MISMATCH","DEPOSIT_STALE","TXID_REUSED","CHAIN_UNSUPPORTED","WINDOW_EXPIRED","OWNERSHIP_CHANGED","METHOD_SWITCHED","REVIEW_REJECTED","ABANDONED"],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.failure_reason","typeLabel":"enum\u003cstring>"},"method_chosen_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the end user chose this proof method, or null when unavailable.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.method_chosen_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the end user chose this proof method, or null when unavailable.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.method_chosen_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.method_chosen_at","typeLabel":"string\u003cdate-time> | null"},"decided_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.decided_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.decided_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.decided_at","typeLabel":"string\u003cdate-time> | null"},"decided_by":{"type":"string","description":"Who closed the proof: review:\u003cuser identifier> for a console reviewer, review for an API-key decision, widget or sweeper when Didit closed it automatically. Empty while PENDING.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.decided_by","typeLabel":"string"},"review_note":{"type":"string","description":"The note sent with the decision. Empty when none.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.review_note","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"application_id":{"type":"string","description":"Application that owns the wallet and proof.","format":"uuid","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.application_id","typeLabel":"string\u003cuuid>"},"user_id":{"oneOf":[{"type":"string","description":"User in this application matching the submitting widget vendor_data. Null when no matching current user exists, or the submitting widget was deleted. Never the reassigned wallet holder.","format":"uuid","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.user_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"User in this application matching the submitting widget vendor_data. Null when no matching current user exists, or the submitting widget was deleted. Never the reassigned wallet holder.","format":"uuid","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.user_id","typeLabel":"string\u003cuuid> | null"},"holder_vendor_data":{"type":"string","description":"Holder identifier from the submitting widget, not the current wallet holder. Empty when the submitting widget was deleted.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.holder_vendor_data","typeLabel":"string"},"wallet_label":{"type":"string","description":"Exact current wallet label, including an empty string when no label is set. Not a name inferred from the holder or address.","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0.wallet_label","typeLabel":"string"}},"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0.proof","typeLabel":"object | null"}},"uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"travel_rule.oneOf.0.proof_request.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule.oneOf.0.proof_request","typeLabel":"object | null"}},"uniqueKey":"travel_rule.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"travel_rule.oneOf.1","typeLabel":"null"}],"uniqueKey":"travel_rule","typeLabel":"object | null"},"network_snapshot":{"oneOf":[{"type":"object","description":"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.","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"network_snapshot.oneOf.0.uuid","typeLabel":"string\u003cuuid>"},"nodes":{"type":"array","items":{"type":"object","uniqueKey":"network_snapshot.oneOf.0.nodes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"network_snapshot.oneOf.0.nodes","typeLabel":"object[]"},"edges":{"type":"array","items":{"type":"object","uniqueKey":"network_snapshot.oneOf.0.edges.items.[INDEX]","typeLabel":"object"},"uniqueKey":"network_snapshot.oneOf.0.edges","typeLabel":"object[]"},"metrics":{"type":"object","uniqueKey":"network_snapshot.oneOf.0.metrics","typeLabel":"object"}},"uniqueKey":"network_snapshot.oneOf.0","typeLabel":"object"},{"type":"null","description":"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.","properties":{"uuid":{"type":"string","format":"uuid"},"nodes":{"type":"array","items":{"type":"object"}},"edges":{"type":"array","items":{"type":"object"}},"metrics":{"type":"object"}},"uniqueKey":"network_snapshot.oneOf.1","typeLabel":"null"}],"uniqueKey":"network_snapshot","typeLabel":"object | null"},"remediation":{"oneOf":[{"type":"object","description":"Remediation session offered to the user when re-verification is required. Superseded by `action_required`, which is the canonical block; kept for backward compatibility.","properties":{"session_id":{"type":"string","uniqueKey":"remediation.oneOf.0.session_id","typeLabel":"string"},"session_token":{"type":"string","uniqueKey":"remediation.oneOf.0.session_token","typeLabel":"string"},"url":{"type":"string","format":"uri","uniqueKey":"remediation.oneOf.0.url","typeLabel":"string\u003curi>"},"status":{"type":"string","uniqueKey":"remediation.oneOf.0.status","typeLabel":"string"}},"uniqueKey":"remediation.oneOf.0","typeLabel":"object"},{"type":"null","description":"Remediation session offered to the user when re-verification is required. Superseded by `action_required`, which is the canonical block; kept for backward compatibility.","properties":{"session_id":{"type":"string"},"session_token":{"type":"string"},"url":{"type":"string","format":"uri"},"status":{"type":"string"}},"uniqueKey":"remediation.oneOf.1","typeLabel":"null"}],"uniqueKey":"remediation","typeLabel":"object | null"},"action_required":{"oneOf":[{"type":"object","title":"Verification session","description":"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.","required":["type","url"],"properties":{"type":{"type":"string","enum":["verification_session"],"isRequired":true,"uniqueKey":"action_required.oneOf.0.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"Hosted verification URL to open for the end user.","isRequired":true,"uniqueKey":"action_required.oneOf.0.url","typeLabel":"string\u003curi>"},"session_id":{"type":"string","format":"uuid","description":"Verification session id.","uniqueKey":"action_required.oneOf.0.session_id","typeLabel":"string\u003cuuid>"},"session_token":{"type":"string","description":"Session token, used by the mobile SDKs to launch the flow natively.","uniqueKey":"action_required.oneOf.0.session_token","typeLabel":"string"},"status":{"type":"string","description":"Verification session status.","uniqueKey":"action_required.oneOf.0.status","typeLabel":"string"}},"uniqueKey":"action_required.oneOf.0","typeLabel":"Verification session · object"},{"type":"object","title":"Wallet ownership","description":"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.","required":["type","url"],"properties":{"type":{"type":"string","enum":["wallet_ownership"],"isRequired":true,"uniqueKey":"action_required.oneOf.1.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"Hosted wallet-ownership widget URL. Open it in a real browser surface - on mobile use SFSafariViewController or a Chrome Custom Tab, never an embedded webview.","isRequired":true,"uniqueKey":"action_required.oneOf.1.url","typeLabel":"string\u003curi>"},"widget_session_id":{"type":"string","format":"uuid","description":"Wallet-ownership widget session id.","uniqueKey":"action_required.oneOf.1.widget_session_id","typeLabel":"string\u003cuuid>"},"expires_at":{"type":"string","format":"date-time","description":"When the widget session expires.","uniqueKey":"action_required.oneOf.1.expires_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"action_required.oneOf.1","typeLabel":"Wallet ownership · object"},{"type":"null","uniqueKey":"action_required.oneOf.2","typeLabel":"null"}],"uniqueKey":"action_required","typeLabel":"Verification session · object | Wallet ownership · object | null"},"cost_breakdown":{"oneOf":[{"type":"object","description":"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.","uniqueKey":"cost_breakdown.oneOf.0","typeLabel":"object"},{"type":"null","description":"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.","uniqueKey":"cost_breakdown.oneOf.1","typeLabel":"null"}],"uniqueKey":"cost_breakdown","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Approved with no rule hits":{"title":"Approved with no rule hits","value":{"uuid":"abcdef12-3456-4890-abcd-ef1234567890","environment":"live","transaction_number":4123,"txn_id":"your-txn-2026-05-17-001","txn_date":"2026-05-17T08:42:00Z","zone_id":"Europe/Madrid","transaction_type":"finance","action_type":"withdrawal","direction":"OUTBOUND","status":"APPROVED","source":"LIVE","amount":"1500","currency":"EUR","currency_type":"fiat","amount_in_default_currency":"1620.45","default_currency_code":"USD","preferred_currency_amount":"1620.45","preferred_currency_code":"USD","payment_details":"Withdrawal to crypto wallet","payment_txn_id":null,"score":0,"severity":null,"decision_reason_code":null,"decision_reason_label":null,"vendor_data":"user-12345","metadata":{"subject":{"entity_type":"individual","vendor_data":"user-12345","full_name":"Maria Garcia","address":{},"institution_details":{},"device_context":{}},"counterparty":{}},"props":{},"tags":[],"parties":[{"uuid":"b1111111-2222-4333-8444-555555555555","role":"APPLICANT","entity_type":"individual","kind":"USER","vendor_data":"user-12345","full_name":"Maria Garcia","first_name":null,"last_name":null,"country_code":null,"dob":null,"address":{},"institution_info":{},"device":{},"external_party_snapshot":null}],"payment_methods":[],"documents":[],"activities":[{"uuid":"d4e5f6a7-8901-4bcd-9ef0-123456789abc","activity_type":"TRANSACTION_CREATED","source":"TRANSACTION","status":"APPROVED","title":"withdrawal","description":"Transaction recorded.","metadata":{},"occurred_at":"2026-05-17T08:42:11Z"}],"alerts":[],"rule_runs":[],"provider_results":[],"travel_rule":null,"network_snapshot":null,"remediation":null,"action_required":null,"cost_breakdown":null}},"Flagged for review":{"title":"Flagged for review","value":{"uuid":"abcdef12-3456-4890-abcd-ef1234567891","environment":"live","transaction_number":4124,"txn_id":"your-txn-2026-05-17-002","txn_date":"2026-05-17T08:42:00Z","zone_id":"Europe/Madrid","transaction_type":"finance","action_type":"withdrawal","direction":"OUTBOUND","status":"IN_REVIEW","source":"LIVE","amount":"0.5","currency":"BTC","currency_type":"crypto","amount_in_default_currency":"32500","default_currency_code":"USD","preferred_currency_amount":"32500","preferred_currency_code":"USD","payment_details":"Withdrawal to crypto wallet","payment_txn_id":null,"score":78,"severity":"HIGH","decision_reason_code":"WALLET_HIGH_RISK","decision_reason_label":"Destination wallet flagged as high risk","vendor_data":"user-12345","metadata":{"subject":{"entity_type":"individual","vendor_data":"user-12345","full_name":"Maria Garcia","address":{},"institution_details":{},"device_context":{}},"counterparty":{}},"props":{"order_id":"ord-9988"},"tags":[],"parties":[{"uuid":"b1111111-2222-4333-8444-555555555555","role":"APPLICANT","entity_type":"individual","kind":"USER","vendor_data":"user-12345","full_name":"Maria Garcia","first_name":null,"last_name":null,"country_code":null,"dob":null,"address":{},"institution_info":{},"device":{},"external_party_snapshot":null}],"payment_methods":[],"documents":[],"activities":[],"alerts":[{"uuid":"a7b8c9d0-1234-4abc-9def-567890abcdef","title":"Destination wallet flagged as high risk","description":"Provider risk score exceeded the configured threshold.","severity":"HIGH","status":"OPEN","source":"RULE","metadata":{},"created_at":"2026-05-17T08:42:12Z","due_at":null}],"rule_runs":[{"uuid":"e5f6a7b8-9012-4cde-af01-23456789abcd","rule":"f6a7b8c9-0123-4def-b012-3456789abcde","rule_title":"High-risk wallet screening","rule_description":null,"rule_category":"crypto","matched":true,"is_test":false,"mode":"ACTIVE","severity":"HIGH","score_delta":78,"status_target":"IN_REVIEW","action_summary":"score +78; change_status:IN_REVIEW","metadata":{},"created_at":"2026-05-17T08:42:12Z"}],"provider_results":[],"travel_rule":null,"network_snapshot":null,"remediation":null,"action_required":null,"cost_breakdown":null}}},"exampleType":"examples"}},"exampleType":"examples"},"a187e6df-979e-46f9-ab6f-23d50fd766fd":{"description":"Validation failed (missing required fields, duplicate `transaction_id`, unknown enum value, invalid currency, etc.).","content":{"application/json":{"examples":{"Missing required field":{"title":"Missing required field","value":{"transaction_details":{"amount":["This field is required."]}}},"Duplicate transaction_id":{"title":"Duplicate transaction_id","value":{"transaction_id":["A transaction with this transaction_id already exists."]}},"Invalid category":{"title":"Invalid category","value":{"non_field_errors":["Unsupported transaction category."]}},"Missing subject identity":{"title":"Missing subject identity","value":{"subject":["subject.vendor_data and subject.full_name are required."]}},"Blocklisted participant":{"title":"Blocklisted participant","value":{"vendor_data":["The individual 'user-12345' is in the blocklist and cannot participate in transactions."]}}},"exampleType":"examples"}},"exampleType":"examples"},"4db562e7-f735-4643-bacb-dcc23a9ecaeb":{"description":"Missing, invalid, or revoked API key, or the key cannot submit transactions for this application. A missing key returns `403`; a wrong, revoked or expired key returns `401`.","content":{"application/json":{"examples":{"Forbidden":{"title":"Forbidden","value":{"detail":"You do not have permission to perform this action."}}},"exampleType":"examples"}},"exampleType":"examples"},"2dac0732-19c8-4268-bff7-7e852ac4edad":{"description":"Another request with the same `transaction_id` created the transaction while this one was being processed, so only one of two simultaneous submissions succeeds. Read the existing transaction instead of resubmitting.","content":{"application/json":{"examples":{"Concurrent duplicate":{"title":"Concurrent duplicate","value":{"detail":"A transaction with this transaction_id already exists."}}},"exampleType":"examples"}},"exampleType":"examples"},"cf2c19c8-c5a9-4c57-844b-59ec484ccf22":{"description":"Rate limit exceeded: transaction creates and event ingestion (`POST /v3/transactions/`, `POST /v3/events/`, `POST /v3/events/batch/`) share a budget of 600 requests per minute per API key, separate from the 300 shared by every other write request. Wait `Retry-After` seconds, then retry.","headers":{"Retry-After":{"description":"Seconds to wait before retrying, rounded up so the retry lands in the next window.","schema":{"type":"integer","minimum":1,"example":30}},"X-RateLimit-Scope":{"description":"The scope whose budget was exceeded. Present on middleware budget refusals.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Budget for the exceeded scope; equals body limit. Present on middleware budget refusals.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining budget, clamped to zero; equals body remaining. Present on middleware budget refusals.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Reset time in Unix seconds; equals body reset. Present on middleware budget refusals.","schema":{"type":"integer"}}},"content":{"application/json":{"examples":{"Throttled":{"title":"Throttled","value":{"detail":"Ingestion rate limit exceeded. You can make up to 600 requests per minute.","reference":"RL-00000000000040008000000000000001","limit":600,"remaining":0,"reset":1794358860,"window_seconds":60}}},"schema":{"type":"object","description":"Returned only for a rate-limit middleware budget refusal. Other 429 errors, including idempotency conflicts and endpoint-specific caps, do not promise these metadata fields.","required":["detail","reference","limit","remaining","reset","window_seconds"],"properties":{"detail":{"type":"string","description":"Existing human-readable budget refusal message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"reference":{"type":"string","pattern":"^RL-[0-9a-f]{32}$","description":"Opaque support reference: RL- followed by 32 lowercase UUID hexadecimal characters.","isRequired":true,"uniqueKey":"reference","typeLabel":"string"},"limit":{"type":"integer","description":"Budget for the exceeded scope; equals X-RateLimit-Limit.","isRequired":true,"uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","minimum":0,"description":"Remaining budget, clamped to zero; equals X-RateLimit-Remaining.","isRequired":true,"uniqueKey":"remaining","typeLabel":"integer"},"reset":{"type":"integer","format":"int64","description":"Window reset time in Unix seconds; equals X-RateLimit-Reset.","isRequired":true,"uniqueKey":"reset","typeLabel":"integer\u003cint64>"},"window_seconds":{"type":"integer","description":"Fixed-window duration in seconds, not the remaining wait. Honor Retry-After before retrying.","isRequired":true,"uniqueKey":"window_seconds","typeLabel":"integer"}},"example":{"detail":"Write request rate limit exceeded. You can make up to 300 requests per minute.","reference":"RL-00000000000040008000000000000001","limit":300,"remaining":0,"reset":1794358860,"window_seconds":60},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"eff06fbf-7a65-424b-bb40-9ed5f0276b8a":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"b0ba96d4-d4bf-4592-a911-47e2a156ceb7":{"url":"https://verification.didit.me"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi-25.json"},"subdomain":"didit-0f962782","siteName":"Didit Docs","title":"Create Transaction API: KYT Submission - Didit Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/management-api/transactions/create","matchLevel":0},"es":{"href":"/es/management-api/transactions/create","matchLevel":1},"pt-BR":{"href":"/pt-br/management-api/transactions/create","matchLevel":1},"ja":{"href":"/ja/management-api/transactions/create","matchLevel":1},"de":{"href":"/de/management-api/transactions/create","matchLevel":1},"fr":{"href":"/fr/management-api/transactions/create","matchLevel":1},"it":{"href":"/it/management-api/transactions/create","matchLevel":1},"pt":{"href":"/pt/management-api/transactions/create","matchLevel":1},"ca":{"href":"/ca/management-api/transactions/create","matchLevel":1},"id":{"href":"/id/management-api/transactions/create","matchLevel":1},"ru":{"href":"/ru/management-api/transactions/create","matchLevel":1},"ko":{"href":"/ko/management-api/transactions/create","matchLevel":1},"zh":{"href":"/zh/management-api/transactions/create","matchLevel":1},"ar":{"href":"/ar/management-api/transactions/create","matchLevel":1},"hi":{"href":"/hi/management-api/transactions/create","matchLevel":1}}},"lastModified":"2026-11-12T09:17:43.306Z","gitLastModified":"2026-11-12T08:59:38.000Z","originalFileLocation":"management-api/transactions/create.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Transaction API: KYT Submission - Didit Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Didit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.didit.me/management-api/transactions/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://didit-0f962782.mintlify.site/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Create+Transaction+API%3A+KYT+Submission\u0026amp;description=Submit+a+transaction+to+Didit+KYT+for+risk+scoring%2C+screening+and+travel-rule+processing.+1%2C000+transactions+a+month+included%2C+then+%240.001+each.\u0026amp;theme=6763de7356559382b06288d9\u0026amp;signature=2b0a8d0707b79a433db16be558b1d8eec2b8ecee5745322855f02ab73f4ae750\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Transaction API: KYT Submission - Didit Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://didit-0f962782.mintlify.site/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Create+Transaction+API%3A+KYT+Submission\u0026amp;description=Submit+a+transaction+to+Didit+KYT+for+risk+scoring%2C+screening+and+travel-rule+processing.+1%2C000+transactions+a+month+included%2C+then+%240.001+each.\u0026amp;theme=6763de7356559382b06288d9\u0026amp;signature=2b0a8d0707b79a433db16be558b1d8eec2b8ecee5745322855f02ab73f4ae750\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2567FF\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#2567FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.didit.me/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/management-api/transactions/create.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.didit.me/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.didit.me/es/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.didit.me/pt-br/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.didit.me/ja/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.didit.me/de/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.didit.me/fr/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.didit.me/it/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.didit.me/pt/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ca\" href=\"https://docs.didit.me/ca/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.didit.me/id/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.didit.me/ru/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.didit.me/ko/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.didit.me/zh/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.didit.me/ar/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.didit.me/hi/management-api/transactions/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.didit.me/management-api/transactions/create\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://didit.me/#organization\",\"name\":\"Didit\",\"legalName\":\"Didit Protocol\",\"url\":\"https://didit.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://didit.me/logos/primary-horizontal-light.png\"},\"sameAs\":[\"https://www.linkedin.com/company/91001155\",\"https://www.youtube.com/@getdidit\",\"https://github.com/didit-protocol\",\"https://x.com/didit\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.didit.me#website\",\"name\":\"Didit Docs\",\"url\":\"https://docs.didit.me\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.didit.me/management-api/transactions/create#webpage\",\"url\":\"https://docs.didit.me/management-api/transactions/create\",\"name\":\"Create Transaction API: KYT Submission\",\"description\":\"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\",\"dateModified\":\"2026-11-12T08:59:38.000Z\",\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.didit.me/management-api/transactions/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.didit.me/management-api/transactions/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Transactions\",\"item\":\"https://docs.didit.me/management-api/transactions/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Transaction API: KYT Submission\",\"item\":\"https://docs.didit.me/management-api/transactions/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.didit.me/management-api/transactions/create#apireference\",\"headline\":\"Create Transaction API: KYT Submission\",\"name\":\"Create Transaction API: KYT Submission\",\"description\":\"Submit a transaction to Didit KYT for risk scoring, screening and travel-rule processing. 1,000 transactions a month included, then $0.001 each.\",\"url\":\"https://docs.didit.me/management-api/transactions/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.didit.me/management-api/transactions/create#webpage\"},\"dateModified\":\"2026-11-12T08:59:38.000Z\",\"keywords\":\"create transaction API, transaction API, transaction monitoring API, KYT transaction API, transaction screening API, transaction CRUD, POST transactions, travel rule API, Didit Management API, pay-per-call KYT\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Didit Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Didit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/management-api/transactions/create.md","siteName":"Didit Docs","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Get Started","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/rocket.svg","pages":[{"title":"Get Started","href":""}]},{"tab":"Integrate / SDKs","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","pages":[{"title":"Integrate / SDKs","href":"/integration/sdks"}]},{"tab":"API Reference","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","groups":[{"group":"Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Didit API Reference: Identity Verification REST API","sidebarTitle":"API Reference","href":"/api-reference/overview"},{"title":"Healthcheck API: Public Liveness Probe","sidebarTitle":"Healthcheck","openapi":"openapi-healthcheck.json GET /system/healthcheck","href":"/api-reference/healthcheck"},{"title":"Service Status API: Public Didit Status Feed","sidebarTitle":"Service status","openapi":"openapi-25.json GET /v3/status/","href":"/api-reference/service-status"},{"title":"Bank Verification Pricing API: Public Price Feed","sidebarTitle":"Bank verification prices","openapi":"openapi-25.json GET /v3/organization/bank-verification-pricing/","href":"/api-reference/bank-verification-pricing"}]},{"group":"User and Business Verifications","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"Sessions API: Unified KYC \u0026 KYB Verification","sidebarTitle":"Overview","href":"/sessions-api/overview"},{"title":"Create Session API: Start KYC or KYB Verification","sidebarTitle":"Create Session","openapi":"openapi-25.json POST /v3/session/","href":"/sessions-api/create-session"},{"title":"Import Data from Another Provider","openapi":"openapi-25.json POST /v3/session/imports/","href":"/sessions-api/import-verifications"},{"title":"Retrieve Session API: KYC \u0026 KYB Decision Data","sidebarTitle":"Retrieve Session","openapi":"openapi-25.json GET /v3/session/{sessionId}/decision/","href":"/sessions-api/retrieve-session"},{"title":"List Sessions API: Filter KYC \u0026 KYB Sessions","sidebarTitle":"List Sessions","openapi":"openapi-25.json GET /v3/sessions/","href":"/sessions-api/list-sessions"},{"title":"Update Session Status API: Approve \u0026 Decline","sidebarTitle":"Update Session Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-status/","href":"/sessions-api/update-status"},{"title":"Preview Resubmission Email","openapi":"openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/","href":"/sessions-api/preview-resubmission"},{"title":"Preview Decision Email API: Approved and Declined Emails","sidebarTitle":"Preview Decision Email","openapi":"openapi-25.json POST /v3/session/{sessionId}/decision-email-preview/","href":"/sessions-api/preview-decision-email"},{"title":"Update Feature Status API: Approve/Decline a Single Step","sidebarTitle":"Update Feature Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/","href":"/sessions-api/update-feature-status"},{"title":"List Feature Overrides API: Step Status History","sidebarTitle":"List Feature Overrides","openapi":"openapi-25.json GET /v3/session/{sessionId}/features/overrides/","href":"/sessions-api/list-feature-overrides"},{"title":"Cancel Feature Override API: Drop a Pending Step Override","sidebarTitle":"Cancel Feature Override","openapi":"openapi-25.json POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/","href":"/sessions-api/cancel-feature-override"},{"title":"Update AML Hit Status API: Clear \u0026 Confirm Matches","sidebarTitle":"Update AML Hit Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/","href":"/sessions-api/update-aml-hit-status"},{"title":"Update Session Data API: Fix KYC \u0026 KYB Fields","sidebarTitle":"Update Session Data","href":"/sessions-api/update-data"},{"title":"Update AML Check Status API","sidebarTitle":"Update AML Check Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-aml-status/","href":"/sessions-api/update-aml-status"},{"title":"Update Document AI Data API","sidebarTitle":"Update Document AI Data","openapi":"openapi-25.json PATCH /v3/document-ai/{sessionId}/documents/{documentUuid}/","href":"/sessions-api/update-document-ai-data"},{"title":"Regenerate Key People KYC Session API","sidebarTitle":"Regenerate Key People KYC Session","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/","href":"/sessions-api/regenerate-kyb-party"},{"title":"Upload KYB Documents API","sidebarTitle":"Upload KYB Documents","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/documents/","href":"/sessions-api/kyb-upload-documents"},{"title":"List KYB Extracted Parties API","sidebarTitle":"List KYB Extracted Parties","openapi":"openapi-25.json GET /v3/session/{sessionId}/kyb/extracted-parties/","href":"/sessions-api/kyb-extracted-parties"},{"title":"List KYB Party Drafts API","sidebarTitle":"List KYB Party Drafts","openapi":"openapi-25.json GET /v3/session/{sessionId}/kyb/parties/drafts/","href":"/sessions-api/kyb-list-party-drafts"},{"title":"Create KYB Party Draft API","sidebarTitle":"Create KYB Party Draft","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/drafts/","href":"/sessions-api/kyb-create-party-draft"},{"title":"Edit KYB Party Draft API","sidebarTitle":"Edit KYB Party Draft","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/sessions-api/kyb-update-party-draft"},{"title":"Delete KYB Party Draft API","sidebarTitle":"Delete KYB Party Draft","openapi":"openapi-25.json DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/sessions-api/kyb-delete-party-draft"},{"title":"Submit KYB Key People API","sidebarTitle":"Submit KYB Key People","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/submit/","href":"/sessions-api/kyb-submit-parties"},{"title":"Add Images to a Session API","sidebarTitle":"Add Images to a Session","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/add-images/","href":"/sessions-api/add-images"},{"title":"Delete Session API: GDPR Right-to-Be-Forgotten","sidebarTitle":"Delete Session","openapi":"openapi-25.json DELETE /v3/session/{sessionId}/delete/","href":"/sessions-api/delete-session"},{"title":"Generate PDF API: KYC \u0026 KYB Compliance Reports","sidebarTitle":"Generate PDF","openapi":"openapi-25.json GET /v3/session/{sessionId}/generate-pdf/","href":"/sessions-api/generate-pdf"},{"title":"Export Session Files API: Download Every File as One ZIP","sidebarTitle":"Export files","openapi":"openapi-25.json POST /v3/session/{sessionId}/files-export/","href":"/sessions-api/export-files"},{"title":"Get Session Files Export API: Status and Download Link","sidebarTitle":"Get files export","openapi":"openapi-25.json GET /v3/session/{sessionId}/files-export/{exportId}/","href":"/sessions-api/get-files-export"},{"group":"E-signatures","pages":[{"title":"Download Signed Document API: Signed PDF","sidebarTitle":"Download a Signed Document","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/","href":"/sessions-api/electronic-signature/download-signed-document"},{"title":"Signature Evidence API: Audit Trail PDF","sidebarTitle":"Download the Signature Evidence","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/","href":"/sessions-api/electronic-signature/download-evidence"},{"title":"Signature Image API: Adopted Signature PNG","sidebarTitle":"Download a Signature Image","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/","href":"/sessions-api/electronic-signature/download-field-image"},{"title":"Validate Signatures API: Re-check Signed PDFs","sidebarTitle":"Validate Signatures","openapi":"openapi-25.json POST /v3/session/{sessionId}/signatures/{nodeId}/validate/","href":"/sessions-api/electronic-signature/validate-signatures"}]},{"title":"Share Session API: Reusable KYC Between Partners","sidebarTitle":"Overview","href":"/sessions-api/share-session/overview"},{"title":"Share Session API: Generate Share Token","sidebarTitle":"Share Session","openapi":"openapi-25.json POST /v3/session/{sessionId}/share/","href":"/sessions-api/share-session/share"},{"title":"Import Shared Session API: Reusable KYC \u0026 KYB","sidebarTitle":"Import Shared Session","openapi":"openapi-25.json POST /v3/session/import-shared/","href":"/sessions-api/share-session/import"}]},{"group":"Lists","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"Lists API: Blocklists \u0026 Allowlists","sidebarTitle":"Overview","href":"/management-api/lists/overview"},{"title":"List All Lists API: Blocklists \u0026 Allowlists","sidebarTitle":"List Lists","openapi":"openapi-25.json GET /v3/lists/","href":"/management-api/lists/list"},{"title":"Create List API: Allowlist \u0026 Custom List","sidebarTitle":"Create List","openapi":"openapi-25.json POST /v3/lists/","href":"/management-api/lists/create"},{"title":"Get List API: Retrieve Compliance List","sidebarTitle":"Get List","openapi":"openapi-25.json GET /v3/lists/{list_uuid}/","href":"/management-api/lists/get"},{"title":"Update List API: Edit Compliance List","sidebarTitle":"Update List","openapi":"openapi-25.json PATCH /v3/lists/{list_uuid}/","href":"/management-api/lists/update"},{"title":"Delete List API: Remove Compliance List","sidebarTitle":"Delete List","openapi":"openapi-25.json DELETE /v3/lists/{list_uuid}/","href":"/management-api/lists/delete"},{"title":"List Entries API: Blocklist \u0026 Allowlist Items","sidebarTitle":"List Entries","openapi":"openapi-25.json GET /v3/lists/{list_uuid}/entries/","href":"/management-api/lists/list-entries"},{"title":"Create List Entry API: Blocklist \u0026 Allowlist","sidebarTitle":"Create List Entry","openapi":"openapi-25.json POST /v3/lists/{list_uuid}/entries/","href":"/management-api/lists/create-entry"},{"title":"Delete List Entry API: Unblock Item","sidebarTitle":"Delete List Entry","openapi":"openapi-25.json DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/","href":"/management-api/lists/delete-entry"},{"title":"Upload Face API: Biometric Lists","sidebarTitle":"Upload Face","openapi":"openapi-25.json POST /v3/lists/{list_uuid}/entries/face-upload/","href":"/management-api/lists/upload-face"}]},{"group":"Blocklist","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"List Blocklisted Items API","sidebarTitle":"List Blocklisted Items","openapi":"openapi-25.json GET /v3/blocklist/","href":"/management-api/blocklist/list"},{"title":"Add to Blocklist API: Block Session Items","sidebarTitle":"Add to Blocklist","openapi":"openapi-25.json POST /v3/blocklist/add/","href":"/management-api/blocklist/add"},{"title":"Remove from Blocklist API: Unblock Session Items","sidebarTitle":"Remove from Blocklist","openapi":"openapi-25.json POST /v3/blocklist/remove/","href":"/management-api/blocklist/remove"}]},{"group":"Workflows","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/workflows.svg","pages":[{"title":"List Workflows API: Verification Flows","sidebarTitle":"List Workflows","openapi":"openapi-25.json GET /v3/workflows/","href":"/management-api/workflows/list"},{"title":"Create Workflow API: Build KYC Flow","sidebarTitle":"Create Workflow","openapi":"openapi-25.json POST /v3/workflows/","href":"/management-api/workflows/create"},{"title":"Workflow Feature Configs API Reference","sidebarTitle":"Workflow Feature Configs","href":"/management-api/workflows/feature-configs"},{"title":"Get Workflow API: Retrieve KYC Flow","sidebarTitle":"Get Workflow","openapi":"openapi-25.json GET /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/get"},{"title":"Update Workflow API: Edit KYC Flow","sidebarTitle":"Update Workflow","openapi":"openapi-25.json PATCH /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/update"},{"title":"Delete Workflow API: Remove KYC Flow","sidebarTitle":"Delete Workflow","openapi":"openapi-25.json DELETE /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/delete"}]},{"group":"Questionnaires","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"List Questionnaires API: KYC Forms","sidebarTitle":"List Questionnaires","openapi":"openapi-25.json GET /v3/questionnaires/","href":"/management-api/questionnaires/list"},{"title":"Create Questionnaire API: Custom KYC Form","sidebarTitle":"Create Questionnaire","openapi":"openapi-25.json POST /v3/questionnaires/","href":"/management-api/questionnaires/create"},{"title":"Get Questionnaire API: Retrieve KYC Form","sidebarTitle":"Get Questionnaire","openapi":"openapi-25.json GET /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/get"},{"title":"Update Questionnaire API: Edit KYC Form","sidebarTitle":"Update Questionnaire","openapi":"openapi-25.json PATCH /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/update"},{"title":"Delete Questionnaire API: Remove KYC Form","sidebarTitle":"Delete Questionnaire","openapi":"openapi-25.json DELETE /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/delete"}]},{"group":"Users","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/users.svg","pages":[{"title":"List Users API: Vendor User Entities","sidebarTitle":"List Users","openapi":"openapi-25.json GET /v3/users/","href":"/management-api/users/list"},{"title":"Create User API: Vendor User Entity","sidebarTitle":"Create User","openapi":"openapi-25.json POST /v3/users/create/","href":"/management-api/users/create"},{"title":"Upload User Face API: Vendor User Profile","sidebarTitle":"Upload User Face","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/","href":"/management-api/users/upload-face"},{"title":"Get User API: Vendor User Entity","sidebarTitle":"Get User","openapi":"openapi-25.json GET /v3/users/{vendor_data}/","href":"/management-api/users/get"},{"title":"User History PDF API: All Sessions of a User","sidebarTitle":"User history PDF","openapi":"openapi-25.json GET /v3/users/{vendor_data}/generate-pdf/","href":"/management-api/users/generate-pdf"},{"title":"Update User API: Vendor User Entity","sidebarTitle":"Update User","openapi":"openapi-25.json PATCH /v3/users/{vendor_data}/","href":"/management-api/users/update"},{"title":"Update User Status API: Block or Flag","sidebarTitle":"Update User Status","openapi":"openapi-25.json PATCH /v3/users/{vendor_data}/update-status/","href":"/management-api/users/update-status"},{"title":"Batch Delete Users API: GDPR Erasure","sidebarTitle":"Batch Delete Users","openapi":"openapi-25.json POST /v3/users/delete/","href":"/management-api/users/delete"}]},{"group":"Biometric Templates","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"Biometric Templates API","sidebarTitle":"Overview","href":"/management-api/biometric-templates/overview"},{"title":"List Biometric Templates API","sidebarTitle":"List Templates","openapi":"openapi-25.json GET /v3/biometric-templates/","href":"/management-api/biometric-templates/list"},{"title":"Count Biometric Templates API","sidebarTitle":"Count Templates","openapi":"openapi-25.json GET /v3/biometric-templates/count/","href":"/management-api/biometric-templates/count"},{"title":"Get Biometric Template API","sidebarTitle":"Get Template","openapi":"openapi-25.json GET /v3/biometric-templates/{template_uuid}/","href":"/management-api/biometric-templates/get"},{"title":"Purge Biometric Template API","sidebarTitle":"Purge Template","openapi":"openapi-25.json DELETE /v3/biometric-templates/{template_uuid}/","href":"/management-api/biometric-templates/purge"},{"title":"Bulk Purge Biometric Templates API","sidebarTitle":"Bulk Purge","openapi":"openapi-25.json POST /v3/biometric-templates/delete/","href":"/management-api/biometric-templates/batch-purge"}]},{"group":"Businesses","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"List Businesses API: Vendor KYB Entities","sidebarTitle":"List Businesses","openapi":"openapi-25.json GET /v3/businesses/","href":"/management-api/businesses/list"},{"title":"Create Business API: Vendor KYB Entity","sidebarTitle":"Create Business","openapi":"openapi-25.json POST /v3/businesses/create/","href":"/management-api/businesses/create"},{"title":"Get Business API: Vendor KYB Entity","sidebarTitle":"Get Business","openapi":"openapi-25.json GET /v3/businesses/{vendor_data}/","href":"/management-api/businesses/get"},{"title":"Business Session PDF API","sidebarTitle":"Generate Business Session PDF","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/","href":"/management-api/businesses/generate-session-pdf"},{"title":"Update Business API: Vendor KYB Entity","sidebarTitle":"Update Business","openapi":"openapi-25.json PATCH /v3/businesses/{vendor_data}/","href":"/management-api/businesses/update"},{"title":"Update Business Status API: Block or Flag","sidebarTitle":"Update Business Status","openapi":"openapi-25.json PATCH /v3/businesses/{vendor_data}/update-status/","href":"/management-api/businesses/update-status"},{"title":"Batch Delete Businesses API: KYB Erasure","sidebarTitle":"Batch Delete Businesses","openapi":"openapi-25.json POST /v3/businesses/delete/","href":"/management-api/businesses/delete"}]},{"group":"AML Ongoing Monitoring","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"Toggle AML Monitoring for Users API","sidebarTitle":"Toggle for Users","openapi":"openapi-25.json POST /v3/users/aml-monitoring/","href":"/management-api/aml-monitoring/toggle-users"},{"title":"Toggle AML Monitoring for Businesses API","sidebarTitle":"Toggle for Businesses","openapi":"openapi-25.json POST /v3/businesses/aml-monitoring/","href":"/management-api/aml-monitoring/toggle-businesses"},{"title":"Get AML Monitoring Job API","sidebarTitle":"Get AML Monitoring Job","openapi":"openapi-25.json GET /v3/aml-monitoring/jobs/{job_id}/","href":"/management-api/aml-monitoring/get-job"}]},{"group":"Cases","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/clipboard-check.svg","pages":[{"title":"List Cases API","sidebarTitle":"List Cases","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/management-api/cases/list"},{"title":"Create Case API","sidebarTitle":"Create Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/management-api/cases/create"},{"title":"Get Case API","sidebarTitle":"Get Case","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/get"},{"title":"Update Case API","sidebarTitle":"Update Case","openapi":"openapi-25.json PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/update"},{"title":"Delete Case API","sidebarTitle":"Delete Case","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/delete"},{"title":"Resolve Case API","sidebarTitle":"Resolve Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/","href":"/management-api/cases/resolve"},{"title":"Request Info Case API","sidebarTitle":"Request Info (Awaiting User)","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/request-info/","href":"/management-api/cases/request-info"},{"title":"Transfer Case API","sidebarTitle":"Transfer Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/transfer/","href":"/management-api/cases/transfer"},{"title":"Print Case PDF API","sidebarTitle":"Print Case","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/print/","href":"/management-api/cases/print"},{"title":"Case Analytics API","sidebarTitle":"Case Analytics","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/statistics/","href":"/management-api/cases/statistics"},{"title":"Bulk Update Case Status API","sidebarTitle":"Bulk Update Case Status","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/status/","href":"/management-api/cases/bulk-status"},{"title":"List Case Notes API","sidebarTitle":"List Case Notes","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/management-api/cases/list-notes"},{"title":"Create Case Note API","sidebarTitle":"Create Case Note","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/management-api/cases/create-note"}]},{"group":"Case Blueprints","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"List Case Blueprints API","sidebarTitle":"List Case Blueprints","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/management-api/case-blueprints/list"},{"title":"Create Case Blueprint API","sidebarTitle":"Create Case Blueprint","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/management-api/case-blueprints/create"},{"title":"Draft case blueprint with AI API","sidebarTitle":"Draft with AI","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/ai-draft/","href":"/management-api/case-blueprints/ai-draft"},{"title":"Install Blueprint Presets API","sidebarTitle":"Install Blueprint Presets","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/install/","href":"/management-api/case-blueprints/install-presets"}]},{"group":"Networks","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"List Fraud Networks API","sidebarTitle":"List Networks","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/","href":"/management-api/networks/list"},{"title":"Get Fraud Network API","sidebarTitle":"Get Network","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/","href":"/management-api/networks/get"},{"title":"Add a Tag to a Fraud Network API","sidebarTitle":"Add Network Tag","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/add/","href":"/management-api/networks/add-tag"},{"title":"Remove a Tag from a Fraud Network API","sidebarTitle":"Remove Network Tag","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/","href":"/management-api/networks/remove-tag"},{"title":"Fraud Network Graph API","sidebarTitle":"Get Network Graph","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/","href":"/management-api/networks/graph"},{"title":"List Fraud Network Members API","sidebarTitle":"List Network Members","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/members/","href":"/management-api/networks/members"},{"title":"List Fraud Network Signals API","sidebarTitle":"List Network Signals","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/signals/","href":"/management-api/networks/signals"},{"title":"Fraud Network Timeline API","sidebarTitle":"Get Network Timeline","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/","href":"/management-api/networks/timeline"},{"title":"Fraud Network Map API","sidebarTitle":"Get Network Map","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/map/","href":"/management-api/networks/map"},{"title":"Network Membership Lookup API","sidebarTitle":"Membership Lookup","href":"/management-api/networks/membership-lookup"}]},{"group":"Async reports","pages":[{"title":"List Async Reports API","sidebarTitle":"List reports","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/","href":"/management-api/reports/list"},{"title":"Retrieve Async Report API","sidebarTitle":"Retrieve report","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/","href":"/management-api/reports/retrieve"},{"title":"Retry Async Report API","sidebarTitle":"Retry report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/","href":"/management-api/reports/retry"}]},{"group":"Report Templates","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"List Report Templates API","sidebarTitle":"List Report Templates","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/management-api/report-templates/list"},{"title":"Create Report Template API","sidebarTitle":"Create Report Template","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/management-api/report-templates/create"}]},{"group":"Regulatory Reports","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/search-file.svg","pages":[{"title":"Create FIU Report From Case API","sidebarTitle":"Create Report From Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/","href":"/management-api/regulatory-reports/create-for-case"},{"title":"List FIU Reports API","sidebarTitle":"List Reports","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/","href":"/management-api/regulatory-reports/list"},{"title":"Validate FIU Report API","sidebarTitle":"Validate Report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/","href":"/management-api/regulatory-reports/validate"},{"title":"Finalize FIU Report API","sidebarTitle":"Finalize Report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/","href":"/management-api/regulatory-reports/finalize"},{"title":"Delete FIU Report API","sidebarTitle":"Delete Report","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/","href":"/management-api/regulatory-reports/delete"},{"title":"Get FIU Report Download URL API","sidebarTitle":"Get Report Download URL","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/","href":"/management-api/regulatory-reports/download-url"}]},{"group":"Transactions","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"List Transactions API: KYT Monitoring","sidebarTitle":"List Transactions","description":"Retrieve monitored Didit transactions with risk scores, severity, counterparties, tags, and screening status. Pay-per-call KYT, no contracts.","openapi":"openapi-25.json GET /v3/transactions/","href":"/management-api/transactions/list"},{"title":"Create Transaction API: KYT Submission","sidebarTitle":"Create Transaction","openapi":"openapi-25.json POST /v3/transactions/","href":"/management-api/transactions/create"},{"title":"Batch Delete Transactions API","sidebarTitle":"Batch Delete Transactions","description":"Delete monitored transactions permanently by UUID or clear every transaction in the application. A finalized report blocks the deletion.","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/transactions/delete/","href":"/management-api/transactions/delete"},{"title":"Get Transaction API: KYT Detail","sidebarTitle":"Get Transaction","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/","href":"/management-api/transactions/get"},{"title":"List Transaction Notes API","sidebarTitle":"List Transaction Notes","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/notes/","href":"/management-api/transactions/list-notes"},{"title":"Create Transaction Note API","sidebarTitle":"Create Transaction Note","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/notes/","href":"/management-api/transactions/create-note"},{"title":"List Related Transactions API","sidebarTitle":"List Related Transactions","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/related/","href":"/management-api/transactions/list-related"},{"title":"Transaction PDF Report API","sidebarTitle":"Generate Transaction PDF Report","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/pdf/","href":"/management-api/transactions/generate-pdf"},{"title":"Screen Wallet API: On-demand Crypto AML","sidebarTitle":"Screen Wallet","openapi":"openapi-25.json POST /v3/wallet-screening/","href":"/management-api/transactions/screen-wallet"},{"title":"Wallet Screening PDF Report API","sidebarTitle":"Screen Wallet PDF","openapi":"openapi-25.json POST /v3/wallet-screening/pdf/","href":"/management-api/transactions/screen-wallet-pdf"},{"title":"Mint SDK Transaction Token API: Client-Side KYT","sidebarTitle":"Mint SDK Transaction Token","openapi":"openapi-25.json POST /v3/transactions/sdk-token/","href":"/management-api/transactions/sdk-token"},{"title":"Submit Transaction from an SDK: Client-Side KYT","sidebarTitle":"Submit Transaction (SDK Token)","openapi":"openapi-25.json POST /v1/transactions/","href":"/management-api/transactions/submit-sdk"},{"title":"Get Transaction from an SDK: Client-Side KYT","sidebarTitle":"Get Transaction (SDK Token)","openapi":"openapi-25.json GET /v1/transactions/{transaction_id}/","href":"/management-api/transactions/get-sdk"},{"title":"List Transaction Monitoring Rules API","sidebarTitle":"List Rules","openapi":"openapi-25.json GET /v3/transactions/rules/","href":"/management-api/transactions/rules-list"},{"title":"Create Transaction Monitoring Rule API - KYT Rules","sidebarTitle":"Create Rule","openapi":"openapi-25.json POST /v3/transactions/rules/","href":"/management-api/transactions/rules-create"},{"title":"Get Transaction Monitoring Rule API","sidebarTitle":"Get Rule","openapi":"openapi-25.json GET /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-get"},{"title":"Update Transaction Monitoring Rule API","sidebarTitle":"Update Rule","openapi":"openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-update"},{"title":"Delete Transaction Monitoring Rule API","sidebarTitle":"Delete Rule","openapi":"openapi-25.json DELETE /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-delete"},{"title":"Backtest Transaction Monitoring Rules API","sidebarTitle":"Backtest Rules","openapi":"openapi-25.json POST /v3/transactions/rules/backtest/","href":"/management-api/transactions/rules-backtest"},{"title":"Transaction Monitoring Rule Library API - 150+ Presets","sidebarTitle":"List Rule Library","openapi":"openapi-25.json GET /v3/transactions/rules/library/","href":"/management-api/transactions/rules-library"},{"title":"Install Preset Transaction Monitoring Rules API","sidebarTitle":"Install Library Rules","openapi":"openapi-25.json POST /v3/transactions/rules/install/","href":"/management-api/transactions/rules-install"},{"title":"Uninstall Preset Transaction Monitoring Rules API","sidebarTitle":"Uninstall Library Rules","openapi":"openapi-25.json DELETE /v3/transactions/rules/install/","href":"/management-api/transactions/rules-uninstall"}]},{"group":"Monitoring Events","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"List Monitoring Events API","sidebarTitle":"List Monitoring Events","openapi":"openapi-25.json GET /v3/events/","href":"/management-api/monitoring-events/list"},{"title":"Create Monitoring Event API","sidebarTitle":"Create Monitoring Event","openapi":"openapi-25.json POST /v3/events/","href":"/management-api/monitoring-events/create"},{"title":"Batch Monitoring Events API","sidebarTitle":"Create Monitoring Events in Batch","openapi":"openapi-25.json POST /v3/events/batch/","href":"/management-api/monitoring-events/create-batch"},{"title":"Mint Monitoring SDK Token API","sidebarTitle":"Mint Monitoring SDK Token","openapi":"openapi-25.json POST /v3/events/sdk-token/","href":"/management-api/monitoring-events/sdk-token"},{"title":"Get Monitoring Event API","sidebarTitle":"Get Monitoring Event","openapi":"openapi-25.json GET /v3/events/{event_uuid}/","href":"/management-api/monitoring-events/get"},{"title":"Subject Event Timeline API","sidebarTitle":"Get Subject Event Timeline","openapi":"openapi-25.json GET /v3/events/subjects/{vendor_data}/","href":"/management-api/monitoring-events/subject-timeline"},{"title":"Event Enrichment Metrics API","sidebarTitle":"Get Event Enrichment Metrics","openapi":"openapi-25.json GET /v3/events/enrichment-metrics/","href":"/management-api/monitoring-events/enrichment-metrics"},{"title":"Delete Monitoring Event API","sidebarTitle":"Delete Monitoring Event","openapi":"openapi-25.json DELETE /v3/events/{event_uuid}/delete/","href":"/management-api/monitoring-events/delete"}]},{"group":"Travel Rule","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Get Travel Rule Settings API: VASP Profile","sidebarTitle":"Get Travel Rule Settings","openapi":"openapi-25.json GET /v3/travel-rule/settings/","href":"/management-api/travel-rule/get-settings"},{"title":"Update Travel Rule Settings API: Enable \u0026 Configure","sidebarTitle":"Update Travel Rule Settings","openapi":"openapi-25.json PUT /v3/travel-rule/settings/","href":"/management-api/travel-rule/update-settings"},{"title":"Get Travel Rule Networks API","sidebarTitle":"Get Travel Rule Networks","openapi":"openapi-25.json GET /v3/travel-rule/networks/","href":"/management-api/travel-rule/get-networks"},{"title":"Get Travel Rule Network Questionnaire API","sidebarTitle":"Get Network Questionnaire","openapi":"openapi-25.json GET /v3/travel-rule/networks/questionnaire/","href":"/management-api/travel-rule/get-network-questionnaire"},{"title":"Save Travel Rule Network Questionnaire API","sidebarTitle":"Save Network Questionnaire Answers","openapi":"openapi-25.json PUT /v3/travel-rule/networks/questionnaire/","href":"/management-api/travel-rule/update-network-questionnaire"},{"title":"Submit Travel Rule Network Questionnaire API","sidebarTitle":"Submit Network Questionnaire","openapi":"openapi-25.json POST /v3/travel-rule/networks/questionnaire/submit/","href":"/management-api/travel-rule/submit-network-questionnaire"},{"title":"Request Travel Rule Network Access API","sidebarTitle":"Request a Travel Rule Network","openapi":"openapi-25.json POST /v3/travel-rule/networks/{network}/request/","href":"/management-api/travel-rule/request-network"},{"title":"Confirm the Travel Rule Compliance Email API","sidebarTitle":"Send the Compliance Email Confirmation","openapi":"openapi-25.json POST /v3/travel-rule/settings/compliance-email/confirmation/","href":"/management-api/travel-rule/send-compliance-email-confirmation"},{"title":"List Travel Rule Transfers API","sidebarTitle":"List Travel Rule Transfers","openapi":"openapi-25.json GET /v3/travel-rule/transfers/","href":"/management-api/travel-rule/list-transfers"},{"title":"List Unmatched Travel Rule Deposits API","sidebarTitle":"List Unmatched Deposits","openapi":"openapi-25.json GET /v3/travel-rule/unmatched/","href":"/management-api/travel-rule/list-unmatched-deposits"},{"title":"Match Travel Rule Deposit API: Pair a Message","sidebarTitle":"Match Unmatched Deposit","openapi":"openapi-25.json POST /v3/travel-rule/unmatched/{transaction_uuid}/match/","href":"/management-api/travel-rule/match-unmatched-deposit"},{"title":"Travel Rule Transfer Actions API: Finish, Resend, Update","sidebarTitle":"Finish, Cancel, Resend, or Update a Transfer","openapi":"openapi-25.json PATCH /v3/transactions/{transaction_id}/travel-rule/","href":"/management-api/travel-rule/update-transfer"},{"title":"Create or email a Travel Rule end-user link","sidebarTitle":"Create an end-user link","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/user-link/","href":"/management-api/travel-rule/create-user-link"},{"title":"Confirm Wallet Ownership API: Travel Rule Beneficiary","sidebarTitle":"Confirm or Deny Wallet Ownership","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/ownership/","href":"/management-api/travel-rule/confirm-ownership"},{"title":"List Travel Rule Messages API","sidebarTitle":"List Travel Rule Messages","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/management-api/travel-rule/list-messages"},{"title":"Travel Rule delivery history API","sidebarTitle":"List delivery history","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/deliveries/","href":"/management-api/travel-rule/list-deliveries"},{"title":"Send Travel Rule Message API","sidebarTitle":"Send a Travel Rule Message","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/management-api/travel-rule/create-message"},{"title":"Register Inbound Sunrise Transfer API: Travel Rule","sidebarTitle":"Register Inbound (Sunrise) Transfer","openapi":"openapi-25.json POST /v3/travel-rule/inbound/","href":"/management-api/travel-rule/register-inbound"},{"title":"Trigger Test VASP Inbound Transfer API","sidebarTitle":"Trigger Test VASP Inbound Transfer","openapi":"openapi-25.json POST /v3/travel-rule/test-vasp/inbound/","href":"/management-api/travel-rule/trigger-test-vasp-inbound"},{"title":"VASP Directory Search API: Travel Rule Routes","sidebarTitle":"Search the VASP Directory","openapi":"openapi-25.json GET /v3/travel-rule/vasps/","href":"/management-api/travel-rule/search-vasps"},{"title":"Create a private Travel Rule VASP entry","sidebarTitle":"Create a VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/","href":"/management-api/travel-rule/create-vasp"},{"title":"Get a VASP Directory Entry API: Travel Rule Routes","sidebarTitle":"Get a VASP Directory Entry","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/","href":"/management-api/travel-rule/get-vasp"},{"title":"Get a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Get Your Decision on a VASP","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/get-vasp-decision"},{"title":"Set a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Set Your Decision on a VASP","openapi":"openapi-25.json PUT /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/set-vasp-decision"},{"title":"Clear a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Clear Your Decision on a VASP","openapi":"openapi-25.json DELETE /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/clear-vasp-decision"},{"title":"Get a Counterparty VASP Screening API: Travel Rule","sidebarTitle":"Get a VASP's Entity Screening","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/management-api/travel-rule/get-vasp-screening"},{"title":"Screen a Counterparty VASP API: Sanctions Check","sidebarTitle":"Screen a Counterparty VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/management-api/travel-rule/screen-vasp"},{"title":"List VASP Due-Diligence Questionnaires API","sidebarTitle":"List Due-Diligence Questionnaires with a VASP","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/management-api/travel-rule/list-vasp-questionnaires"},{"title":"Send a VASP Due-Diligence Questionnaire API","sidebarTitle":"Send a Due-Diligence Questionnaire to a VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/management-api/travel-rule/send-vasp-questionnaire"},{"title":"List Counterparty Contacts API - Travel Rule Email Rail","sidebarTitle":"List Counterparty Contacts","openapi":"openapi-25.json GET /v3/travel-rule/counterparty-contacts/","href":"/management-api/travel-rule/list-counterparty-contacts"},{"title":"Add a Counterparty Contact API - Travel Rule Email Rail","sidebarTitle":"Add a Counterparty Contact","openapi":"openapi-25.json POST /v3/travel-rule/counterparty-contacts/","href":"/management-api/travel-rule/create-counterparty-contact"},{"title":"Delete a Counterparty Contact API - Travel Rule","sidebarTitle":"Delete a Counterparty Contact","openapi":"openapi-25.json DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/","href":"/management-api/travel-rule/delete-counterparty-contact"},{"title":"List Wallet Addresses API: Travel Rule Address Book","sidebarTitle":"List Wallet Addresses","openapi":"openapi-25.json GET /v3/travel-rule/wallet-addresses/","href":"/management-api/travel-rule/list-wallet-addresses"},{"title":"Register Wallet Address API: Travel Rule Address Book","sidebarTitle":"Register Wallet Address","openapi":"openapi-25.json POST /v3/travel-rule/wallet-addresses/","href":"/management-api/travel-rule/create-wallet-address"},{"title":"Import Wallet Addresses API: Travel Rule Address Book","sidebarTitle":"Import Wallet Addresses","openapi":"openapi-25.json POST /v3/travel-rule/wallet-addresses/import/","href":"/management-api/travel-rule/import-wallet-addresses"},{"title":"Update Wallet Address API: Travel Rule Address Book","sidebarTitle":"Update Wallet Address","openapi":"openapi-25.json PATCH /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/management-api/travel-rule/update-wallet-address"},{"title":"Delete Wallet Address API: Travel Rule Address Book","sidebarTitle":"Delete Wallet Address","openapi":"openapi-25.json DELETE /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/management-api/travel-rule/delete-wallet-address"},{"title":"List Screenshot Wallet Proofs API - Travel Rule Review","sidebarTitle":"List Wallet Proofs to Review","openapi":"openapi-25.json GET /v3/travel-rule/wallet-proofs/","href":"/management-api/travel-rule/list-wallet-proofs"},{"title":"Approve or Reject a Screenshot Wallet Proof API","sidebarTitle":"Decide a Wallet Proof","openapi":"openapi-25.json POST /v3/travel-rule/wallet-proofs/{proof_uuid}/decision/","href":"/management-api/travel-rule/decide-wallet-proof"},{"title":"Mint Wallet-Ownership Widget API: Proof of Control","sidebarTitle":"Mint Wallet-Ownership Widget Session","openapi":"openapi-25.json POST /v3/travel-rule/widget-session/","href":"/management-api/travel-rule/create-widget-session"},{"title":"Get Wallet-Ownership Widget Context API","sidebarTitle":"Get Widget Context","openapi":"openapi-25.json GET /v3/travel-rule/widget/{token}/","href":"/management-api/travel-rule/get-widget-context"},{"title":"Start a Wallet-Ownership Proof API - Travel Rule Widget","sidebarTitle":"Start a Widget Proof","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/","href":"/management-api/travel-rule/create-widget-proof"},{"title":"Submit Wallet-Ownership Proof Evidence API - Travel Rule","sidebarTitle":"Submit Widget Proof Evidence","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/{proof_id}/verify/","href":"/management-api/travel-rule/verify-widget-proof"},{"title":"Widget VASP Selection API: Travel Rule Counterparty","sidebarTitle":"Pick the Counterparty VASP in the Wallet Widget","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/vasps/","href":"/management-api/travel-rule/select-widget-vasp"},{"title":"Widget VASP Picker API: Travel Rule Directory Search","sidebarTitle":"Search VASPs from the Wallet Widget","openapi":"openapi-25.json GET /v3/travel-rule/widget/{token}/vasps/","href":"/management-api/travel-rule/search-widget-vasps"},{"title":"Get Email Pickup Info API: Travel Rule Email Rail","sidebarTitle":"Get Email Pickup Info","openapi":"openapi-25.json GET /v3/travel-rule/pickup/{token}/","href":"/management-api/travel-rule/get-pickup"},{"title":"Respond to Email Pickup API: Travel Rule Email Rail","sidebarTitle":"Respond to Email Pickup","openapi":"openapi-25.json POST /v3/travel-rule/pickup/{token}/respond/","href":"/management-api/travel-rule/respond-pickup"},{"title":"List Pickup Messages API - Travel Rule Email Rail","sidebarTitle":"List Pickup Messages","openapi":"openapi-25.json GET /v3/travel-rule/pickup/{token}/messages/","href":"/management-api/travel-rule/list-pickup-messages"},{"title":"Reply in Pickup Portal API - Travel Rule Email Rail","sidebarTitle":"Reply in the Pickup Portal","openapi":"openapi-25.json POST /v3/travel-rule/pickup/{token}/messages/","href":"/management-api/travel-rule/create-pickup-message"},{"title":"Get Join Invitation API - Travel Rule Free Join","sidebarTitle":"Get Join Invitation","openapi":"openapi-25.json GET /v3/travel-rule/join/{token}/","href":"/management-api/travel-rule/get-join-invitation"},{"title":"Register a Free Travel Rule Account API","sidebarTitle":"Register a Free Travel Rule Account","openapi":"openapi-25.json POST /v3/travel-rule/join/{token}/","href":"/management-api/travel-rule/register-join"},{"title":"Verify a Free Travel Rule Account API","sidebarTitle":"Verify a Free Travel Rule Account","openapi":"openapi-25.json POST /v3/travel-rule/join/{token}/verify/","href":"/management-api/travel-rule/verify-join"},{"title":"Get Free Workspace API - Travel Rule Free Join","sidebarTitle":"Get Free Workspace","openapi":"openapi-25.json GET /v3/travel-rule/workspace/","href":"/management-api/travel-rule/get-workspace"},{"title":"Claim a Directory Entry API - Travel Rule Free Join","sidebarTitle":"Claim a Directory Entry","openapi":"openapi-25.json POST /v3/travel-rule/workspace/claim/","href":"/management-api/travel-rule/claim-workspace"},{"title":"Send Domain Code API - Travel Rule Free Join","sidebarTitle":"Send Domain Code","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/code/","href":"/management-api/travel-rule/send-workspace-domain-code"},{"title":"Confirm Domain Code API - Travel Rule Free Join","sidebarTitle":"Confirm Domain Code","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/confirm/","href":"/management-api/travel-rule/confirm-workspace-domain"},{"title":"Verify Domain by DNS API - Travel Rule Free Join","sidebarTitle":"Verify Domain by DNS","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/dns/","href":"/management-api/travel-rule/verify-workspace-domain-dns"},{"title":"Enable Outbound Billing API - Travel Rule Free Join","sidebarTitle":"Enable Outbound Billing","openapi":"openapi-25.json POST /v3/travel-rule/workspace/billing/","href":"/management-api/travel-rule/enable-workspace-billing"}]},{"group":"Session Operations","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/play.svg","pages":[{"title":"Batch Delete Sessions API: KYC Cleanup","sidebarTitle":"Batch Delete Sessions","openapi":"openapi-25.json POST /v3/sessions/delete/","href":"/management-api/sessions/batch-delete"},{"title":"Get Session Deletion Job API","sidebarTitle":"Get Session Deletion Job","openapi":"openapi-25.json GET /v3/sessions/delete/{job_id}/","href":"/management-api/sessions/get-deletion-job"},{"title":"List Session Reviews API: KYC Audit Log","sidebarTitle":"List Session Reviews","openapi":"openapi-25.json GET /v3/sessions/{session_id}/reviews/","href":"/management-api/sessions/list-reviews"},{"title":"Create Session Review API: Manual KYC","sidebarTitle":"Create Session Review","openapi":"openapi-25.json POST /v3/sessions/{session_id}/reviews/","href":"/management-api/sessions/create-review"},{"title":"List Session Events API","sidebarTitle":"List Session Events","openapi":"openapi-25.json GET /v3/session/{sessionId}/events/","href":"/management-api/sessions/list-events"},{"title":"List Session Webhook Deliveries API","sidebarTitle":"List Session Webhook Deliveries","openapi":"openapi-25.json GET /v3/session/{sessionId}/webhooks/","href":"/management-api/sessions/list-webhooks"},{"title":"Get Session Webhook Delivery API","sidebarTitle":"Get Session Webhook Delivery","openapi":"openapi-25.json GET /v3/session/{sessionId}/webhook/{webhook_uuid}","href":"/management-api/sessions/get-webhook"},{"title":"Resend Session Webhook Delivery API","sidebarTitle":"Resend Session Webhook Delivery","openapi":"openapi-25.json POST /v3/session/{sessionId}/webhook/{webhook_uuid}/resend","href":"/management-api/sessions/resend-webhook"},{"title":"List AML Screening History API","sidebarTitle":"List AML Screening History","openapi":"openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/","href":"/management-api/sessions/aml-screening-history"},{"title":"Export AML Screening History as CSV API","sidebarTitle":"Export AML Screening History","openapi":"openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/export/","href":"/management-api/sessions/export-aml-screening-history"}]},{"group":"Customization","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"Get Branding Customization API","sidebarTitle":"Get Branding","openapi":"openapi-25.json GET /v3/customization/","href":"/management-api/customization/get"},{"title":"Update Branding Customization API","sidebarTitle":"Update Branding","openapi":"openapi-25.json PATCH /v3/customization/","href":"/management-api/customization/update"}]},{"group":"Webhook","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"List Webhook Destinations API","sidebarTitle":"List Webhook Destinations","openapi":"openapi-25.json GET /v3/webhook/destinations/","href":"/management-api/webhook/list-destinations"},{"title":"Create Webhook Destination API","sidebarTitle":"Create Webhook Destination","openapi":"openapi-25.json POST /v3/webhook/destinations/","href":"/management-api/webhook/create-destination"},{"title":"Retrieve a Webhook Destination: Management API","sidebarTitle":"Get Webhook Destination","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/get-destination"},{"title":"Update Webhook Destination API","sidebarTitle":"Update Webhook Destination","openapi":"openapi-25.json PATCH /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/update-destination"},{"title":"Delete Webhook Destination API","sidebarTitle":"Delete Webhook Destination","openapi":"openapi-25.json DELETE /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/delete-destination"},{"title":"Get Webhook Configuration API","sidebarTitle":"Get Webhook Configuration","openapi":"openapi-25.json GET /v3/webhook/","href":"/management-api/webhook/get-config"},{"title":"Update Webhook Configuration API","sidebarTitle":"Update Webhook Configuration","openapi":"openapi-25.json PATCH /v3/webhook/","href":"/management-api/webhook/update-config"},{"title":"Webhook Destination Analytics API","sidebarTitle":"Get Webhook Destination Analytics","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/analytics/","href":"/management-api/webhook/destination-analytics"},{"title":"Webhook Destination Failure Activity API","sidebarTitle":"List destination activity","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/","href":"/management-api/webhook/destination-activity"},{"title":"List Webhook Deliveries API","sidebarTitle":"List Webhook Destination Deliveries","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/","href":"/management-api/webhook/list-deliveries"},{"title":"Get Webhook Delivery API","sidebarTitle":"Get Webhook Destination Delivery","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/","href":"/management-api/webhook/get-delivery"},{"title":"Resend Webhook Delivery API","sidebarTitle":"Resend Webhook Destination Delivery","openapi":"openapi-25.json POST /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/resend/","href":"/management-api/webhook/resend-delivery"}]},{"group":"Billing","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"Get Credit Balance API: KYC Billing","sidebarTitle":"Get Credit Balance","openapi":"openapi-25.json GET /v3/billing/balance/","href":"/management-api/billing/balance"},{"title":"Top Up Credits API","sidebarTitle":"Top Up Credits","openapi":"openapi-25.json POST /v3/billing/top-up/","href":"/management-api/billing/top-up"}]},{"group":"Analytics","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Application Analytics API","sidebarTitle":"Get Application Analytics","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/","href":"/management-api/analytics/get"},{"title":"Today's Verifications by Hour API","sidebarTitle":"Get Today's Verifications by Hour","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/","href":"/management-api/analytics/today-by-hour"}]},{"group":"Management API Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/info.svg","pages":[{"title":"Management API v3: Workflows \u0026 Billing","sidebarTitle":"Management API","href":"/sessions-api/management-api"}]},{"group":"Auth API (Programmatic)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/key.svg","pages":[{"title":"Auth API: Programmatic Registration","sidebarTitle":"Register Account","openapi":"openapi-auth.json POST /programmatic/register/","href":"/auth-api/register"},{"title":"Verify Email API: Get Didit API Credentials","sidebarTitle":"Verify Email","openapi":"openapi-auth.json POST /programmatic/verify-email/","href":"/auth-api/verify-email"},{"title":"Programmatic Login API: Headless Auth Tokens","sidebarTitle":"Login","openapi":"openapi-auth.json POST /programmatic/login/","href":"/auth-api/login"},{"title":"Get Credentials API: Fetch client_id \u0026 api_key","sidebarTitle":"Get Credentials","openapi":"openapi-auth.json GET /organizations/me/{org_id}/applications/{app_id}/","href":"/auth-api/get-credentials"},{"title":"Create Application API: Programmatic Apps","sidebarTitle":"Create Application","openapi":"openapi-auth.json POST /organizations/me/{org_id}/applications/","href":"/auth-api/create-application"},{"title":"Update Application API: Manage Customer Apps","sidebarTitle":"Update Application","openapi":"openapi-auth.json PATCH /organizations/me/{org_id}/applications/{app_id}/","href":"/auth-api/update-application"}]},{"group":"Identity \u0026 Documents","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"ID Verification API: Document OCR \u0026 Authenticity","sidebarTitle":"ID Verification API","openapi":"openapi-25.json POST /v3/id-verification/","href":"/standalone-apis/id-verification"},{"title":"Proof of Address API: POA Verification \u0026 OCR","sidebarTitle":"Proof of Address API","openapi":"openapi-25.json POST /v3/poa/","href":"/standalone-apis/proof-of-address"},{"title":"Address Validation API: Verify and Normalise Addresses","sidebarTitle":"Address Validation","openapi":"openapi-25.json POST /v3/address-validation/","href":"/standalone-apis/address-validation"}]},{"group":"Digital ID wallets","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"Digital ID Wallet Verification APIs","sidebarTitle":"Digital ID wallet APIs","href":"/standalone-apis/digital-id-wallets"},{"title":"Digital ID Wallet API Catalog","sidebarTitle":"List digital ID wallets","openapi":"openapi-25.json GET /v3/id-verification/wallets/","href":"/standalone-apis/digital-id-wallet-catalog"},{"group":"Start verification","pages":[{"title":"Bank iD CONNECT Verification API","sidebarTitle":"Bank iD CONNECT","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-cz/","href":"/api-reference/digital-id-wallets/bankid-cz"},{"title":"BankID Sweden Verification API","sidebarTitle":"BankID Sweden","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-se/","href":"/api-reference/digital-id-wallets/bankid-se"},{"title":"Finnish Trust Network Verification API","sidebarTitle":"Finnish Trust Network","openapi":"openapi-25.json POST /v3/id-verification/wallets/ftn/","href":"/api-reference/digital-id-wallets/ftn"},{"title":"Google Wallet ID Verification API","sidebarTitle":"Google Wallet ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/google-wallet/","href":"/api-reference/digital-id-wallets/google-wallet"},{"title":"MitID personal Verification API","sidebarTitle":"MitID personal","openapi":"openapi-25.json POST /v3/id-verification/wallets/mitid/","href":"/api-reference/digital-id-wallets/mitid"},{"title":"Mobile-ID Verification API","sidebarTitle":"Mobile-ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/mobile-id/","href":"/api-reference/digital-id-wallets/mobile-id"},{"title":"Smart-ID Verification API","sidebarTitle":"Smart-ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/smart-id/","href":"/api-reference/digital-id-wallets/smart-id"},{"title":"iDIN full identification Verification API","sidebarTitle":"iDIN full identification","openapi":"openapi-25.json POST /v3/id-verification/wallets/idin/","href":"/api-reference/digital-id-wallets/idin"},{"title":"Auðkenni Verification API","sidebarTitle":"Auðkenni","openapi":"openapi-25.json POST /v3/id-verification/wallets/audkenni/","href":"/api-reference/digital-id-wallets/audkenni"},{"title":"BankID Norway Verification API","sidebarTitle":"BankID Norway","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-no/","href":"/api-reference/digital-id-wallets/bankid-no"},{"title":"Buypass ID Verification API","sidebarTitle":"Buypass ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/buypass/","href":"/api-reference/digital-id-wallets/buypass"},{"title":"ConnectID Verification API","sidebarTitle":"ConnectID","openapi":"openapi-25.json POST /v3/id-verification/wallets/connectid/","href":"/api-reference/digital-id-wallets/connectid"},{"title":"Diia Verification API","sidebarTitle":"Diia","openapi":"openapi-25.json POST /v3/id-verification/wallets/diia/","href":"/api-reference/digital-id-wallets/diia"},{"title":"EUDI Wallet Verification API","sidebarTitle":"EUDI Wallet","openapi":"openapi-25.json POST /v3/id-verification/wallets/eudi/","href":"/api-reference/digital-id-wallets/eudi"},{"title":"Estonian ID-card Verification API","sidebarTitle":"Estonian ID-card","openapi":"openapi-25.json POST /v3/id-verification/wallets/idcard-ee/","href":"/api-reference/digital-id-wallets/idcard-ee"},{"title":"FranceConnect Verification API","sidebarTitle":"FranceConnect","openapi":"openapi-25.json POST /v3/id-verification/wallets/franceconnect/","href":"/api-reference/digital-id-wallets/franceconnect"},{"title":"Freja eID Verification API","sidebarTitle":"Freja eID","openapi":"openapi-25.json POST /v3/id-verification/wallets/frejaid/","href":"/api-reference/digital-id-wallets/frejaid"},{"title":"GOV.UK Wallet Verification API","sidebarTitle":"GOV.UK Wallet","openapi":"openapi-25.json POST /v3/id-verification/wallets/govuk-wallet/","href":"/api-reference/digital-id-wallets/govuk-wallet"},{"title":"MojeID Verification API","sidebarTitle":"MojeID","openapi":"openapi-25.json POST /v3/id-verification/wallets/mojeid/","href":"/api-reference/digital-id-wallets/mojeid"},{"title":"OneID Verification API","sidebarTitle":"OneID","openapi":"openapi-25.json POST /v3/id-verification/wallets/oneid/","href":"/api-reference/digital-id-wallets/oneid"},{"title":"Personalausweis Profile 2 Verification API","sidebarTitle":"Personalausweis Profile 2","openapi":"openapi-25.json POST /v3/id-verification/wallets/personalausweis/","href":"/api-reference/digital-id-wallets/personalausweis"},{"title":"UAE PASS Verification API","sidebarTitle":"UAE PASS","openapi":"openapi-25.json POST /v3/id-verification/wallets/uae-pass/","href":"/api-reference/digital-id-wallets/uae-pass"},{"title":"Vipps Plus Verification API","sidebarTitle":"Vipps Plus","openapi":"openapi-25.json POST /v3/id-verification/wallets/vipps/","href":"/api-reference/digital-id-wallets/vipps"},{"title":"eParaksts mobile Verification API","sidebarTitle":"eParaksts mobile","openapi":"openapi-25.json POST /v3/id-verification/wallets/eparaksts-mobile/","href":"/api-reference/digital-id-wallets/eparaksts-mobile"},{"title":"gov.br Verification API","sidebarTitle":"gov.br","openapi":"openapi-25.json POST /v3/id-verification/wallets/govbr/","href":"/api-reference/digital-id-wallets/govbr"},{"title":"itsme Verification API","sidebarTitle":"itsme","openapi":"openapi-25.json POST /v3/id-verification/wallets/itsme/","href":"/api-reference/digital-id-wallets/itsme"}]},{"title":"Get Digital ID Wallet Verification Result","sidebarTitle":"Get wallet verification","openapi":"openapi-25.json GET /v3/id-verification/wallets/verifications/{request_id}/","href":"/standalone-apis/digital-id-wallet-result"},{"title":"Submit a Digital Credentials Wallet Response","sidebarTitle":"Submit wallet response","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/response/","href":"/standalone-apis/digital-id-wallet-response"},{"title":"Poll Smart-ID and Mobile-ID Authentication","sidebarTitle":"Poll wallet verification","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/poll/","href":"/standalone-apis/digital-id-wallet-poll"},{"title":"Cancel Digital ID Wallet Verification","sidebarTitle":"Cancel wallet verification","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/cancel/","href":"/standalone-apis/digital-id-wallet-cancel"}]},{"group":"Document AI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/document-ai.svg","pages":[{"title":"Document AI API: Custom Document Data Extraction","sidebarTitle":"Document AI API","openapi":"openapi-25.json POST /v3/document-ai/","href":"/standalone-apis/document-ai"}]},{"group":"Database Validation API","pages":[{"title":"Database Validation API: National ID Match","sidebarTitle":"Database Validation API","openapi":"openapi-25.json POST /v3/database-validation/","href":"/standalone-apis/database-validation"}]},{"group":"Database Validation","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/driver-2.svg","pages":[{"group":"🇦🇷 Argentina","pages":[{"title":"Argentina - DNI data verification API: Data Match","sidebarTitle":"Argentina - DNI data verification (RENAPER, no selfie)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/renaper-data"},{"title":"Argentina - DNI verification (RENAPER) API","sidebarTitle":"Argentina - DNI verification (RENAPER)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/renaper"},{"title":"Argentina Citizens (AFIP) Verification API","sidebarTitle":"Argentina Citizens (AFIP)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/citizens"},{"title":"Argentina Credit Bureau Verification API: ID Match","sidebarTitle":"Argentina Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/credit-bureau"}]},{"group":"🇦🇺 Australia","pages":[{"title":"Australia - DVS - Birth Certificate Verification API","sidebarTitle":"Australia - DVS - Birth Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/birth-certificate"},{"title":"Australia - DVS - Centrelink Card Verification API","sidebarTitle":"Australia - DVS - Centrelink Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/centrelink-card"},{"title":"Australia - DVS - ImmiCard Verification API","sidebarTitle":"Australia - DVS - ImmiCard","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/immicard"},{"title":"Australia - DVS - Travel Document Verification API","sidebarTitle":"Australia - DVS - Travel Document","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/travel-document"},{"title":"Australia - DVS – Change of Name Certificate API","sidebarTitle":"Australia - DVS – Change of Name Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/change-of-name-certificate"},{"title":"Australia - DVS – Citizenship Certificate API","sidebarTitle":"Australia - DVS – Citizenship Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/citizenship-certificate"},{"title":"Australia - DVS – Marriage Certificate API","sidebarTitle":"Australia - DVS – Marriage Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/marriage-certificate"},{"title":"Australia Credit Bureau Verification API: ID Match","sidebarTitle":"Australia Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/credit-bureau"},{"title":"Australia Death Check (BDM) API: Real-Time Lookup","sidebarTitle":"Australia Death Check (BDM)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/death-check"},{"title":"Australia Electoral Roll Verification API: ID Match","sidebarTitle":"Australia Electoral Roll","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/electoral-roll"},{"title":"Australia Superannuation \u0026 Payroll Verification API","sidebarTitle":"Australia Superannuation \u0026 Payroll","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/superannuation-payroll"},{"title":"Australia VEVO Verification API: Real-Time Lookup","sidebarTitle":"Australia VEVO","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/vevo"},{"title":"DVS - Australia Driver Licence Verification API","sidebarTitle":"DVS - Australia Driver Licence","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/driver-licence"},{"title":"DVS - Australia Medicare Card Verification API","sidebarTitle":"DVS - Australia Medicare Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/medicare-card"},{"title":"DVS - Australia Passport Verification API: ID Match","sidebarTitle":"DVS - Australia Passport","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/passport"},{"title":"DVS - Australia Visa Verification API: Data Match","sidebarTitle":"DVS - Australia Visa","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/visa"}]},{"group":"🇦🇹 Austria","pages":[{"title":"Austria Credit Bureau Verification API: Data Match","sidebarTitle":"Austria Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/austria/credit-bureau"}]},{"group":"🇧🇴 Bolivia","pages":[{"title":"Bolivia - CI verification API: Real-Time ID Lookup","sidebarTitle":"Bolivia - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/bolivia/cedula"}]},{"group":"🇧🇷 Brazil","pages":[{"title":"BRA - Unico IDCloud (CPF + selfie) Verification API","sidebarTitle":"BRA - Unico IDCloud (CPF + selfie)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/unico-idcloud"},{"title":"Brazil - CNH QR code + face match (Datavalid) API","sidebarTitle":"Brazil - CNH QR code + face match (Datavalid)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cnh-facial-qrcode"},{"title":"Brazil - CPF + face match (Datavalid) API: ID Match","sidebarTitle":"Brazil - CPF + face match (Datavalid)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cpf-facial"},{"title":"Brazil - CPF status check API: Real-Time ID Lookup","sidebarTitle":"Brazil - CPF status check","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cpf"},{"title":"Brazil - Company Partners and Directors (QSA) API","sidebarTitle":"Brazil - Company Partners and Directors (QSA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/company-directors"},{"title":"Brazil - Company Registry Lookup (CNPJ) API","sidebarTitle":"Brazil - Company Registry Lookup (CNPJ)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/company-registry"},{"title":"Brazil - Death Check (CPF) API: Real-Time ID Lookup","sidebarTitle":"Brazil - Death Check (CPF)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/death-check"},{"title":"Brazil - Federal Criminal Record Verification API","sidebarTitle":"Brazil - Federal Criminal Record (Polícia Federal)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/antecedentes-criminais-pf"},{"title":"Brazil Residential Verification API: Identity Match","sidebarTitle":"Brazil Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/residential"},{"title":"Brazil Tax Registration (CPF/CNPJ) Verification API","sidebarTitle":"Brazil Tax Registration (CPF/CNPJ)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/tax-registration"}]},{"group":"🇰🇭 Cambodia","pages":[{"title":"Cambodia National ID Verification API: Data Match","sidebarTitle":"Cambodia National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/cambodia/national-id"}]},{"group":"🇨🇦 Canada","pages":[{"title":"Canada Credit Bureau (FINTRAC) Verification API","sidebarTitle":"Canada Credit Bureau (FINTRAC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/credit-bureau-fintrac"},{"title":"Canada Credit Bureau 2 (Non-FINTRAC) API: ID Match","sidebarTitle":"Canada Credit Bureau 2 (Non-FINTRAC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/credit-bureau-2-non-fintrac"},{"title":"Canada Residential Verification API: Identity Match","sidebarTitle":"Canada Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/residential"}]},{"group":"🇨🇱 Chile","pages":[{"title":"Chile - RUT verification API: Real-Time ID Lookup","sidebarTitle":"Chile - RUT verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/chile/rut"}]},{"group":"🇨🇳 China","pages":[{"title":"China Bank Card Verification API: Real-Time Lookup","sidebarTitle":"China Bank Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/bank-card"},{"title":"China National ID Verification API: Identity Lookup","sidebarTitle":"China National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/national-id"},{"title":"China Passport Verification API: Real-Time Lookup","sidebarTitle":"China Passport Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/passport-verification"},{"title":"China Phone Verification API: Real-Time ID Lookup","sidebarTitle":"China Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/phone"}]},{"group":"🇨🇴 Colombia","pages":[{"title":"Colombia - Cédula verification API: Identity Lookup","sidebarTitle":"Colombia - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/colombia/cedula"},{"title":"Colombia - Migración Colombia foreigner status API","sidebarTitle":"Colombia - Migración Colombia foreigner status","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/colombia/migracion"}]},{"group":"🇨🇷 Costa Rica","pages":[{"title":"Costa Rica - Cédula verification API: Data Match","sidebarTitle":"Costa Rica - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/costa-rica/cedula"}]},{"group":"🇩🇰 Denmark","pages":[{"title":"Denmark Consumer 2 Verification API: Identity Match","sidebarTitle":"Denmark Consumer 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/denmark/consumer-2"},{"title":"Denmark National ID Verification API: Data Match","sidebarTitle":"Denmark National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/denmark/national-id"}]},{"group":"🇩🇴 Dominican Republic","pages":[{"title":"Dominican Republic - Cédula verification API","sidebarTitle":"Dominican Republic - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/dominican-republic/cedula"}]},{"group":"🇪🇨 Ecuador","pages":[{"title":"Ecuador - Cédula verification API: Real-Time Lookup","sidebarTitle":"Ecuador - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/ecuador/cedula"}]},{"group":"🇸🇻 El Salvador","pages":[{"title":"El Salvador - DUI verification API: Identity Lookup","sidebarTitle":"El Salvador - DUI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/el-salvador/dui"}]},{"group":"🇫🇮 Finland","pages":[{"title":"Finland Consumer 2 Verification API: Identity Match","sidebarTitle":"Finland Consumer 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/finland/consumer-2"},{"title":"Finland National ID Verification API: Data Match","sidebarTitle":"Finland National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/finland/national-id"}]},{"group":"🇫🇷 France","pages":[{"title":"France Phone Verification API: Real-Time ID Lookup","sidebarTitle":"France Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/phone"},{"title":"France Residential Verification API: Identity Match","sidebarTitle":"France Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/residential"},{"title":"France Utility Verification API: Real-Time Lookup","sidebarTitle":"France Utility","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/utility"}]},{"group":"🇩🇪 Germany","pages":[{"title":"Germany Credit Bureau Verification API: Data Match","sidebarTitle":"Germany Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/germany/credit-bureau"},{"title":"Germany Phone 2 Verification API: Real-Time Lookup","sidebarTitle":"Germany Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/germany/phone-2"}]},{"group":"🌐 Global","pages":[{"title":"Global - Core Intelligence Service Verification API","sidebarTitle":"Global - Core Intelligence Service","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/global/intelligence-service"},{"title":"Global - Sim Swap Verification API: Telco Match","sidebarTitle":"Global - Sim Swap","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/global/swap"}]},{"group":"🇬🇹 Guatemala","pages":[{"title":"Guatemala - DPI + face match (RENAP) API: ID Match","sidebarTitle":"Guatemala - DPI + face match (RENAP)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/guatemala/dpi-facial"},{"title":"Guatemala - DPI verification API: Real-Time Lookup","sidebarTitle":"Guatemala - DPI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/guatemala/dpi"}]},{"group":"🇭🇳 Honduras","pages":[{"title":"Honduras - DNI verification API: Real-Time Lookup","sidebarTitle":"Honduras - DNI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/honduras/dni"}]},{"group":"🇮🇳 India","pages":[{"title":"India Aadhaar (UIDAI) Verification API: Data Match","sidebarTitle":"India Aadhaar (UIDAI)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/aadhaar"},{"title":"India Drivers Licence (RTO) Verification API","sidebarTitle":"India Drivers Licence (RTO)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/drivers-licence"},{"title":"India EPIC (Voter's Registration) (ECI) API","sidebarTitle":"India EPIC (Voter's Registration) (ECI)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/epic-voter-s-registration"},{"title":"India PAN (Permanent Account Number) (ITD) API","sidebarTitle":"India PAN (Permanent Account Number) (ITD)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/pan-permanent-account-number"}]},{"group":"🇮🇩 Indonesia","pages":[{"title":"Indonesia Residential Identity Card Verification API","sidebarTitle":"Indonesia Residential Identity Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/indonesia/residential-identity-card"}]},{"group":"🇮🇹 Italy","pages":[{"title":"Italy Credit Bureau Verification API: Header Match","sidebarTitle":"Italy Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/italy/credit-bureau"},{"title":"Italy Residential Verification API: Identity Lookup","sidebarTitle":"Italy Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/italy/residential"}]},{"group":"🇰🇪 Kenya","pages":[{"title":"Kenya National ID Verification API: Identity Lookup","sidebarTitle":"Kenya National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/kenya/national-id"}]},{"group":"🇲🇾 Malaysia","pages":[{"title":"Malaysia National ID Verification API: Data Match","sidebarTitle":"Malaysia National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/malaysia/national-id"}]},{"group":"🇲🇽 Mexico","pages":[{"title":"Mexico - CURP verification API: Real-Time ID Lookup","sidebarTitle":"Mexico - CURP verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/mexico/curp"},{"title":"Mexico - INE credential validity verification API","sidebarTitle":"Mexico - INE credential validity verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/mexico/ine-vigencia"}]},{"group":"🇳🇱 Netherlands","pages":[{"title":"Netherlands Residential Verification API: ID Match","sidebarTitle":"Netherlands Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/netherlands/residential"}]},{"group":"🇳🇿 New Zealand","pages":[{"title":"DIA - New Zealand Births Verification API: ID Match","sidebarTitle":"DIA - New Zealand Births","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/births"},{"title":"DIA - New Zealand Citizenship Verification API","sidebarTitle":"DIA - New Zealand Citizenship","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/citizenship"},{"title":"DIA - New Zealand Passport Verification API","sidebarTitle":"DIA - New Zealand Passport","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/passport"},{"title":"New Zealand Death Check (BDM) API: Real-Time Lookup","sidebarTitle":"New Zealand Death Check (BDM)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/death-check"},{"title":"New Zealand Drivers Licence (NZTA) Verification API","sidebarTitle":"New Zealand Drivers Licence (NZTA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/drivers-licence"}]},{"group":"🇳🇬 Nigeria","pages":[{"title":"Nigeria Bank Verification Number (BVN) API","sidebarTitle":"Nigeria Bank Verification Number (BVN)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/bank-verification-number"},{"title":"Nigeria Driver's Licence (FRSC) Verification API","sidebarTitle":"Nigeria Driver's Licence (FRSC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/drivers-license"},{"title":"Nigeria International Passport (NIS) API: ID Match","sidebarTitle":"Nigeria International Passport (NIS)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/passport"},{"title":"Nigeria National ID (NIMC) Verification API","sidebarTitle":"Nigeria National ID (NIMC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/national-id"},{"title":"Nigeria National ID + Selfie (NIMC) Verification API","sidebarTitle":"Nigeria National ID + Selfie (NIMC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/national-id-facial"}]},{"group":"🇳🇴 Norway","pages":[{"title":"Norway Residential Verification API: Identity Match","sidebarTitle":"Norway Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/norway/residential"}]},{"group":"🇵🇦 Panama","pages":[{"title":"Panama - Cédula with biometric face-match API","sidebarTitle":"Panama - Cédula with biometric face-match (SIB Plus, elevated tier)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/panama/sib-plus"},{"title":"Panama - Cédula with biometric face-match (SIB) API","sidebarTitle":"Panama - Cédula with biometric face-match (SIB)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/panama/sib"}]},{"group":"🇵🇾 Paraguay","pages":[{"title":"Paraguay - CI verification API: Real-Time ID Lookup","sidebarTitle":"Paraguay - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/paraguay/cedula"}]},{"group":"🇵🇪 Peru","pages":[{"title":"Peru - DNI verification API: Real-Time ID Lookup","sidebarTitle":"Peru - DNI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/peru/dni"},{"title":"Peru Tax Registration (SUNAT) Verification API","sidebarTitle":"Peru Tax Registration (SUNAT)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/peru/tax-registration"}]},{"group":"🇵🇭 Philippines","pages":[{"title":"Philippines Residential Verification API: ID Match","sidebarTitle":"Philippines Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/philippines/residential"}]},{"group":"🇸🇬 Singapore","pages":[{"title":"Singapore Credit Bureau Verification API: ID Match","sidebarTitle":"Singapore Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/singapore/credit-bureau"},{"title":"Singapore Utility Verification API: Identity Lookup","sidebarTitle":"Singapore Utility","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/singapore/utility"}]},{"group":"🇿🇦 South Africa","pages":[{"title":"South Africa - Bank Account Holder Verification API","sidebarTitle":"South Africa - Bank Account Holder Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/bank-account-holder"},{"title":"South Africa - Company Directors Lookup API","sidebarTitle":"South Africa - Company Directors Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/company-directors"},{"title":"South Africa - Company Registry Lookup API","sidebarTitle":"South Africa - Company Registry Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/company-registry"},{"title":"South Africa - Contactability Lookup API: ID Match","sidebarTitle":"South Africa - Contactability Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/contactability"},{"title":"South Africa - Criminal Screening by Face API","sidebarTitle":"South Africa - Criminal Screening by Face","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/criminal-face-screening"},{"title":"South Africa - DHA Fingerprint Match API: ID Match","sidebarTitle":"South Africa - DHA Fingerprint Match","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/dha-fingerprint-match"},{"title":"South Africa - DHA Photo Retrieval Verification API","sidebarTitle":"South Africa - DHA Photo Retrieval","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/dha-photo"},{"title":"South Africa - Driving License Verification API","sidebarTitle":"South Africa - Driving License Verification","href":"/api-reference/database-validation/south-africa/drivers-license"},{"title":"South Africa - Fraud Prevention Screening API","sidebarTitle":"South Africa - Fraud Prevention Screening","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/fraud-prevention"},{"title":"South Africa - Person Directorships Lookup API","sidebarTitle":"South Africa - Person Directorships Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/person-directorships"},{"title":"South Africa - Refugee File Verification API","sidebarTitle":"South Africa - Refugee File Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/refugee"},{"title":"South Africa - Vehicle Ownership Verification API","sidebarTitle":"South Africa - Vehicle Ownership Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/vehicle-ownership"},{"title":"South Africa National ID (DHA) Verification API","sidebarTitle":"South Africa National ID (DHA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/national-id"}]},{"group":"🇪🇸 Spain","pages":[{"title":"Spain - DNI/NIE verification API: Real-Time Lookup","sidebarTitle":"Spain - DNI/NIE verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/spain/dni"}]},{"group":"🇸🇪 Sweden","pages":[{"title":"Sweden National ID Verification API: Identity Match","sidebarTitle":"Sweden National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/sweden/national-id"},{"title":"Sweden Phone Verification API: Real-Time ID Lookup","sidebarTitle":"Sweden Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/sweden/phone"}]},{"group":"🇨🇭 Switzerland","pages":[{"title":"Switzerland Credit Bureau Verification API","sidebarTitle":"Switzerland Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/switzerland/credit-bureau"}]},{"group":"🇹🇭 Thailand","pages":[{"title":"Thailand National ID Verification API: Data Match","sidebarTitle":"Thailand National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/thailand/national-id"}]},{"group":"🇬🇧 United Kingdom","pages":[{"title":"United Kingdom Credit Bureau Verification API","sidebarTitle":"United Kingdom Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/credit-bureau"},{"title":"United Kingdom Financial Services Verification API","sidebarTitle":"United Kingdom Financial Services","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/financial-services"},{"title":"United Kingdom Phone 2 Verification API: Data Match","sidebarTitle":"United Kingdom Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/phone-2"},{"title":"United Kingdom Residential Verification API","sidebarTitle":"United Kingdom Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/residential"}]},{"group":"🇺🇸 United States","pages":[{"title":"United States - Driver's License (DMV) API","sidebarTitle":"United States - Driver's License (DMV)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/driver-license-dmv"},{"title":"United States Credit Bureau Verification API","sidebarTitle":"United States of America - United States Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/credit-bureau"},{"title":"United States Death Check (SSDMF) API: Data Match","sidebarTitle":"United States of America - United States Death Check (SSDMF)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/death-check"},{"title":"United States Financial Services Verification API","sidebarTitle":"United States of America - United States Financial Services","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/financial-services"},{"title":"United States Phone 2 Verification API: Data Match","sidebarTitle":"United States of America - United States Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/phone-2"},{"title":"United States Residential Verification API","sidebarTitle":"United States of America - United States Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/residential"}]},{"group":"🇺🇾 Uruguay","pages":[{"title":"Uruguay - CI verification API: Real-Time ID Lookup","sidebarTitle":"Uruguay - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/uruguay/cedula"}]},{"group":"🇻🇪 Venezuela","pages":[{"title":"Venezuela - Cédula verification API: Identity Match","sidebarTitle":"Venezuela - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/venezuela/cedula"}]},{"group":"🌐 Zambia","pages":[{"title":"Zambia NRC (tax register) Verification API","sidebarTitle":"Zambia NRC (tax register)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/zambia/national-id"}]}]},{"group":"Biometrics \u0026 Face","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"Passive Liveness API: Deepfake Detection","sidebarTitle":"Passive Liveness","openapi":"openapi-25.json POST /v3/passive-liveness/","href":"/standalone-apis/passive-liveness"},{"title":"Face Match API: 1:1 Face Comparison","sidebarTitle":"Face Match","openapi":"openapi-25.json POST /v3/face-match/","href":"/standalone-apis/face-match"},{"title":"Face Search API: 1:N Facial Dedup \u0026 Fraud Rings","sidebarTitle":"Face Search","openapi":"openapi-25.json POST /v3/face-search/","href":"/standalone-apis/face-search"},{"title":"Age Estimation API: Selfie-Based Age Verification","sidebarTitle":"Age Estimation API","openapi":"openapi-25.json POST /v3/age-estimation/","href":"/standalone-apis/age-estimation"}]},{"group":"Compliance \u0026 Risk","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"AML Screening API: Sanctions, PEP \u0026 Watchlists","sidebarTitle":"AML Screening API","openapi":"openapi-25.json POST /v3/aml/","href":"/standalone-apis/aml-screening"},{"title":"AML Dataset Freshness API","sidebarTitle":"Get AML Dataset Freshness","openapi":"openapi-25.json GET /v3/aml/dataset-freshness/","href":"/standalone-apis/aml-dataset-freshness"},{"title":"Fraud Check API","openapi":"openapi-25.json POST /v3/fraud/checks/","href":"/standalone-apis/fraud-check"},{"title":"Plan a Fraud Check","openapi":"openapi-25.json POST /v3/fraud/checks/plan/","href":"/standalone-apis/fraud-check-plan"},{"title":"Get a Fraud Check","openapi":"openapi-25.json GET /v3/fraud/checks/{check_id}/","href":"/standalone-apis/fraud-check-result"}]},{"group":"Device \u0026 IP Analysis","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/ip-analysis.svg","pages":[{"title":"IP Risk API: Geo, VPN \u0026 Datacenter Signals","sidebarTitle":"IP Risk API","openapi":"openapi-25.json POST /v3/ip/risk/","href":"/standalone-apis/ip-risk"}]},{"group":"KYB Registry","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"KYB Registry API: Company Search and Select","sidebarTitle":"Overview","href":"/standalone-apis/kyb-registry"},{"title":"KYB Registry Search API - Company Search","sidebarTitle":"KYB Registry Search","openapi":"openapi-25.json POST /v3/kyb/search/","href":"/standalone-apis/kyb-registry-search"},{"title":"KYB Registry Select API: Retrieve Company Profile","sidebarTitle":"KYB Registry Select","openapi":"openapi-25.json POST /v3/kyb/select/","href":"/standalone-apis/kyb-registry-select"},{"title":"KYB Registry Shareholders API","sidebarTitle":"KYB Registry Shareholders","openapi":"openapi-25.json POST /v3/kyb/shareholders/","href":"/standalone-apis/kyb-registry-shareholders"},{"title":"KYB Registry UBO API: Ultimate Beneficial Owners","sidebarTitle":"KYB Registry UBOs","openapi":"openapi-25.json POST /v3/kyb/ubo/","href":"/standalone-apis/kyb-registry-ubo"}]},{"group":"Email Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sms-tracking.svg","pages":[{"title":"Email Verification API: OTP \u0026 Risk Scoring","sidebarTitle":"Overview","href":"/standalone-apis/email-verification"},{"title":"Send Email OTP API: Email Verification Code","sidebarTitle":"Send Email Code","openapi":"openapi-25.json POST /v3/email/send/","href":"/standalone-apis/email-send"},{"title":"Check Email OTP API: Validate Email Code","sidebarTitle":"Check Email Code","openapi":"openapi-25.json POST /v3/email/check/","href":"/standalone-apis/email-check"},{"title":"Email Risk API: Deliverability \u0026 Breach Signals","sidebarTitle":"Email Risk API","openapi":"openapi-25.json POST /v3/email/risk/","href":"/standalone-apis/email-risk"}]},{"group":"Phone Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/phone-verification.svg","pages":[{"title":"Phone Verification API: SMS OTP \u0026 Risk Signals","sidebarTitle":"Overview","href":"/standalone-apis/phone-verification"},{"title":"Send Phone OTP API: SMS Verification Code","sidebarTitle":"Send Phone Code","openapi":"openapi-25.json POST /v3/phone/send/","href":"/standalone-apis/phone-send"},{"title":"Check Phone OTP API: Validate SMS Code","sidebarTitle":"Check Phone Code","openapi":"openapi-25.json POST /v3/phone/check/","href":"/standalone-apis/phone-check"},{"title":"Phone Risk API: Carrier \u0026 Fraud Signals","sidebarTitle":"Phone Risk API","openapi":"openapi-25.json POST /v3/phone/risk/","href":"/standalone-apis/phone-risk"}]},{"group":"Bank Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"Account Check API: Verify a Payout Bank Account","sidebarTitle":"Account Check API","openapi":"openapi-25.json POST /v3/bank/account-check/","href":"/standalone-apis/bank-account-check"}]}]},{"tab":"User Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"User Verification","href":"/core-technology/liveness/overview"}]},{"tab":"Business Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/business-verifications.svg","pages":[{"title":"Business Verification","href":"/business-verification/overview"}]},{"tab":"Transaction Monitoring","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Transaction Monitoring","href":"/transaction-monitoring/overview"}]},{"tab":"Changelog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/calendar.svg","pages":[{"title":"Changelog","href":"/changelog"}]}],"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"/api-reference/overview"},{"anchor":"Business Console","icon":"gauge","href":"https://business.didit.me"},{"anchor":"OpenAPI Spec","icon":"file-code","href":"https://docs.didit.me/openapi-25.json"},{"anchor":"Integration Prompt","icon":"wand-magic-sparkles","href":"/integration/integration-prompt"},{"anchor":"MCP Server","icon":"plug","href":"/integration/mcp/overview"},{"anchor":"Agent Skills","icon":"robot","href":"https://github.com/didit-protocol/skills"}]}},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"pages":[{"title":"es","href":"/es/management-api/transactions/create"}]},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"pages":[{"title":"pt-BR","href":"/pt-br/management-api/transactions/create"}]},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"pages":[{"title":"ja","href":"/ja/management-api/transactions/create"}]},{"language":"de","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Anmelden","href":"https://business.didit.me"}},"pages":[{"title":"de","href":"/de/management-api/transactions/create"}]},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"pages":[{"title":"fr","href":"/fr/management-api/transactions/create"}]},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"pages":[{"title":"it","href":"/it/management-api/transactions/create"}]},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"pages":[{"title":"pt","href":"/pt/management-api/transactions/create"}]},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"pages":[{"title":"ca","href":"/ca/management-api/transactions/create"}]},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"pages":[{"title":"id","href":"/id/management-api/transactions/create"}]},{"language":"ru","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Поддержка"},{"icon":"signal","href":"https://status.didit.me","label":"Статус"}],"primary":{"type":"button","label":"Вход","href":"https://business.didit.me"}},"pages":[{"title":"ru","href":"/ru/management-api/transactions/create"}]},{"language":"ko","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"지원"},{"icon":"signal","href":"https://status.didit.me","label":"상태"}],"primary":{"type":"button","label":"로그인","href":"https://business.didit.me"}},"pages":[{"title":"ko","href":"/ko/management-api/transactions/create"}]},{"language":"zh","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"支持"},{"icon":"signal","href":"https://status.didit.me","label":"状态"}],"primary":{"type":"button","label":"登录","href":"https://business.didit.me"}},"pages":[{"title":"zh","href":"/zh/management-api/transactions/create"}]},{"language":"ar","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"الدعم"},{"icon":"signal","href":"https://status.didit.me","label":"الحالة"}],"primary":{"type":"button","label":"تسجيل الدخول","href":"https://business.didit.me"}},"pages":[{"title":"ar","href":"/ar/management-api/transactions/create"}]},{"language":"hi","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"सहायता"},{"icon":"signal","href":"https://status.didit.me","label":"स्थिति"}],"primary":{"type":"button","label":"साइन इन करें","href":"https://business.didit.me"}},"pages":[{"title":"hi","href":"/hi/management-api/transactions/create"}]}]},"basePath":"","title":"Create Transaction API: KYT Submission - Didit Docs","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}