Transaction Layer
AML-AI
ActiveScore individual transactions for AML risk and detect patterns across 90 days of customer history. Automatically flags structuring, hawala, layering and 4 more typologies. Determines FINTRAC, goAML and SAMA reporting obligations.
Endpoint
POST
/api/aml/scanReporting thresholds
| Jurisdiction | Threshold | Regulator | Report type |
|---|---|---|---|
| CA π¨π¦ | $10,000 CAD | FINTRAC | LCTR / STR |
| AE π¦πͺ | AED 55,000 | CBUAE | goAML STR |
| SA πΈπ¦ | SAR 60,000 | SAMA | SAR |
Risk score
Score ranges from 0 to 950. Structuring detection triggered by pattern analysis adds up to 500 points on top of the single transaction score.
| Score range | Risk level | Recommended action |
|---|---|---|
0 β 249 | Low | Process automatically |
250 β 499 | Medium | Monitor, no action required |
500 β 749 | High | Flag for compliance review |
750 β 950 | Critical | Block and escalate immediately |
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_id | string | Yes | Your unique reference for this transaction. |
customer_id | string | Yes | Your internal customer reference. Used to fetch 90-day transaction history for pattern detection. |
jurisdiction | string | Yes | One of: CA (Canada), AE (UAE), SA (KSA). Determines reporting thresholds and rules. |
amount | number | Yes | Transaction amount in the specified currency. |
currency | string | Yes | ISO 4217 currency code. CA=CAD, AE=AED, SA=SAR. |
transaction_type | string | Yes | One of: deposit, withdrawal, transfer, payment, wire, crypto. |
counterparty_name | string | No | Name of the counterparty (sender or recipient). |
counterparty_country | string | No | 2-letter ISO country code of counterparty. Used for high-risk geography detection. |
description | string | No | Transaction description or purpose. |
Response fields
| Parameter | Type | Required | Description |
|---|---|---|---|
data.risk_score | integer | Yes | Combined risk score 0β950. Industry standard scale. |
data.single_tx_score | integer | Yes | Score from single transaction analysis only. |
data.pattern_score | integer | Yes | Additional score from 90-day pattern detection. |
data.risk_level | string | Yes | low, medium, high, or critical. |
data.status | string | Yes | approved, rejected, or review_required. |
data.typologies_detected | array | Yes | List of AML typologies found: structuring, threshold_avoidance, velocity_anomaly, round_tripping, layering, amount_clustering, high_risk_geography. |
data.patterns_detected | array | Yes | Patterns found across transaction history. |
data.fintrac_reportable | boolean | Yes | True if transaction must be reported to FINTRAC (CA only). |
data.goaml_reportable | boolean | Yes | True if transaction must be reported via goAML (AE only). |
data.sama_reportable | boolean | Yes | True if transaction must be reported to SAMA (SA only). |
data.history_analyzed | object | Yes | Context: transactions (count), days (90), patterns_found (count). |
data.ai_recommendation | string | Yes | Plain-English assessment with recommended action. |
Code example
Example response