DEV Community

Cover image for Fraud Is a Network, Not a Transaction: Architecting Identity and Payment Graphs for FinTech
Vaibhav Shakya
Vaibhav Shakya

Posted on

Fraud Is a Network, Not a Transaction: Architecting Identity and Payment Graphs for FinTech

Fraud Is a Network, Not a Transaction: Architecting Identity and Payment Graphs for FinTech

A transaction can look completely normal when viewed in isolation.

The account is authenticated. The device looks familiar. The amount is within acceptable limits. Transaction velocity has not crossed any configured threshold.

Yet the payment may still sit inside a suspicious network.

That is the key architectural problem with purely transaction-centric fraud detection.

The Problem

Many fraud systems still reason primarily like this:

transaction
    ↓
features
    ↓
score
    ↓
decision
Enter fullscreen mode Exit fullscreen mode

That model is useful, but it can miss coordinated behavior spread across multiple identities and events.

Consider several accounts that:

  • use the same device
  • use different payment instruments
  • stay below individual velocity limits
  • transfer toward the same beneficiary

Individually, each account may appear normal.

Together, the relationship structure can look very different.

A more relationship-aware pipeline looks closer to:

event
  ↓
resolve entities
  ↓
update relationships
  ↓
inspect relevant neighborhood
  ↓
calculate contextual risk
  ↓
apply policy
  ↓
approve / challenge / review / decline
Enter fullscreen mode Exit fullscreen mode

The transaction still matters.

It is simply no longer the entire unit of reasoning.

Where It Gets Difficult

Graph-based fraud detection introduces several problems of its own.

Entity resolution

Connecting two nodes is easy.

Knowing whether two observations actually represent the same device, person, payment identity, or account is much harder.

A wrong merge can propagate risk across legitimate users.

A missed merge can hide coordinated fraud.

That is why uncertain relationships should remain uncertain instead of being silently promoted into permanent security facts.

Shared infrastructure is not automatically fraud

A device linked to multiple accounts can represent abuse.

It can also represent:

  • a shared household device
  • a merchant terminal
  • a corporate device
  • a kiosk
  • a resold phone
  • legitimate account switching

The same applies to IP addresses and beneficiaries.

Graph density is evidence.

It is not a verdict.

Authentication and fraud are different questions

Successful authentication does not automatically mean a payment is safe.

A system may legitimately have:

authentication confidence = high
transaction risk = high
Enter fullscreen mode Exit fullscreen mode

An attacker may control an authenticated session, or a legitimate customer may be socially engineered into authorizing an unwanted payment.

Fraud decisioning therefore has to survive the authentication boundary.

Freshness and consistency matter

A graph can also produce the wrong answer when its state is stale.

A newly blocked beneficiary may require stronger freshness than historical device relationships.

This means the architecture should not treat every graph signal the same way.

Some can tolerate eventual consistency.

Others may require stronger enforcement semantics.

Architectural Direction

A useful design separates several concerns instead of building one oversized "fraud score."

  • Clients contribute signals, but the backend remains authoritative.
  • Entity resolution maps observations into graph identities.
  • Relationships carry temporal information such as first_seen, last_seen, and observation counts.
  • Graph-derived features feed rules, statistical models, ML, or manual-review policies.
  • Risk estimation remains separate from the business policy that decides what action to take.

For example, graph features might include:

device_account_count_24h = 5
beneficiary_unique_senders_1h = 11
account_new_payment_instruments_7d = 4
distance_to_confirmed_fraud = 2
device_relationship_age_seconds = 940
Enter fullscreen mode Exit fullscreen mode

Those values are much easier to operationalize than starting immediately with an opaque graph score.

They can answer questions like:

  • How many accounts recently used this device?
  • How quickly are new relationships appearing?
  • How many independent accounts converge on one beneficiary?
  • How close is the current entity to confirmed fraud?
  • Is this relationship minutes old or months old?

Keep the Mobile Client in the Right Trust Boundary

Mobile applications can provide useful observations such as session context, app version, device-bound information, lifecycle state, or platform integrity evidence.

But the client should not determine whether a payment is safe.

The backend should correlate those observations against broader account and graph context.

Conceptually:

Client:
device_key_id = DK-8291

Backend:
DK-8291 belongs to session S18
S18 belongs to account A72
DK-8291 was first observed 14 minutes ago
DK-8291 is also associated with A81 and A93
Enter fullscreen mode Exit fullscreen mode

The client sees its immediate environment.

The backend can see the relationship network.

That distinction is essential.

A Simple Scenario

Imagine 12 customer accounts.

None exceeds an individual transaction threshold.

Each performs only a few low-value payments.

Different payment credentials are used.

From a transaction table, the cases may appear unrelated.

But relationship analysis reveals:

12 accounts
    ↓
3 devices
    ↓
9 payment identities
    ↓
2 beneficiaries
Enter fullscreen mode Exit fullscreen mode

The architectural lesson is not:

shared device = fraud
Enter fullscreen mode Exit fullscreen mode

The lesson is that the original risk boundary stopped at the account.

The attacker did not.

Graph-derived evidence can therefore increase scrutiny without automatically converting every connected account into a fraud case.

The Takeaway

Fraud is often expressed through transactions.

But sophisticated fraud may only become visible through the relationships surrounding those transactions.

Identity and payment graphs can help expose that context, but they do not create certainty.

They introduce their own challenges around entity resolution, false positives, stale state, privacy, idempotency, explainability, and latency.

The goal is not simply to decline more payments.

The goal is to understand risk that exists across identities, devices, payment instruments, beneficiaries, sessions, and historical events — where a transaction-only view may never see it.

Want the deeper architectural breakdown, implementation considerations, failure scenarios, consistency trade-offs, privacy concerns, and full reasoning?

Read the full article on Medium

Follow my work

I write about software architecture, FinTech, AI, cybersecurity, distributed systems, mobile engineering, and production engineering.

Connect with me on LinkedIn

Explore more at vaibhavshakya.com

#FinTech #FraudDetection #SoftwareArchitecture #PaymentSecurity

Top comments (1)

Collapse
 
fintechrailsdigest profile image
Fintech Rails Digest •

the 'risk boundary stopped at the account, the attacker did not' line is the whole pitch for graph features in one sentence. the part most teams get wrong is the entity-resolution side you flagged: a wrong merge propagates risk onto legitimate users and a missed merge hides the ring, so keeping uncertain relationships uncertain instead of silently promoting them into permanent security facts is the discipline that keeps the graph useful. also glad you split authentication confidence from transaction risk, an authenticated session being socially engineered is exactly the case a device graph cannot see.