decision field in the API response — allow, challenge, or block — so your application can branch immediately without additional logic.
Decision Outcomes
Every transaction response includes adecision field with one of three values:
allow
The transaction passes your risk thresholds and rule conditions. Proceed normally — fulfill the order, log the user in, or complete the transfer. No additional verification is required unless your application has independent requirements.
challenge
The transaction falls in a risk band that requires additional user verification before proceeding. FraudEG returns a recommended_action field alongside challenge to indicate the verification method most appropriate for the risk level — for example, 3ds_challenge, sms_otp, or email_confirmation. Your application is responsible for initiating the challenge and reporting the outcome.
block
The transaction exceeds your configured risk thresholds or matches a block rule. Reject the transaction immediately and do not fulfill it. Return an appropriate error to your user. FraudEG logs the block event and includes the contributing signals in the response for your records.
Consuming the decision Field
The decision field appears at the top level of every /v1/transactions/score and /v1/transactions/evaluate response. Read it before taking any action on the transaction.
1
Receive the API response
Call
POST /v1/transactions/score with your transaction payload. FraudEG returns the score, signals, and decision synchronously in the response body.2
Read the `decision` field
Extract the
decision value from the response. This is your authoritative action directive — your downstream logic should branch exclusively on this field, not the raw score.3
Handle `allow`
Proceed with the transaction normally. Optionally log the
transaction_id, score, and signals for reporting and model feedback.4
Handle `challenge`
Initiate the step-up verification method indicated in
recommended_action. After the user completes the challenge, report the outcome back to FraudEG using POST /v1/decisions/{transaction_id}/outcome so the result is factored into future scoring.5
Handle `block`
Reject the transaction. Return a user-facing error message. Do not expose the internal reason for the block. Record the
transaction_id and signals for your fraud operations team.Node.js Example
Decision Overrides
You can programmatically override a decision — for example, after a fraud analyst reviews a transaction in your queue — usingPOST /v1/decisions.
Configuring Rules in the Platform
The no-code rule builder in Platform → Risk Rules lets you define exactly how scores and signals map to decisions for your specific business context. You can:- Set score-band thresholds per decision outcome.
- Add signal-based conditions (e.g., always block when
bot_detectedis present). - Scope rules to specific flows — checkout, login, onboarding, or high-value transfers.
- Set rule priority to control evaluation order when multiple rules match.
- A/B test rule configurations against live traffic before fully rolling them out.
Real-Time vs. Asynchronous Decisioning
In asynchronous mode, the initial API response returns
decision: "pending" with a review_id. FraudEG sends the final decision to your configured webhook once review is complete.