> Toden documentation. For the full index fetch /llms.txt. Every page is available as Markdown by appending .md to its URL. Identity verification uses /api/kyc, Risk Intelligence uses /api/v1; they are separate contracts with different error shapes. Never invent an endpoint, field or enum value: read the API reference page for the operation first.

# Transaction decisions

> Receive the outcome and next action for an assessed transaction.

Toden sends one concise summary when a transaction is assessed and again if its effective decision changes.

## Events

| Event                        | Use it for                                                                                  |
| ---------------------------- | ------------------------------------------------------------------------------------------- |
| `fraud.transaction.assessed` | Apply the first transaction decision.                                                       |
| `fraud.decision.changed`     | Replace the previous decision with the new effective decision.                              |
| `event.flagged`              | Legacy compatibility for non-allow decisions. New integrations should use the events above. |

## Example

```json
{
  "id": "evt_transaction_01",
  "event": "fraud.transaction.assessed",
  "createdAt": "2026-08-15T15:02:12.884Z",
  "data": {
    "externalTransactionId": "txn_928401",
    "activityId": "act_tx_01",
    "decisionId": "dec_tx_01",
    "decision": "review",
    "summary": {
      "outcome": "review",
      "title": "Review required",
      "reason": "A high-risk transaction rule matched.",
      "score": 82,
      "riskLevel": "high",
      "matchedRules": 1,
      "nextAction": {
        "type": "review_activity",
        "label": "Review transaction"
      }
    }
  }
}
```

Use `data.summary` for normal integration logic:

1. Deduplicate by the envelope `id`.
2. Branch on `summary.outcome`.
3. Display `summary.reason` when a person needs context.
4. Follow `summary.nextAction` when it is not `none`.

The same payload can include detailed rule, screening, billing and Travel Rule evidence. Store that evidence for audit or open the transaction read API when you need it, but do not recompute Toden's decision from those details.

Delivery order is not guaranteed. A later `fraud.decision.changed` event is authoritative for the effective decision.