Decide who gets through, in milliseconds

FraudZero is an anti-fraud rules engine. You describe the data you receive, write the rules that decide on it — in plain language, with words instead of symbols — and the platform answers approve or deny on every request.

HTTPS with no off switch
Mandatory second factor
Append-only audit trail
One unit per input
Authoring

One rule, two ways to write it

Write the script or draw the flowchart. One of them is the source of truth — the other is generated — and you decide which, rule by rule.

risco-por-score
let score = input.risco + input.velocidade

if score > 80 and input.pais is not "BR" {
  Deny("risco alto no exterior")
} else if score > 5 {
  Deny("risco elevado")
}

In words: it adds the risk score to the velocity count. A score above 80 coming from outside Brazil denies for high risk abroad; otherwise, a score above 5 denies for elevated risk. Reaching the end without denying approves.

No No Yes Yes Start let score = input.risco +input.velocidade 1 let score = input.risco + input.velocidade score > 80 and input.paisis not "BR" 2 score > 80 and input.pais is not "BR" score > 5 4 score > 5 End approves Deny "risco elevado" 5 "risco elevado" Deny "risco alto no exterior" 3 "risco alto no exterior"

Words, not symbols

and, or, is, between, in. Reaching the end without a single Deny approves — there is no "approve" to write.

The editor knows your input

After input. it offers the fields you declared, and only those. A syntax error is underlined on the right column, before you save.

One truth at a time

In drawing mode the server compiles the blocks into a script on save. In text mode the drawing is ignored and never even stored.

Decision

The detection tree, drawn

Each shape is a step of the script, and the number inside it is the step number. The drawing is not an illustration of what the rule does: it is the rule.

No No No Yes Yes Yes Start input.pais is not "BR" andinput.valor > 1000 1 input.pais is not "BR" and input.valor > 1000 input.mcc is 5411 orinput.mcc is 5812 3 input.mcc is 5411 or input.mcc is 5812 input.risco > 80 5 input.risco > 80 End approves Deny "score acima do limite" 6 "score acima do limite" Deny "categoria restrita" 4 "categoria restrita" Deny "valor alto no exterior" 2 "valor alto no exterior"

Shapes

Start and end
Decision
Calculation
Deny
Note

The number in each shape is the matching step in the script.

How a group evaluates

1

The group's rules run by priority and, on a tie, by order.

2

The first Deny wins and the evaluation STOPS there.

3

Reaching the end without a single Deny approves. The decision is binary, not a sum.

Marketplace

Rules from those who already solved it

One company publishes a rule; another acquires the one that fits its input. As an editable copy or as use-only — and the script never leaves whoever wrote it.

Blacklisted card

Antifraude BR

Card
Reference

Velocity by document

Rede Pagamentos

Velocity
Copy

Restricted MCC range

Acquirer Norte

Category
Copy

No card shows the expression. It is not a missing permission — the listing simply does not carry it.

The script never leaves

The listing says what the rule decides and which fields it consumes. Expression, AST and references show up for no account, under no role.

The field mapping is mandatory

The author's rule speaks their vocabulary; your input has another. The acquisition wires one to the other and is refused if any field is left unmapped — finding that out in production would cost dearly.

With reference, fixes arrive on their own

A copy is yours to edit and gets no fixes. A reference is execution only, and when the author fixes the rule the acquirer's units rebuild the bundle.

History and numbers

Every evaluated request becomes a record

The unit returns every decision to the console in batches, over a port that only exists on loopback. The aggregate is kept hourly, so "how many denials today" never scans the table.

Evaluations per hour

sample numbers

Evaluations in 24h

12,480

Denied

3.1%

Average latency

0.015 ms

00h06h12h18h23h

Alert configuration

Rule risco-por-score
Condition denial rate
Threshold 5%
Channel e-mail

Recording never slows the decision

The unit does not wait for the console: it drops the event on a roomy channel and keeps answering. If the channel fills up, the event is discarded with a log warning — this is diagnostics and statistics, not bookkeeping.

Access and audit

Who can do what — and what was recorded

Roles per operation, bundled into IAM-style policies. Plus an append-only trail that the console itself neither edits nor deletes.

Roles bundled into policies

The role is the permission atom, one per operation. The policy is the bundle, IAM-style — and the policy is what you grant a person.

Seeing the code is a separate right

Without RuleScriptRead the response omits the expression and flags script_hidden. You can distribute the decision without distributing the intelligence.

Mandatory second factor

TOTP for every account, with no way to turn it off. Sign-in has two stages, and the password-stage token opens no route at all.

A hierarchy that only goes down

The parent reaches the branches and their own children. A branch never reaches the parent — except for what the parent shares, explicitly.

Audit trail

example

ana.souza updated the rule risco-cartao-exterior

2 min ago

carlos.lima published on the marketplace velocidade-documento

18 min ago

ana.souza rotated the unit's token transacao

1 h ago

root-admin approved the registration Acme Pagamentos Ltda

yesterday

Written by a middleware after the response, on every request that changes something. Append-only: no route edits or deletes a line of the trail.

Rules in plain language

Write the decision the way you write a sentence: if, else, and, or, between. No developer in the middle.

Visual builder

The same rule drawn as a flowchart, with a decision diamond and Yes and No paths. Drawing and script are one and the same.

Decisions in milliseconds

Each input has its own processing unit, always up, answering approve or deny over HTTPS.

Data from where you already keep it

Plug in a CSV or your own database and query it from inside the rule, without exporting anything anywhere.

History and numbers

Every evaluated request becomes a record: the decision, the rule that weighed in and the payload. Volume, denial rate and latency on one dashboard.

Rules marketplace

Publish a rule for other companies or acquire someone else's — as an editable copy or as use-only, without exposing the script.

Accounts in a hierarchy

A parent company and its branches, each with its own rules. The parent reaches the children; a child never reaches the parent.

Fine-grained permissions and MFA

Roles per operation, bundled into policies. Mandatory second factor. Seeing a rule's code is a permission of its own.

Audit trail

Who changed what, and when. Append-only: the console neither edits nor deletes its own trail.

How to get started

Send your company registration with your contact details. You get a protocol number right away; our team reviews it and, once approved, the administrator you named receives the invitation by e-mail.

Register my company