Screen a transaction of your end customer
Screens one transaction of one of your end customers and returns allow, review or deny with the rules that fired. The rules look at this transaction and at the history you sent for the same customer_reference (in the same environment):
| rule | fires when | effect | score |
|---|---|---|---|
| high_risk_country | counterparty_country is KP, IR, SY or CU | deny | 100 |
| large_amount | amount_usd is 10,000 or more | review | 40 |
| velocity_24h | more than 10 transactions of the customer in the 24 hours ending at occurred_at | review | 30 |
| structuring_24h | this transaction is between 9,000 and 10,000 USD and is the 3rd or more of the customer in that band within those 24 hours | review | 50 |
| volume_spike | the customer's 24-hour volume (at least 1,000 USD) is more than 5 times its daily average of the 29 days before, with at least 5 transactions in those days | review | 30 |
| prior_confirmed_risk | you reported a transaction of this customer as confirmed_risk in the last 90 days | review | 50 |
effect is the worst rule (deny over review over allow); score is the sum, capped at 100. rule_version names the rule set. The result is advice: OZAV never blocks the transaction.
It learns from your outcomes. Report how a transaction ended with POST /transaction-screenings/{transaction_screening_id}/outcome. A false_positive clears the rules that fired on it (large_amount, velocity_24h, volume_spike) for that customer for 90 days, up to the size you labeled (the amount, the 24-hour count or the 24-hour volume of that transaction): above it the rule counts again. A cleared rule still shows in reasons with cleared_by and score 0, and no longer counts; a cleared rule never clears the next one. A confirmed_risk flags every next transaction of that customer for 90 days. A sanctioned country and structuring are never cleared, and your outcomes never affect another organization. Your outcomes tune the advice you receive; each one is your statement, kept with the screening.
customer_reference is your own id for the end customer. OZAV never stores it in clear, only a keyed hash of it with your organization, so do not send a document number or an email there: any stable id of yours works.
Send external_id (your transaction id) to make each transaction count once: a second call with the same external_id is 409 DUPLICATE_TRANSACTION and is not charged. Send an Idempotency-Key to retry the same call safely.
occurred_at (default: now) must be within the last 30 days and not in the future. A transaction is judged against the ones already sent with an earlier or equal occurred_at, so send each customer's transactions in chronological order.
Request
- Base URLhttps://developers.ozav.io/v2
- Auth
- API key in header X-API-Key
- or HTTP bearer
Headers
Optional idempotency key (16-256 characters of [A-Za-z0-9_-]); same semantics as on money-moving operations.
Request body
Response
The screened transaction.
Changes
No recorded changes to this operation across all 1 revision of this API.