Transaction monitoring
Send each transaction or customer activity when it happens. Toden connects it to the customer, evaluates the relevant controls and returns an explainable allow, review or block decision.
Have past transactions to assess? Preview a historical batch before submitting it through this same endpoint.
Choose the correct endpoint
Use a secret sk_ key with the same base URL and authentication as the Identity Hub. Use the v1 endpoints for new integrations.
Complete value reference
The tables below are the complete closed-value fields accepted by the v1 transaction, activity and outcome contracts. Values are lowercase and case-sensitive in requests. If a value is not listed here, the API rejects it rather than guessing.
Request enum values
The response decision values are allow, review and block. Use them as machine values and show your own customer-facing copy separately.
Open string fields
These fields are intentionally not enums: channel, transaction.transactionType, transaction.status, transaction.paymentMethod, transaction.blockchain, currency, metadata keys and customAttributes keys. Send stable, documented values from your own system. Toden stores them as evidence and may use them in authorised custom controls, but does not silently translate them into another value.
POST /api/identity/events is a compatibility endpoint, so its type is also an open string. Recognised names containing transaction, payment, transfer, login, sign-in, sign-up, register, password reset, beneficiary added, profile change, device change, payout or withdrawal are routed into the canonical assessment pipeline. New integrations should use the closed v1 activity types above.
Send a complete transaction
POST /api/v1/transactions
The subject is your customer. The parties array describes who sent and received the funds. Add each bank account, wallet, card or other payment method to the party that used it.
Outbound bank transfer
This appears as Sample customer → Amina Bello throughout the dashboard. For an inbound transaction, the customer is the recipient and the title appears as Sample customer ← sender name.
Inbound crypto transfer
This appears as Sample customer ← Charles Okafor. Toden screens the sender’s crypto wallet before producing the transaction decision.
How directional screening works
The transaction direction is always from the perspective of your customer.
Crypto counterparties use the same Wallet Intelligence engine as Spot Checks and the direct API. A post-settlement hash remains in Toden’s transaction record; the wallet provider receives the counterparty address only. The internal wallet check is part of the transaction assessment and does not create a second customer wallet charge. A result without wallet evidence requires review; it is never treated as clean.
Individuals are checked for sanctions, PEP and adverse media. Businesses are checked for sanctions and adverse media. If the required target name or wallet address is missing, Toden returns a review decision with an insufficient-data reason rather than treating the transaction as clear.
Transaction fields
Request envelope
transaction
Party fields
Every party needs at least one stable reference: externalUserId, entityId or externalPartyId.
Instrument fields
Each instrument needs externalInstrumentId, identifier or fingerprint. Toden derives a tenant-scoped fingerprint and keeps only safe display evidence.
Transaction assessment response
The response wraps the persisted decision in assessment. Read summary first:
Use summary.outcome to gate your flow and summary.nextAction to continue it. The complete response also retains matched rules, screening, billing, signals and processing evidence when you need to audit or investigate the result.
Wallet verification & screening
For crypto, each assessment.screening.attempts[] contains a
walletScreenings array. Each item is the exact saved counterparty wallet check:
id, status, wallet, risk, profile, provider and screenedAt.
Multiple screened wallets remain separate items. Read risk.score and
risk.level for wallet risk; the transaction’s decision remains the overall
Toden decision.
The address overview fields
include the analytics provider (Merkle Science when returned), address,
blockchain, owner and user attribution, their types and subtypes, first/latest
transaction times and provider date added. They have the same names and meaning
as standalone wallet results. Missing fields remain null. Name-screening
attempts and attempts without linked wallet evidence have an empty array.
If walletEvidenceUnavailable is history_limit_exceeded, the evidence read
exceeded its bound (100 wallet attempts or 1,000 saved wallets). No partial list
is presented; do not interpret that empty array as clean or complete evidence.
Create, exact replay and GET /api/v1/transactions/{id} return the same saved
wallet evidence without another provider call. The response excludes raw
provider data and credentials.
Production billing uses the component prices configured for your organisation. A transaction can contain a fraud-assessment line and one or more screening lines. Sandbox requests are non-billable. Invalid input is rejected before usage is reserved, and service failures are not treated as successful billable assessments.
Send behaviour activity
POST /api/v1/activities
Use this endpoint for non-transaction customer behaviour. The example below connects a login to the customer, device, IP and location used at the time.
Supported behaviour types
Use POST /api/v1/transactions when money movement has sender, recipient, account or wallet evidence. Do not send a transaction through the generic activity endpoint.
Each accepted activity updates the customer’s Behaviour intelligence with the evidence supplied, evaluates active risk-scoring rules, and records the resulting decision. Location observations appear under Connected records → Locations & IPs. Device references contribute to device history and relationship evidence.
Location and IP evidence
Send only evidence you actually collected. ipAddress must be a valid IPv4 or IPv6 address, country uses a two-letter code, and latitude and longitude must be supplied together. accuracyRadiusKm is optional and is accepted only with coordinates.
If you send both location and IP evidence, your supplied location remains primary. IP enrichment fills only missing fields. Replaying the same logical activity does not create a duplicate location observation.
Location capture happens before billable fraud assessment. Invalid activity input does not create a location record or an assessment charge. A temporary location-enrichment failure does not turn otherwise valid activity into a chargeable failure.
Idempotency and freshness
- Use one
externalActivityIdper logical assessment and keep it stable across retries. - Use one
externalTransactionIdper customer transaction. - Replaying the same request returns the existing assessment with
replayed: trueand does not score or bill it again. - Reusing either identifier with different immutable transaction data returns a conflict.
- Send the original
occurredAt. Toden retains both the occurrence time and receipt time so late events remain visible and do not distort the audit trail.
Webhooks
Subscribe to fraud.transaction.assessed for every transaction decision and fraud.activity.assessed for every behaviour decision. Transaction webhooks include the subject, external activity and transaction references, structured parties, masked instruments, screening evidence and billing breakdown. Use event.flagged only as a compatibility alias for non-allow decisions.
See Transaction Monitoring webhooks and Event Monitoring webhooks for delivery contracts and retry guidance.
Compatibility event endpoint
POST /api/identity/events remains available for existing integrations:
This reduced shape can store and score a simple event, but it cannot submit structured sender and recipient profiles or attach instruments to each party. Migrate transaction integrations to POST /api/v1/transactions to receive complete relationship intelligence, directional screening, billing evidence and human-readable transaction titles.
Errors
Next steps
- Fraud rules: install or build controls for transactions, logins and other activity.
- Ongoing monitoring: configure recurring customer review.
- Investigations and reporting: investigate review and block decisions.
- Webhooks: receive lifecycle events without polling.