Decision Distribution
Evaluation Latency (Average)
Fraud Decision Rules
| Name | Condition | Action | Priority | Actions |
|---|
API Reference & Integration
Integrate the FraDAP gateway into your transactional workflows. Make real-time POST requests to evaluate account behaviors and risk patterns.
curl -X POST <baseurl>/v1/risk/evaluate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_101",
"amount": 250000,
"deviceId": "dev_mac_88a2",
"ipAddress": "102.89.23.4",
"merchantId": "merch_12",
"paymentMethod": "CARD",
"currency": "NGN",
"country": "NG",
"state": "Lagos",
"bvn": "22233344455",
"email": "customer@gmail.com",
"phoneNumber": "+2348011223344",
"cardBin": "506118",
"transactionType": "WITHDRAWAL",
"isVpn": false,
"isEmulator": false,
"deviceOs": "Android"
}'
Payload Parameter Definitions
The API receives context data about transactions. All fields except accountId and
amount are optional, but supplying them increases rule precision. Historical and
metrics variables are calculated dynamically.
| Parameter | Type | Required | Description / Usage Example |
|---|---|---|---|
| Incoming Request Payload Parameters (Sent by Client) | |||
| accountId | string | Yes | Unique identifier of the customer transacting. (e.g. acc_101) |
| amount | number | Yes | Transaction monetary value (in base unit, e.g. Naira). (e.g. 15000)
|
| deviceId | string | No | Unique device ID token for fingerprint tracking and device reuse. |
| ipAddress | string | No | Client IPv4 or IPv6 address. (e.g. 102.89.23.4) |
| merchantId | string | No | Target merchant account identifier. |
| country | string | No | 2-letter country code of transaction source. (e.g. NG,
GH)
|
| state | string | No | State or province name. (e.g. Lagos) |
| bvn | string | No | 11-digit Bank Verification Number. |
| string | No | Customer email address. (e.g. user@domain.com) |
|
| phoneNumber | string | No | International format phone number. (e.g. +2348011223344) |
| cardBin | string | No | First 6 or 8 digits of credit/debit card. (e.g. 506118) |
| paymentMethod | string | No | Channel type (e.g. CARD, BANK_TRANSFER,
USSD).
|
| currency | string | No | 3-letter ISO currency code. (e.g. NGN) |
| transactionType | string | No | Transaction category (e.g. WITHDRAWAL, DEPOSIT,
TRANSFER).
|
| isVpn | boolean | No | Flag indicating whether transaction is routed through a VPN or proxy server. |
| isEmulator | boolean | No | Flag indicating whether transaction runs on a virtual device emulator. |
| deviceOs | string | No | Client operating system. (e.g. Android, iOS,
Windows)
|
| Derived Risk Signals & Computed Metrics (Auto-Hydrated) | |||
| velocity_1m | number | Auto | Calculated count of transaction requests from this account in the last 1 minute. |
| velocity_5m | number | Auto | Calculated count of transaction requests from this account in the last 5 minutes. |
| velocity_1h | number | Auto | Calculated count of transaction requests from this account in the last 1 hour. |
| velocity_24h | number | Auto | Calculated count of transaction requests from this account in the last 24 hours. |
| device_reuse_count | number | Auto | Total unique account identifiers that have transacted on this device ID in the past 24 hours. |
| merchant_unique_payers_24h | number | Auto | Unique payer accounts sending to this merchantId in the past 24 hours (MMM Ponzi indicator). |
| payer_unique_merchants_24h | number | Auto | Unique merchantIds this accountId has sent to in the past 24 hours (dispersal/layering indicator). |
Rule Syntax & Logical Operators
Rules compile into a custom domain-specific language (DSL) and evaluate on every transaction. You can combine multiple conditions using standard Go-like logical operators:
&&(Logical AND),||(Logical OR)==(Equals),!=(Not Equals)>,<,>=,<=(Numeric comparisons)startsWith,endsWith(String pattern matches, e.g.email endsWith "@trash.com")in,not in(List membership checks, e.g.state in ["Lagos", "Kano"])
Example Scenario Templates
1. Excessive Single Transactions
Scenario: Automatically decline transactions over 1,000,000 NGN.
2. Suspicious Emulator Withdrawal via VPN
Scenario: Flag high-value withdrawals made on Android/iOS emulators using VPN proxies.
3. Account Takeover / Fast Velocity Spike
Scenario: Block card testing bots or sudden rapid account withdrawals.
4. Card BIN Restriction
Scenario: Decline transactions from blacklisted card BIN numbers.
Fraud Case Studies & Scenario Library
Explore real-world fraud patterns across Fintech, Banking, Card Payments, Betting, Insurance, and Investments. Click **Apply Rule** to pre-fill the Rule Creator, or **Copy Payload** to mock evaluate instantly.