Per-account behavioral scoring API

Score every transaction in under 8 milliseconds

Fraudpulsar catches the card testing, account takeovers, and synthetic identities your static rules engine waves through, scoring risk in real time as each payment lands.

fraudpulsar.com / v1/score, live
acc_3a9…b72 $28.50 5 0.11 PASS
acc_7c1…f09 $1.00 7 0.67 REVIEW
acc_2d5…c88 $0.50 6 0.94 BLOCK
acc_9e4…a11 $389.00 5 0.08 PASS
acc_1b7…d33 $0.01 8 0.89 BLOCK
<8ms
p50 median score latency
measured in pilot, synchronous path
<25ms
p99 tail latency
measured in pilot, target in production
<0.4%
false positive rate
pilot result on live transaction stream
per-account
behavioral model
no global population baselines
The problem

Static rules catch last month's attack. Not today's.

Rules engines were built for audit trails and compliance documentation, not real-time anomaly detection. Every novel attack pattern requires a human to write a new rule. That gap, between the attack and the rule update, is where fraud operates.

Rules engine
Global thresholds applied to every account

Velocity rules, BIN-country checks, and static amount thresholds treat every account the same, regardless of what that account normally does. A card tester probing with $0.50 authorizations sits below every threshold you have set.

  • Card velocity rule fires a day after the burst ends
  • New attack vectors require manual rule authoring before detection begins
  • High false positive rate blocks your best customers at peak spend
Behavioral scoring
Per-account baseline, updated on every settled transaction

Instead of asking "does this transaction match a known-bad pattern?", Fraudpulsar asks "does this transaction match what this specific account normally does?" The comparison is always against the account's own history, never against a global population.

  • Deviation from personal baseline scored in real time
  • Novel attack patterns visible before a rule is written
  • High-spend regular customers score low, not high
How it works

A risk score anchored to this account, not to a global threshold.

Three steps from event ingestion to a 0-1 score with contributing factors. Full technical walkthrough

01
Ingest transaction events

Send your transaction event stream via REST POST or webhook. Account ID, transaction metadata, device context, IP. No card numbers or raw PANs.

02
Build per-account behavioral baseline

Fraudpulsar maintains a rolling behavioral model per account: merchant mix, time-of-day patterns, amount distribution, device consistency, velocity windows.

03
Score the transaction

Each new transaction produces a 0-1 risk score with contributing factors in the response. Read the score. Set your own block, review, and pass thresholds.

Full walkthrough
Detection signals

The attack types payment teams actually lose sleep over.

Fraudpulsar's per-account deviation scoring identifies the six attack categories that generate the most chargeback volume and manual review burden for payment teams.

Card testing velocity

Rapid low-value authorization attempts deviating from account's normal cadence and amount distribution.

Account takeover signals

Behavioral shift after credential stuffing: new device, new location, atypical merchant categories within the same session.

Synthetic identity anomaly

First-transaction signatures that diverge from organic new-customer patterns, including device and behavioral profile mismatches.

BNPL installment abuse

Installment patterns that deviate from account's repayment history and purchase profile, indicating structured first-payment default intent.

First-party friendly fraud

Chargeback filing patterns correlated to behavioral signatures that distinguish genuine disputes from deliberate misuse.

Chargeback merchant clustering

Cross-account patterns at specific merchants that signal coordinated chargeback rings or merchant-level fraud schemes.

Integration

One webhook. Score in your response within a day.

REST POST to /v1/score. Webhook async events for post-authorization signals. Every response includes risk_score, confidence, and contributing_factors. No polling, no batch processing.

1

Add your webhook endpoint and receive your API key from the sandbox dashboard.

2

POST your transaction event stream to /v1/score. Takes account_id, transaction metadata, device, and IP.

3

Read risk_score (0-1) and contributing_factors in the response. Set your own block/review/pass thresholds.

4

Optionally subscribe to async risk updates for post-authorization signals and chargeback feedback loops.

Read API docs
request response
POST /v1/score
Authorization: Bearer fpls_live_8f2e14...
 
{
"account_id": "acc_8f2e14b9",
"transaction": {
"amount_usd": 142.00,
"merchant_category": "5411",
"timestamp_ms": 1751630412843
},
"device": {
"fingerprint": "fp_a3c7...",
"ip": "198.51.100.42"
}
}
 
// response
{
"risk_score": 0.04,
"confidence": 0.91,
"latency_ms": 6,
"factors": [
"amount_within_account_norm",
"known_device",
"typical_merchant_category"
]
}
Early partners

From risk engineers who ran the pilot.

Three teams ran Fraudpulsar against live transaction streams before we opened broader access.

"The card-testing detection was the immediate win. We were seeing a burst of $0.50 and $1.00 authorizations that our velocity rule kept missing because it was tuned for $0.01. Fraudpulsar flagged the entire cohort as a behavioral deviation within the first 90 seconds."

Head of Risk Engineering digital lending platform

"We cut our manual review queue by roughly a third in the first month. The false positive reduction was the metric our ops team cared about most. Fewer legitimate transactions getting flagged means fewer customer complaints."

Fraud Operations Lead card-issuing fintech

"The latency numbers held up in production. We were skeptical about sub-10ms scoring at our transaction volume but the p99 has stayed under 22ms since we flipped to live. That mattered for our authorization flow."

CTO payment processing startup

Start scoring transactions in your sandbox.

10,000 test transactions, synthetic fraud scenarios pre-labeled, full API. We will issue your sandbox key within one business day of your request.

Request API access