Skip to main content
Stand up Transaction Monitoring in under 10 minutes. You’ll submit a test transaction, inspect its score, enable a preset rule, resubmit to see it fire, and confirm the webhook arrives.

Prerequisites

  • A Didit application with Transaction Monitoring enabled (Settings → Transaction Monitoring → Enable).
  • An API key.
  • A webhook endpoint reachable from the internet.

Steps

1

Submit a baseline transaction

curl -X POST https://verification.didit.me/v3/transactions/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "txn_id": "baseline-0001",
    "direction": "OUTBOUND",
    "amount": "500.00",
    "currency": "EUR",
    "transaction_type": "finance",
    "applicant": { "vendor_data": "user-42" },
    "counterparty": { "name": "Acme Supplier" }
  }'
Response includes:
  • statusAPPROVED if no rules fired, IN_REVIEW / DECLINED if any did.
  • score — integer 0–100+.
  • rule_runs — array of every rule that evaluated this transaction.
2

Enable a preset rule

Navigate to Transactions → Rules → Library in the Business Console. Pick a preset, for example Structuring (outbound): triggers when the same user sends 20+ outbound transfers under €10,000 within 30 days. Enable it and save.
3

Submit transactions that trigger the rule

Submit 20 transactions quickly for the same user, each under €10,000:
for i in $(seq 1 20); do
  curl -X POST https://verification.didit.me/v3/transactions/ \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{
      \"txn_id\": \"struct-$i\",
      \"direction\": \"OUTBOUND\",
      \"amount\": \"9500.00\",
      \"currency\": \"EUR\",
      \"applicant\": { \"vendor_data\": \"user-42\" },
      \"counterparty\": { \"name\": \"Shell Co $i\" }
    }"
done
By the 20th submission, the Structuring rule fires. The transaction returns status: IN_REVIEW and score reflects the rule’s score_delta.
4

Subscribe to transaction webhooks

curl -X POST https://verification.didit.me/v3/webhook/destinations/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "TM events",
    "url": "https://yourapp.com/webhooks/didit-tm",
    "subscribed_events": ["transaction.created", "transaction.status.updated"]
  }'
Every subsequent transaction posts to your endpoint in real time. See TM webhooks for payloads.
5

Inspect in the console

Navigate to Transactions in the console:
  • List view: recent transactions, filters, bulk actions.
  • Transaction detail: rule runs, IP enrichment, party details, network graph (for crypto), linked alerts and cases.
6

Retrieve a transaction via API

curl https://verification.didit.me/v3/transactions/{transaction_id}/ \
  -H "x-api-key: YOUR_API_KEY"
Returns the full response schema — score, matched rules, party enrichment, AML screening, and more.

What you just set up

  • Real-time scoring — every transaction runs through every active rule.
  • AML screening — counterparties are screened against sanctions / PEP / adverse media automatically.
  • IP enrichment — every transaction is enriched with IP country, ASN, VPN/Tor flags.
  • Webhooks — real-time notification on every transaction.
  • Audit trail — rule runs, alerts, and status transitions are all queryable in the console.

Common next moves

Integration guide

Full architecture and patterns.

Rules deep dive

How rules work, conditions, aggregations, actions.

Risk scoring

How scores combine into statuses.

Transactions payload

The full transaction submission schema.

Statuses

Transaction, alert, and case states.

Cases

Investigate and resolve.