The 4-party model for AI payments: how Visa and Mastercard rebuilt the rails

The traditional 4-party model was designed for humans. Here is how each of its five actors changes when an AI agent initiates the transaction — and how Visa and Mastercard built different answers to the same problem.

Apr 29
Mastercard Agent Pay launched
Apr 30
Visa Intelligent Commerce launched
Oct 14
Both partnered with Cloudflare

On April 29, 2025, Mastercard announced Agent Pay. On April 30, Visa announced Intelligent Commerce. One day apart, same week, same problem — and they built meaningfully different architectures to solve it. Both announced their Cloudflare partnership on the exact same day in October. That’s not a coincidence. That’s the standard converging.

This post is about the 4-party model: the settlement architecture that has moved money between consumers, merchants, banks, and networks since the 1970s. It was built around one assumption — a human is present, initiating the transaction, in real time. That assumption no longer holds.

Here is exactly what breaks at each layer when an AI agent initiates a purchase, and how each network rebuilt around it.

4-party model → 5-party model · authorization flow

4-party: human checkout — every layer passes

consumer · merchant layerpayment rails layerConsumerinitiatesMerchantcheckoutAcquirerStripe · AdyenNetworkVisa · MastercardIssuerChase · AmexISO 8583 flows through network rails · T+1 settlement · chargebacks unchanged
press play · or click ← → to step through the flow
0 / 8

Why the 4-party model breaks for agents — layer by layer

The 4-party model is also a fraud prevention stack. Each participant has a specific job. The problem is that every job was designed around one assumption: a human is present, acting in real time. When that assumption disappears, the stack doesn’t degrade gracefully — it fails completely, at every layer simultaneously.

Layer 1: Merchant + Gateway

Before an authorization request ever leaves the merchant, the gateway runs behavioral checks: CAPTCHA, WAF rules, device fingerprinting, velocity limits. The point is to catch automated scripts brute-forcing card numbers before they hit the banking system.

An AI agent fails every one of these checks — not because it’s malicious, but because it’s optimal. No mouse movement. Machine-speed execution from a data center IP. Headless Chrome fingerprint. Algorithmically timed requests. A legitimate agent buying a $90 pair of headphones looks indistinguishable from a coordinated carding attack. The merchant blocks the request before payment is even attempted. Nothing downstream matters if the agent can’t get through the front door.

Layer 2: Acquirer + Processor

If something gets past the gateway, the acquirer evaluates it against the merchant’s normal transaction profile — AVS match, CVV, IP reputation, behavioral patterns.

The real issue here is F022. That’s the POS Entry Mode field in ISO 8583, set to 01 (manual key entry) by default for ecommerce since the 1990s. It tells every system downstream: apply human transaction rules. An agent transaction from an AWS IP with no AVS match, carrying F022=01, looks exactly like credential stuffing. The field that needed to change was this one — and changing it is the most precise description of what both networks actually built.

Layer 3: Card Network

The network has cross-merchant visibility that no single bank has. It runs large-scale ML models trained to catch distributed attacks. By definition, machine-speed transactions from data center IPs with no human behavioral signal are what those models were built to flag.

A Skyfire agent buying headphones gets the maximum risk score. Not because it did anything wrong, but because it matches the exact behavioral fingerprint of every attack the model was trained on. There’s also no mechanism to verify that the consumer already authorized this specific purchase before the transaction arrived.

Layer 4: Issuer Bank

The issuer receives the network’s risk score and makes the final call. When signals are ambiguous — which a maximum risk score very much is — it triggers 3DS step-up authentication: an SMS or biometric challenge sent to the cardholder in real time.

An agent cannot respond to a 3DS SMS. The transaction fails permanently. No fallback, no retry path. The sale is gone.

4-party model · layered fraud defense

How each layer verifies a human transaction

Layer · Actor · Security question
Tools (all pass)
01
Merchant + Gateway
Is this a human, not a bot?
CAPTCHADevice fingerprintVelocity checksWAF rules
02
Acquirer + Processor
Does this transaction look legitimate?
AVS matchingCVV validationIP reputationF022 = 01
03
Card Network
Is this part of a distributed attack?
ML risk scoringCross-merchant viewBot network detection500+ data points
04
Issuer Bank
Is the cardholder authorizing this?
Behavioral historyRisk score3DS fallbackRules engine
Every tool assumes human presence. Remove the human — and the entire stack fails simultaneously.

What each network actually rebuilt

Layer 1: replace behavioral heuristics with cryptographic identity. The WAF can’t tell a bot from a legitimate agent based on mouse movement — but it can verify a signed HTTP request against a public key. Both networks provide exactly this. Visa via the TAP JWT; Mastercard via Cloudflare verification at the CDN edge before the request reaches merchant infrastructure.

Layer 2: add new ISO 8583 fields that signal agent context. F022=81 for agent-initiated (replacing the 1990s default of 01). F048 for the agent identifier. F126 for the instruction integrity hash. The acquirer’s risk model now has a signal to work with.

Layer 3: pre-payment instruction registry. The consumer’s authorized intent is registered before the transaction. When the ISO 8583 message arrives, the network validates that amount, merchant, and agent match the original authorization. Anything tampered in transit gets declined with response code 58.

Layer 4: replace 3DS with pre-authorized spending policies. The FIDO2 Passkey assertion happens at enrollment — at instruction time, not transaction time. When F022=81 arrives, the issuer loads the agent’s spending policy and runs deterministic checks: balance, per-transaction limit, merchant category, velocity, token status. No probabilistic scoring. No step-up needed because the consumer already proved presence when they enrolled.

The layered defense is preserved. Every layer still has its job. The tools have been replaced with ones that work for a principal who isn’t physically present.

4-party model · the complete rebuild

Every security tool replaced — layer by layer

human-era tools → broken for agents → Visa and Mastercard replacements
toolhuman-era
toolbroken for agents
→ replacementrebuilt for agents
click any layer
01
Merchant + GatewayIs this a human?
CAPTCHADevice fingerprintVelocity / IP check
02
Acquirer + ProcessorDoes the transaction signal match?
AVS / CVV matchF022 = 01IP reputation
03
Card NetworkIs this a distributed attack?
ML behavioral modelDistributed detectionNo pre-auth registry
04
Issuer BankIs the cardholder present?
Probabilistic risk score3DS step-up authHuman-in-loop fallback
The 4-party settlement architecture is unchanged. ISO 8583 still flows from acquirer to network to issuer. T+1 clearing. Chargebacks. What changed is every security tool — replaced with one that works for non-human principals.

How each role changes

The consumer

In the old model: present at every transaction. Authenticates, enters credentials, approves the charge.

In the agent model: present once, at enrollment. Sets a spending policy — category limits, per-transaction cap, daily velocity — and signs a FIDO2 Passkey that pre-authorizes the agent. After that, they’re absent. The agent runs the transaction; the consumer gets a push notification when it’s done.

This is a fundamentally different trust model. The consumer isn’t approving a transaction — they’re configuring a policy that governs a class of future transactions. It’s closer to setting up a direct debit than clicking a buy button.

The AI agent

There’s a new party in the model. Not a consumer. Not a merchant’s checkout page. An autonomous entity that sits between consumer intent and merchant execution, holds its own cryptographic identity, and signs every request it makes. Both networks treat it as an independent principal — which is the only way to make the authorization chain traceable.

The issuer: two modes

When F022=81 arrives, the issuer loads the consumer’s agent spending policy instead of running the standard human behavioral model. The checks become deterministic: balance, per-transaction limit, category, velocity, token status. Citi and US Bank went live first on Mastercard Agent Pay; all US Mastercard cardholders were enabled by November 2025.

The acquirer

For agent transactions: F002 gets the agent-specific token (not the real PAN), F022=81 signals agent-initiated, F048 carries the agent identifier, F126 carries the instruction integrity hash. The ISO 8583 message is the same format — the fields that changed are these four.

The merchant: where the two architectures actually differ

Visa: TAP SDK in checkout. JWT validation local, under 5ms. Explicit integration required.

Mastercard: Web Bot Auth at the CDN layer. No merchant code change for basic verification. Agents submit a Dynamic Token Verification Code in the existing card fields. Merchants get agent support without touching their codebase.

Mastercard is optimizing for adoption at scale — 100M+ merchants is a different constraint than a fintech integration. Visa is optimizing for the richness of what the merchant learns about the agent credential.


Visa Intelligent Commerce: the TAP architecture

Consumer enrolls → VIC enroll_card() → VTS issues VCN bound to agent_id
Consumer creates FIDO2 Passkey on device

--- Transaction ---

Agent → POST tap.visa.com/v1/validate
        (Ed25519 signed, RFC 9421 HTTP Message Signatures)
Visa TAP → validates signature, nonce, timestamp, wallet policy
Visa TAP → issues JWT (TTL 90s, instruction_ref: pi-abc123)
Visa TAP → registers payment instruction in VIC registry

Agent → POST merchant/checkout (Authorization: TAP-1.0 {jwt})
Merchant → validates JWT locally against cached Visa public key

Agent → VIC retrieve_payment_credentials(instruction_ref)
       → returns VCN tokenized_pan

Acquirer → ISO 8583 MTI 0100
           F002: VCN
           F022: 81           ← agent-initiated
           F048: AGNT:agent_id
           F126: pi-abc123:sha256:...  ← TAP integrity hash

VisaNet → validates F126 against VIC registry (amount, merchant)
        → VTS de-tokenizes VCN → routes to issuer

Issuer → loads agent spending policy for token → approves: F039=00

Agent → VIC submit_commerce_signal(instruction_ref, outcome)

The key insight: F126 creates an integrity lock. VisaNet validates that the amount and merchant in the ISO 8583 message match the original payment instruction the consumer authorized. Tampering in transit → decline with response code 58.

Visa partners: Cloudflare (WBA) · tap.visa.com/.well-known/agents/ · github.com/visa/mcp · Skyfire · Stripe · Adyen · Worldpay


Mastercard Agent Pay: the token-first architecture

Consumer enrolls → Mastercard Token Service issues Agentic Token
                   bound to agent_id + spending policy
Consumer creates Mastercard Payment Passkey (FIDO2)

--- Transaction ---

Agent → sends HTTP request to merchant
CDN layer (Cloudflare) → Web Bot Auth verification
                       → validates agent cryptographic identity
                       → blocks unregistered agents before reaching merchant

Agent → submits Dynamic Token Verification Code (DTVC)
        in existing merchant checkout form
        (no merchant code change required)

Acquirer (Braintree/Checkout.com/Fiserv) → builds ISO 8583
          F002: Agentic Token (not real PAN)
          F022: agent-initiated equivalent
          Agent context in tokenization metadata

Mastercard Network → validates Agentic Token binding
                   → routes to issuer with agent policy context

Issuer → loads agent spending policy → approves

The key insight: the token itself carries the agent binding. Trust is embedded in the credential, not in a parallel identity handshake.

Mastercard partners: Cloudflare (WBA) · FIDO Alliance · Microsoft · OpenAI · Google · PayPal · Braintree · Checkout.com · Fiserv


Side by side

Visa VIC vs Mastercard Agent Pay · Architecture comparison

Same problem — different architecture

Visa Intelligent Commerce
Mastercard Agent Pay
Program
shared
Visa Intelligent Commerce (VIC)
Mastercard Agent Pay
Token type
Virtual Card Number (VCN)
Mastercard Agentic Token
Identity protocol
Trusted Agent Protocol (TAP)
Agent Pay Acceptance Framework
Merchant integration
TAP SDK — explicit
CDN layer — no-code
Edge / identity partner
shared
Cloudflare (WBA)
Cloudflare (WBA)
ISO 8583 field
F022=81, F048, F126
Equivalent modifications
Consumer credential
shared
FIDO2 Passkey
Mastercard Payment Passkey
AI platform partners
Skyfire, Anthropic, OpenAI
Microsoft, OpenAI, Google, PayPal
Acquirer partners
Stripe, Adyen, Worldpay, Nuvei
Braintree, Checkout.com, Fiserv
Open source
github.com/visa/mcp
developer.mastercard.com/agent-pay
Standards body
IETF RFC 9421 (lead contributor)
FIDO Alliance (Payments Working Group)
Settlement
shared
T+1 · standard Visa clearing
T+1 · standard Mastercard clearing
shared approach
different approach
click any row to expand

The deeper differences are in the design philosophy. Visa adds an identity layer before the checkout request reaches the merchant — the TAP JWT. Mastercard intercepts at the CDN layer, earlier, without involving the merchant at all. Visa’s VCN looks like a card number and lives in F002 as expected. Mastercard’s Agentic Token carries agent-binding metadata in the token lifecycle itself — trust is in the credential, not in a parallel handshake.

The merchant integration gap is the one that will matter most at scale. Visa requires explicit TAP SDK integration. Mastercard requires nothing. For most merchants, “no code change” is the end of the conversation.


What’s actually the same

The October 14, 2025 Cloudflare announcements tell you something. Both networks announced their Web Bot Auth partnerships on the exact same day — not because they coordinated, but because they both arrived at the same cryptographic primitive: IETF RFC 9421 HTTP Message Signatures. The standard converged before either company made it official.

Both also bet on FIDO2 Passkeys as the consumer authorization mechanism. The biometric challenge happens at enrollment, not at transaction time. The agent then operates within whatever the consumer authorized.

And critically: neither network replaced the rails. ISO 8583 still flows from acquirer to network to issuer. Settlement is T+1. Chargebacks work the same way. The 4-party model is extended, not abandoned. Everything that exists — thousands of acquirer integrations, billions of cards, decades of issuer infrastructure — continues to function without modification.


What’s still not solved

Multi-agent delegation. When a supervisor agent delegates to a subagent, which one holds the TAP credential or Agentic Token? Neither network has published a delegation chain protocol. This is the first hard problem as orchestration systems get more complex.

Cross-network interoperability. A consumer with a Visa card on a Mastercard-integrated platform creates ambiguity. A Visa-registered agent is not automatically recognized by Mastercard’s CDN layer. These are parallel systems with no shared registry.

Dispute evidence. What constitutes sufficient evidence in an agent-initiated chargeback where the transaction was the tenth step in a multi-agent orchestration workflow? Not formally defined.

PSD2. Strong Customer Authentication was designed for human authentication. Pre-authorized spending policies don’t map onto the SCA framework cleanly — and the EU hasn’t indicated how they will.


For engineers building in this space

On Visa: Start at developer.visa.com/capabilities/visa-intelligent-commerce. The open-source MCP server (github.com/visa/mcp) gives full VIC access through standard Claude/GPT tool calls. TAP registration and Ed25519 key pair setup take longer than expected — budget for it.

On Mastercard: developer.mastercard.com/agent-pay. Merchants take the no-code CDN path. Acquirers integrate at the Agentic Token requestor layer via Mastercard’s Secure Card on File service.

If you’re building agents, not infrastructure: Skyfire’s KYAPay handles Visa VIC + TAP registration. The PayPal partnership and Microsoft Copilot Studio are the fastest paths to Mastercard production.

If you’re building for both: The RFC 9421 layer is shared — the same Ed25519 key pair format works across both networks. Token issuance and spending policy layers are separate. Start with the identity layer; it’s the part that converges.


Sources


Coming next

03
ISO 8583 for agents: the complete field reference
Every modified field, valid values, how issuers interpret F022=81, what T+1 clearing looks like.
04
The Trusted Agent Protocol spec, line by line
Ed25519 key registration, nonce store design, and why replay protection is harder than it looks.
05
x402 in depth: HTTP-native payments for agents
The payment flow, facilitator architecture, V2 spec changes, and when to use x402 over TAP.

All diagrams built with payarch — open source tool for visualizing agentic payment architectures.