Rules, not a black box
Fraud rules are records, not code. An analyst adds one, adjusts a weight, or disables it from the console — the next transaction is evaluated against the change, with no deploy.
A transaction is evaluated against a rule set your analysts control. The score is the sum of what matched, and every rule that contributed returns the field it read and the value it saw — so a decision can be explained, replayed, and corrected at the rule.
Written once and never edited. A re-evaluation supersedes rather than overwrites.
When several rules match, the engine does not take the first, the newest or an average. It takes the most severe action any of them asked for — so adding a cautious rule can never weaken a decision another rule already reached.
Whether the chosen action is actually applied is a separate question, answered by the enforcement mode below. In shadow, the decision is reached and recorded and nothing is applied.
Five stages, all of them inspectable. Nothing in this path is inferred — each step is arithmetic over values that were read from the account.
Scoring and acting are separate concerns. The engine always evaluates; how much of that evaluation is allowed to touch a payment is a setting, changeable per domain at runtime.
Shadow is the default. BINK does not claim to block fraud out of the box — the engine detects and records, and a team turns enforcement on deliberately.
A fraud decision that cannot be defended afterwards is a liability. Everything here exists so that a decision can be reconstructed months later, exactly as it was made.
Fraud rules are records, not code. An analyst adds one, adjusts a weight, or disables it from the console — the next transaction is evaluated against the change, with no deploy.
A score is never a bare number. Each contributing rule returns its category, its severity, the field it examined and the value it actually observed.
A decision is never edited. Re-evaluating writes a new record that supersedes the old one, so the history shows what was known at the time rather than what was concluded later.
A retried payment returns its original decision rather than being scored a second time — a network retry cannot talk its way into a different answer.
Cases open, are assigned, investigated, escalated and resolved as confirmed or false positive, on a state machine that refuses transitions that are not permitted.
Holds apply to a transaction, an account, a settlement, a payout or a merchant, and carry review and escalation — including partial release rather than all-or-nothing.
A risk layer sits directly in the path of a payment, so how it behaves when it is unsure — or unavailable — matters as much as how it behaves when it is right.
Run in shadow while rules are adjusted, watching what would have happened before anything is allowed to act on a payment.
Ask for a second factor or park a payment for review rather than declining it, so a false positive costs a delay and not a customer.
Reconstruct the decision exactly as it was made, with the features it was made on, months after the fact.
When a decision is wrong, correct the rule that caused it and have the change apply to the next transaction — no retraining, no release.
Fraud control is one part of a wider posture, most of which is attested rather than described.
Rules your team owns, reasons attached to every score, and a record that survives the question asked a year later.