An AI Revenue Recovery Engine: Name Matching That Mostly Says No

By Filip Michalsky•

Mandi tried to deposit $16 into her favorite online game. Her ID says Amanda.

Our previous deterministic-only fraud checks blocked her account right away. For most merchants, that's the last time Mandi ever plays.

AI name matching on Soap

What is cardholder name matching?

Name matching compares the name on a payment card with the name a customer verified during KYC (know your customer), usually from a government ID. If someone pays with a card in a different name, that is a classic sign of a stolen card, so the payment is stopped.

Why name matching is messy

Name matching exists for a good reason: the name on the card has to match the verified player, so stolen cards don't clear. But names are messy. Nicknames, middle names, double last names, diacritics that get dropped (José vs. JOSE), suffixes like Jr., and card networks that cut long names short. A deterministic check can't tell any of that from a stranger. So every mismatch was treated as fraud, and a block was permanent.

Name on the cardVerified nameWhy a strict check fails
MANDIAmandaNickname
JOSEJoséDropped diacritic
Robert Carter Jr.Robert CarterSuffix
ABERNATHAbernathyCard network cut the name short
One of two surnamesSpanish double surnameThe card only carries half

The hidden cost of false declines

A fraud check that blocks a real customer is called a false decline, or a false positive. It doesn't show up as fraud loss, so it is easy to miss, but it costs the payment, the customer's next payments, and often the customer. Someone who is locked out of their account over their own name rarely comes back.

The obvious fix is "let an LLM decide." In payments, that sentence should scare you. We were afraid of a model that approves everything to be helpful, a family member's card waved through, an unblock nobody can audit.

An AI revenue recovery engine whose job is mostly to say no

So at Soap Payments we built an AI revenue recovery engine whose job is mostly to say no. It only runs after the deterministic check has already failed. It gets both names and a strict written policy, and it answers only one question: semantically the same name, or not? Only a high-confidence "yes" lifts the block. On a timeout or an error, it fails closed. Every unblock is written to the audit trail as performed by AI.

Built with Claude Haiku 4.5 from Anthropic and OpenRouter for routing.

Guardrails for using an LLM in a fraud check

The design choices above work as a checklist for any team putting a language model near money:

  1. Run second, not first. The deterministic check still decides every clear case; the model only sees the leftovers.
  2. Ask one narrow question. Same name or not, judged against a written policy, not an open-ended "is this fraud?"
  3. Require high confidence. Anything less than a confident yes keeps the block.
  4. Fail closed. A timeout or an error never unblocks a payment.
  5. Audit everything. Every unblock is labeled as done by AI, so a person can review it.

After a soft launch in production

  • Tens of thousands of name checks
  • Over 4.8% of blocked payments recovered that would otherwise have been lost
  • Minimal latency, zero API errors

It refused a family member's card, the same person retrying someone else's card five times, and a street address typed into the name field. It approved "Robert Carter Jr." against "Robert Carter", a card network that cut "Abernathy" to "ABERNATH", and a Spanish double surname the card only carried half of.

It says no far more often than it says yes, and that's exactly why we trust the yeses.

Speed and safety weren't in tension, because the guardrails were designed before the model was invited in. For more on how we run AI agents in payments, read Need for Speed in Agentic Finance.

Frequently asked questions

What is a cardholder name mismatch?

It is when the name on the card doesn't exactly match the customer's verified name. It can mean a stolen card, but it is often a nickname, a missing accent, a suffix or a name the card network shortened.

Why are legitimate payments blocked for a name mismatch?

A strict check compares the name on the card with the verified name letter by letter, so nicknames, double surnames, missing accents, suffixes and shortened card names all look like different people.

Is it safe to use an LLM in a fraud check?

Only with guardrails. Soap's engine runs only after the strict check fails, follows a written policy, unblocks only on a high-confidence match, keeps the block on any error, and logs every unblock.

How many blocked payments did it recover?

After a soft launch with tens of thousands of name checks, over 4.8% of blocked payments were recovered that would otherwise have been lost.

Talk to the Soap team about recovering payments your checks block today.