Skip to content

Antifraud Module

The Antifraud Module monitors financial transactions in real time and applies a configurable rules engine to calculate a risk score. When the score exceeds the high-risk threshold, the operation is automatically blocked and logged for later review in the BackOffice panel.

Transaction types monitored: PIX (deposit and transfer), Crypto (deposit and withdrawal), PIX→Crypto conversion, Internal and external transfers.

What you can do here

  • View the antifraud log — browse all analyzed transactions; filter by risk level, block status, and operation type.
  • Manage the Blacklist — add, query, and remove PIX keys, wallets, and addresses considered suspicious.
  • Manage the Whitelist — mark wallets and keys as trusted to reduce false positives.
  • Review blocked transactions — analyze the block reason (triggered rules and score) and, if warranted, manually release the operation.

Prerequisites

RequirementDetail
Antifraud audit permissionAccess to the log and the lists (see the Audit group in the menu)
Target user with status === 'APPROVED'Required to manually release a blocked transaction

For specific permission details, see Audit → Antifraud Log and Blacklist.

How the risk score works

Each transaction goes through a set of rules specific to its operation type. Each rule that fires adds its weight to the total score.

ScoreRisk LevelSystem Action
0 – 39LowAutomatically approved
40 – 99MediumApproved; flagged for optional manual review
≥ 100HighAutomatically blocked (wasBlocked = true)

Rules with weight −999 act as exceptions: if a similar transaction was previously approved, the score is offset and the block does not occur.

Rules by operation type

PIX — Deposit (pix_deposit)
RuleDescriptionWeight
pix_key_mismatchPIX key does not belong to the user80
high_value_depositDeposit > R$ 20,00050
high_frequency_depositsMore than 3 deposits in 1 hour30
multiple_remittersMore than one sender in 24 hours60
night_time_depositDeposit between 00:00 and 06:0030
fast_crypto_withdraw_after_depositCrypto withdrawal within 5 min after the deposit80
new_device_or_ipNew IP or device20
Crypto — Deposit (crypto_deposit)
RuleDescriptionWeight
wallet_not_whitelistedWallet never registered before50
mixer_origin_detectedReceived from a mixer or privacy pool100
from_exchange_without_kycReceived from an exchange without KYC80
above_average_cryptoAmount 3× above the user's average40
triangulated_fundingReceived shortly after a withdrawal from another account90
PIX — Transfer (pix_transfer)
RuleDescriptionWeight
hasPreviouslyApprovedSimilarTransactionSimilar transaction already approved−999
high_frequency_pixMore than 5 PIX sent in 1 hour30
high_value_in_short_timeMore than R$ 10,000 in 1 hour50
blacklisted_recipientRecipient PIX key is on the blacklist100
night_transferTransfer > R$ 1,000 between 00:00 and 06:0040
new_recipientNew recipient (never received before)30
pix_crossed_flowPIX in with immediate PIX out50
unusual_ip_or_deviceIP or device different from usual20
Crypto — Withdrawal (crypto_withdraw)
RuleDescriptionWeight
hasPreviouslyApprovedSimilarTransactionSimilar transaction already approved−999
high_value_withdrawWithdrawal > R$ 20,00070
unverified_walletWallet without associated KYC50
multiple_destinationsMore than 3 destinations on the same day60
withdraw_after_suspicious_pixRecent suspicious PIX before the withdrawal80
device_new_for_withdrawNew device30
ip_different_for_withdrawIP diverges from history20
to_blacklisted_destinationDestination is a mixer or anonymous exchange100
PIX → Crypto Conversion (pix_crypto_conversion)
RuleDescriptionWeight
immediate_conversionConversion with balance received less than 5 min ago40
high_frequency_conversions3 or more conversions in 1 hour50
external_wallet_not_verifiedExternal wallet not verified60
wallet_not_linked_to_userCrypto address not linked to the user80
pix_from_third_party_to_cryptoPIX from a third party converted directly to user's crypto90
atypical_conversion_valueAmount 5× above the historical average40
Internal Transfer (internal_transfer)
RuleDescriptionWeight
hasPreviouslyApprovedSimilarTransactionSimilar transaction already approved−999
high_value_depositAmount > R$ 20,00050
pix_crossed_flowInternal crossed flow (in and immediate out)50
withdraw_after_suspicious_pixRecent suspicious PIX80
unusual_ip_or_deviceNew IP or device20
External Transfer (external_transfer)
RuleDescriptionWeight
hasPreviouslyApprovedSimilarTransactionSimilar transaction already approved−999
high_value_depositAmount > R$ 20,00050
night_time_depositTransfer between 00:00 and 06:0030
to_blacklisted_destinationDestination account is on the blacklist100
unusual_ip_or_deviceNew IP or device20

Sanctioned wallets (OFAC)

The system automatically synchronizes the blacklist with the OFAC (Office of Foreign Assets Control) sanctioned crypto-asset address lists:

Any wallet present in these lists is automatically added to the blacklist and triggers the to_blacklisted_destination rule (weight 100, high risk level).

Technical reference — Internal architecture
  • AntifraudTransactionMapper — standardizes PIX, crypto, and transfer inputs into the antifraud model.
  • AntifraudCoreHandler — processes and records each analyzed transaction.
  • AntifraudRuleEngineService — evaluation engine; loads rules from antifraud_rules_by_category.json (can be versioned separately, no new code deploy required).
  • AntifraudService — implements the function for each rule (e.g., hasFrequentDeposits, isNightDeposit).
  • AntifraudTransactionDao — persists analyzed transactions.
  • The rules file can be updated without a new code deploy.