Reference🧭 Global overviewsAdvanced⏱ 18 min read

🔑 Authenticating without one-time passcodes

Passkeys and FIDO at issuers, delegating authentication to a merchant or a wallet, Secure Payment Confirmation, and what EMV 3DS 2.3 adds: the planned phase-out of SMS codes and what it means for acceptance

Why SMS codes are being phased out

An SMS one-time passcode is a short-lived string of digits that the issuer sends to the mobile number it has on file for the cardholder. The cardholder types it into the payment page. This code carried Europe's 2019 compliance push because it asked nothing of cardholders: no app to install, no enrollment, no new device. The move away from it is being decided by the networks and issuers, not by any regulatory ban. In the European Economic Area, the European Banking Authority's opinion of June 21, 2019, counts the SIM card as a valid possession element. An SMS code therefore remains formally compliant when paired with a second factor. Three things explain its retreat: the cost of the channel, how easily fraudsters obtain the code, and the roadmaps the networks have published.

⚠️
The SMS does not carry the dynamic link
Dynamic linking is the requirement, set by Article 5 of Delegated Regulation (EU) 2018/389, to tie the authentication code to the amount and payee of the transaction. The payer must be shown both. A message that carries only a string of digits does not fulfill that display function. The European Banking Authority has specified that when the SMS contains both the code and the payment details, the provider must take the necessary measures to ensure their confidentiality, authenticity, and integrity. The burden therefore falls on the issuer, over a channel where it controls neither the transport nor the receiving handset. Many European issuers meet the display requirement by moving the amount into their mobile app, with the SMS merely alerting the cardholder that a transaction is awaiting approval.

An SMS code is a shareable secret. Anyone who learns it can use it, and nothing in the code ties it to the site where it is entered. That opens three attack paths, none of which requires cryptographic skill. In a fraudulent SIM swap, the number is moved to a device the attacker controls, which then receives the messages meant for the cardholder. Malware installed on the phone reads the notification in the cardholder's place. The third path is the cheapest for the attacker, because it involves no technical means at all. A phone call is enough: the victim reads the code out to a fake bank representative.

🔑
A FIDO signature cannot be relayed
The browser offers a passkey only to pages whose domain matches the one it was created for, and the resulting signature covers the calling origin. A phishing page hosted on a lookalike domain therefore gets no signature it could relay to the legitimate site, because the authenticator refuses to sign for it. The difference from an SMS code lies in the nature of the secret. A code can be read aloud, whereas the private key is never exposed to the cardholder and so cannot be repeated by them. Any method built on a secret the cardholder can repeat over the phone remains exposed to social engineering, however long that secret is. The attack targets the cardholder, not the cryptography.

The cost of the channel has two components. Application-to-person SMS is billed per message and per country, under carrier and aggregator rate cards that issuers have little leverage to negotiate. On top of that comes a fraud specific to the channel: artificially inflated traffic. An attacker triggers mass code sends to number ranges whose termination fees they share. In effect, the attacker bills the attack to the victim. Neither carriers nor issuers publish the volumes involved. Application-to-person messaging providers document the mechanism. A poorly protected sign-up form then becomes a recurring expense for as long as code sends can be triggered unchecked.

Regulators have taken different positions. The European Economic Area has imposed no ban. The joint report by the European Banking Authority and the European Central Bank published on December 15, 2025, finds lower fraud on authenticated transactions, but that finding comes with no binding measure. Outside Europe, several central banks have moved faster. The Reserve Bank of India opened authentication to device-bound passkeys and biometrics, effective April 1, 2026. Bank Negara Malaysia ruled out SMS codes as a standalone second factor in late 2025. An issuer operating in several of these regions can therefore no longer offer the same method everywhere: the SMS code, still acceptable in the European Economic Area, satisfies neither India's directions nor Malaysia's policy.

June 21, 2019
European Banking Authority opinion classifying the SIM card as a valid possession element, which keeps SMS codes within compliance
EBA, EBA-Op-2019-06
2030
Mastercard's target date for fully tokenizing European e-commerce and ending manual entry of card numbers and one-time passcodes
Mastercard, press release of June 11, 2024
October 28, 2020
EMVCo publishes its guide to using FIDO data in 3-D Secure messages; the feature has been in the specification since version 2.1.0 in 2017
EMVCo, Use of FIDO Data in 3DS Messages
April 1, 2026
Reserve Bank of India directions take effect, opening authentication to passkeys and biometrics
Reserve Bank of India, Authentication Mechanisms Directions, 2025

The networks' timelines take the form of commercial commitments with distant deadlines. In June 2024, Mastercard committed to fully tokenizing European e-commerce by 2030. Manual card number entry and one-time passcodes would disappear on the same timeline. In 2024, Visa announced its own payment passkey service, built on the FIDO specifications. Neither announcement creates any obligation. They do show where the networks are putting their investment, and therefore which new features will arrive first and which issuers will offer them first.

Passkeys and FIDO: what counts as possession and what counts as inherence

A passkey is a cryptographic key pair created by an authenticator for a specific site and a specific account. It is defined by WebAuthn, a W3C specification that the FIDO Alliance combines with its own specifications under the FIDO2 name. The private key stays in the authenticator: the phone's secure element, the computer's trusted platform module, or a plug-in security key. It is never sent to the site, and a device-bound passkey never leaves the hardware that created it. The site stores only the public key, the credential ID, and a few pieces of metadata. For each authentication, the authenticator signs a challenge supplied by the site, along with the calling origin and a set of status flags. The server verifies that signature with the public key it has stored since enrollment.

Phishing resistance comes from checking the calling domain, first in the browser and then on the server. Each passkey carries a relying party ID, which is a domain name. The browser refuses to offer the passkey to a page whose domain does not match, and it includes the actual origin in the signed data. The server then compares that origin with the one it expects. The comparison fails as soon as an attacker relays the ceremony from another domain, however closely that domain resembles the legitimate one. Skipping this comparison throws away the very property that justified moving to FIDO, leaving nothing more than a biometric check with no guarantee of origin.

SCA elementWhat provides it in a passkeyWhat the server must check
PossessionThe non-exportable private key held by the enrolled authenticatorValid signature on the challenge, known credential ID, expected origin, consistent signature counter
InherenceBiometric matching performed locally on the deviceUser verification flag set to 1 in the authenticator data; the biometric data never leaves the device and is never transmitted
KnowledgeThe device passcode, when it serves as the verification methodThe same flag; on its own, the server cannot tell biometrics from a passcode unless the authenticator supplies more information
No second elementA ceremony in which no user verification took placeVerification flag set to 0; the authentication then counts as a single factor and does not meet SCA
How the elements of strong customer authentication map to what a passkey actually proves. The element categories come from Article 4(30) of PSD2; the flags and authenticator data come from the W3C WebAuthn specification.
⚠️
The verification flag carries all the proof of the second factor
The user verification flag is how the authenticator tells the server that it verified the cardholder before signing. Two separate settings control it. The authentication request must require user verification, and the server must reject any assertion whose flag is still zero. The request goes to the client, which is free to ignore it, so a hostile client can produce an unverified assertion despite a strict request. Only the server-side check filters out such assertions. Without it, single-factor ceremonies get logged as two-factor ones. Checking for this control is the first item in any implementation review.

Passkeys fall into two categories based on how they are stored. A synced passkey is backed up to the platform provider's keychain and follows the user's account from one device to another. A device-bound passkey never leaves the hardware that created it. WebAuthn exposes this distinction to the server through two flags: backup eligibility and current backup state. Both flags reach the server at enrollment. An issuer that requires a possession factor tied to a device can therefore reject synced passkeys before any payment is made.

⚠️
What a synced passkey is worth as a possession factor
Syncing changes what the possession factor actually proves. The cardholder then proves control of a platform account, protected by that provider's recovery methods, rather than possession of a specific phone. The European Banking Authority has taken no public position that explicitly settles this case, so each issuer makes its own call. A common practice is to accept synced passkeys for sign-in and to require a device-bound passkey to approve a payment. When assessing an authentication provider, look at the policy it applies to synced passkeys, since reading the flags does not dictate which rule is adopted.

Independence of elements is governed by Article 9 of the same delegated regulation. It allows both factors to run on a single multipurpose device, provided that mitigating measures, including separate secure execution environments, prevent the compromise of one from compromising the other. A private key stored in the secure element and unlocked by a biometric match processed in that same environment meets this requirement directly. The compliance documentation should therefore describe the device's hardware architecture environment by environment, showing what separates biometric processing from key storage. The authenticator's brand name says nothing about that separation.

Enrollment is the ceremony in which a passkey is created and then registered by the issuer. It has three stages. The first creates the passkey during a session that is already authenticated. The most common occasion is a 3-D Secure challenge served from the access control server's domain, or a session in the banking app. The second stage records the public key, the credential ID, the authenticator's model identifier, and the backup flags. The model identifier is looked up in the FIDO Alliance Metadata Service, which publishes the declared characteristics of the authenticator families registered with it. The service makes it possible to exclude a model with a known weakness. Not every family is registered there, so an identifier the service does not recognize is not a red flag in itself. The third stage manages the lifecycle: revocation, device changes, and the fallback path when no passkey is available.

🔑
Enrollment sets the security ceiling
A passkey's assurance level is set by the ceremony that created it. A passkey enrolled after an SMS code inherits that code's weaknesses, since an attacker who intercepted the code could have enrolled their own passkey. That attacker then holds a legitimate possession factor and has nothing left to intercept on later payments. The recovery process has the same effect, because it opens a second path to creating a passkey. Adding a passkey should therefore be treated as a sensitive action and notified to the cardholder on a different channel from the one used for enrollment. Some issuers impose a waiting period before a newly enrolled passkey can be used to pay.
  • Require user verification and check it on the server. The request binds only the client, which is free to ignore it; only the flag received in the assertion proves that a second factor was presented.
  • Store the authenticator's model identifier. It tells you after the fact which hardware family produced the passkey, and lets you withdraw a model if a weakness in it is published.
  • Decide in writing how synced passkeys are treated. Accepted for sign-in but refused for payment, or accepted everywhere: the rule must exist before the first enrollment.
  • Notify the cardholder of every new passkey on a separate channel. For an attacker, a fraudulent enrollment pays better than an interception, and it leaves no trace the cardholder can see.
  • Keep a documented fallback path. Lost devices, factory resets, purchases from a shared computer: these cases happen, and the fallback that handles them sets the real security level of the whole setup.
  • Check the calling origin on every assertion. Without this check, phishing resistance disappears, and the setup is no better than a biometric password.

Delegated authentication: who authenticates and who is accountable

Delegated authentication means that a third party performs the strong customer authentication ceremony on behalf of the issuer, which bears the obligation. That obligation comes from Article 97 of PSD2, which assigns it to the issuer without specifying who actually carries out the ceremony. The third party can be a merchant, a wallet, or a specialist provider, bound to the issuer by an outsourcing agreement. Liability does not transfer, however, as the European Banking Authority points out both in its June 2019 opinion and in its outsourcing guidelines. The supervisor therefore holds the issuer accountable, including for ceremonies performed by the third party.

Three setups coexist in the market, and each allocates contractual commitments differently. A merchant authenticates its own signed-in customer with the passkey that customer uses to sign in. A wallet authenticates the cardholder on the device, as Apple Pay and Google Pay have done from the start. An authentication provider works for a group of merchants under a network program that approves and monitors it. The first two require a bilateral agreement. The third is contracted by joining the program, with no direct relationship between the merchant and each issuer, which makes it workable for a merchant operating in several countries.

How the proof travels in delegated authentication
Merchant or wallet
Runs the FIDO ceremony with the cardholder
The passkey was created for its own domain, and user verification is required and then checked on the server
Merchant or wallet
Assembles the authenticator attestation data
EMVCo defined this data set and published its usage guide on October 28, 2020; it describes the device without identifying the person
3-D Secure Server
Sends the authentication request with the appropriate challenge indicator
The indicator signals that strong customer authentication has already been performed and that no challenge is requested
Network directory server
Routes the request to the issuer's access control server
Lookup by BIN range, as for any EMV 3-D Secure transaction
Access control server
Accepts the delegation or issues its own challenge
The issuer is never required to accept; a refusal comes back as a status that calls for a challenge
Acquirer
Carries the matching indicator in the authorization message
Delegated authentication or the exemption must also be flagged in the authorization; otherwise, a soft decline requesting SCA remains likely
⚠️
The liability shift is not a given
Public descriptions of the programs disagree on who bears fraud losses. Some say the liability shift is preserved as long as proof of authentication accompanies the transaction. Others say fraud stays with the acquirer and the merchant when the merchant performed the authentication itself. A single transaction cannot fall under both rules, so the disagreement is about substance, not wording. The deciding text is the network rule for the region concerned, and it is not published in full. A business case built on delegation therefore requires getting that rule in writing from the acquirer before development starts.
QuestionWhat decides itWhat to get in writing
Who performs the ceremonyThe outsourcing agreement with the issuer, or membership in a network programThe exact scope delegated, the amounts covered, and the cases explicitly excluded
Who bears fraud lossesNetwork rules, which vary by program and regionThe applicable rule, cited by reference, not a sales paraphrase of it
How the proof is retainedThe retention policy of the provider that performed the ceremonyRetention period, format provided, and the procedure for producing it in a dispute
How delegation endsPerformance and fraud thresholds set by the programWithdrawal notice period, trigger thresholds, and how the flow behaves once delegation is withdrawn
Four points to settle before delegating. The provider's technical documentation settles none of them.

Both major networks publish their own delegation programs. Visa runs a delegated authentication program, Mastercard offers its own under its cardholder authentication brands, and some domestic schemes offer one as well. Eligibility generally depends on volume, a fraud rate kept in check over time, and the use of authentication that complies with the FIDO specifications. The exact thresholds are not public. Programs therefore cannot be compared without going through an acquirer. The acquirer's access to network rules determines what information the merchant will get, which makes it a criterion for choosing the acquirer itself.

Delegation promises a single gain: eliminating the challenge the issuer serves in the middle of checkout. A merchant that already authenticates its customer at sign-in reuses that ceremony instead of imposing a second one a few seconds later. The bar is high, because the sign-in ceremony must itself meet strong customer authentication, with two independent elements and dynamic linking to the amount and payee. The proof must then travel all the way to the authorization message. An issuer that does not see it returns a soft decline requesting SCA, even though the ceremony did take place. A password followed by an emailed link meets neither condition. This filter rules out most candidates for delegation.

🔑
Delegation requires bank-grade authentication already in place
Delegation passes to the issuer a ceremony the merchant already performs; it creates no new assurance. A merchant whose sign-in flow relies on a password and an emailed code has nothing it can delegate. Its application to a program would be rejected. The investment therefore goes first into the merchant's own authentication system. The building blocks are known and can be costed: passkeys, user verification checked on the server, and display of the amount and payee at the moment of approval. Delegation comes afterward, once that system is in place, and it capitalizes on work already done.

Secure Payment Confirmation and in-browser authentication

Secure Payment Confirmation (SPC) is a W3C specification developed by its Web Payments Working Group. It handles payer authentication with a passkey during an online payment, and it adds just two capabilities to WebAuthn. The first is invoking a passkey from an origin other than the one that created it, which WebAuthn prohibits by design. The second is a confirmation dialog drawn by the browser that shows the payee, the amount, and the payment instrument before the user approves. These two additions meet payment needs that WebAuthn alone did not cover.

The second capability has a regulatory consequence. The client data signed by the authenticator contains a payment object listing the payee, the calling origin, the amount, and the chosen instrument. The signature therefore covers the transaction itself, not just a random challenge. The dynamic linking requirement in Article 5 of the delegated regulation is met by the design of the protocol. An ordinary WebAuthn assertion does not carry this data, so an issuer that wants to demonstrate dynamic linking has to bind it to the ceremony itself. The protocol spares the issuer that work: the same assertion serves as proof of authentication and proof of dynamic linking.

🔑
The merchant does not control the display
In a Secure Payment Confirmation ceremony, the dialog the payer sees is rendered by the browser itself. The merchant page supplies the data to display but cannot change it afterward or cover the dialog with another element. That separation gives the assertion its evidentiary value, because the amount the user confirms is also the amount the authenticator signs. An equivalent mechanism built inside a merchant page offers no such guarantee. The page controls its own display, so it can show an amount different from the one it sends for signing.

Using Secure Payment Confirmation requires prior enrollment. The passkey must have been created for the issuer's or the network's domain, which requires a moment when that domain is running in the cardholder's browser. The 3-D Secure challenge provides that moment, since it is served from the access control server's domain. Enrollment from a frame embedded in a third-party page is also possible, provided the host page explicitly grants, through a permissions policy, the right to create a passkey for payments. Without enrollment, the merchant has no passkey to invoke, and the flow falls back to the standard challenge. The access control server must then be able to verify this type of assertion. Far from every provider can do so yet.

DimensionStatus
Standards statusW3C Candidate Recommendation since 2023, published by the Web Payments Working Group
Path to RecommendationRequires a second independent implementation, with no announced timeline
Browsers that support itChrome and Edge, on Windows, macOS, and Android
Browsers that do not support itSafari and Firefox, and therefore every browser available on iOS
Impact on the flowA fallback to the standard 3-D Secure challenge remains mandatory, with no foreseeable end date
Maturity of Secure Payment Confirmation. Source: W3C, Secure Payment Confirmation specification and call for implementations published in 2023.
⚠️
iOS rules out an entire user base at a stroke
On iOS, browsers rely on the rendering engine supplied by the operating system. The opening of iOS to third-party engines in the European Union has not led to any mass-market deployment so far. Because that engine does not implement the specification, the entire iOS user base is excluded, whatever browser the user has installed. A European merchant that gets a large share of its traffic from iOS keeps the standard 3-D Secure challenge as a complete flow, the only path open to those users. Secure Payment Confirmation should then be treated as an optimization for a measured segment of traffic, not as a replacement for the standard challenge.

The decision to implement Secure Payment Confirmation rests on two internal measurements taken beforehand. The first is the share of eligible traffic, broken down by browser and by operating system. The second, for that share only, is the abandonment rate of the current challenge, the only figure that gives the project an economic value. No comparable public benchmark exists for this rate, since each provider publishes its own using its own denominator. Internal measurement is therefore the only verifiable basis for the decision, and it takes a few days to produce.

EMV 3DS 2.3 and beyond: what a merchant can ask for today

EMV 3-D Secure is the messaging protocol a merchant uses to ask the issuer to authenticate the cardholder during a remote payment, and that the issuer uses to respond. EMVCo publishes the specification and manages its versions. Version 2.3 did not introduce passkey authentication. FIDO data has traveled in 3-D Secure messages since version 2.1.0, published in 2017. EMVCo published the usage guide for that data on October 28, 2020. The guide defines an authenticator attestation data set that describes the device without carrying any information that identifies the person. Version 2.3.1, published in 2022, adds device binding and automated out-of-band handoffs between the merchant app and the banking app. It also extends support for Secure Payment Confirmation.

2017
EMV 3DS 2.1.0
The specification already supports carrying FIDO data in the messages.
December 2018
EMV 3DS 2.2.0
The challenge indicators are extended to cover the cases opened up by European regulation.
October 28, 2020
EMVCo guide on FIDO data
The authenticator attestation data set is defined and made usable.
2022
EMV 3DS 2.3.1
Device binding, automated out-of-band handoffs, stronger Secure Payment Confirmation support.
2023
SPC becomes a W3C Candidate Recommendation
Call for implementations; Chrome and Edge implement it, Safari and Firefox do not.
⚠️
The version that counts is the negotiated one, not the certified one
The protocol version is negotiated for every transaction among the three servers involved. The 3-D Secure Server, the directory server, and the access control server each declare the versions they support. The highest version they have in common is used. An issuer whose access control server is still on 2.1 therefore drags the transaction down to that level, whatever version the merchant was certified on. The 2.3 features then become unavailable, with no error message to flag it. What the merchant needs is the breakdown of versions actually negotiated across its provider's traffic, by issuing country.

Requestor challenge indicators are the fields through which a merchant conveys its exemption and delegation strategy. Version 2.2 expanded the list to cover the cases opened up by European regulation. They include risk analysis already performed and strong customer authentication already carried out upstream. These values do not bind the issuer, which remains free to issue a challenge anyway. They tell the issuer what the merchant has done and how it would like the transaction handled. Version 2.2 also introduced decoupled authentication, in which the issuer verifies the cardholder outside the merchant's checkout flow. This mode enables browserless flows and payments confirmed in the banking app. The exact mapping between each value and each use case depends on the version implemented and is set out in the provider's documentation.

RequestWhat it depends onHow to verify it
3-D Secure Server certified on 2.3.1EMVCo's certification program and the provider's roadmapAsk for the letter of approval and its issue date
Actual use of 2.3 on live trafficIssuers' migration of their access control servers, which the merchant does not controlRequire a monthly breakdown of negotiated versions by issuing country
Carrying FIDO attestation dataSupport for the data set EMVCo defined in 2020Have a sample message produced, showing the fields actually populated
Joining a delegation programNetwork approval and the acquirer agreementGet the program name, the region covered, and the applicable liability rule
Secure Payment Confirmation supportIssuer-side enrollment and the cardholder's browserAsk for the measured share of eligible traffic and exactly how the fallback behaves
Authentication pricingThe provider's contract, which rarely lines up with competitors'Get it spelled out whether billing is per authentication request or only per challenge served
What a merchant can ask its provider for today, and what the answer depends on

The cost falls into three separate lines, and the first is the cheapest. The provider bills 3-D Secure authentication per unit, on a basis that varies by contract: every request sent, or every challenge actually served. Delegation adds the cost of an authentication provider and of joining the network program. The heaviest line is maintaining the fallback paths. It appears in no price list. No negotiation with the provider covers it. Every added flow has to be tested, measured, and fixed, for a population that shrinks as passkeys become widespread.

🔑
Three decisions, in this order
Three decisions drive the program, and the order in which they are made changes its cost. The first concerns passkey enrollment at the issuer, without which none of the mechanisms described above exists. The second concerns the quality of the ceremony the merchant already performs, the only acceptable foundation for credible delegation. The third concerns measuring eligible traffic, which determines whether Secure Payment Confirmation deserves a budget line this year. Taking them in reverse order means building an integration before knowing what share of traffic it will reach, and the measurement then comes after the money has been committed.
ℹ️
What no one can quantify yet
Three figures are missing from any investment case on this topic. No published European series tracks the share of authentications still handled by SMS code. The only available data is national and built on different scopes. No consistent public series compares abandonment rates between a standard challenge and a passkey ceremony. The unit cost of an application-to-person SMS varies by country and by contract, and aggregators' public rate cards say nothing about the rates issuers actually negotiate. The lack of these series is itself informative, because it rules out any comparison among players on these three figures. An investment case that depends on them must therefore rest on internal measurements, taken before the decision rather than after.

Elsewhere in the world. The same mechanism, elsewhere.

The end of SMS one-time passcodes

European Economic Area

No ban. The European Banking Authority's opinion of June 21, 2019, counts the SIM card as a valid possession element, which keeps SMS codes compliant when paired with a second factor. The move away from the channel is being driven by the networks and issuers, not by the regulator.

EBA, Opinion on the elements of strong customer authentication under PSD2, EBA-Op-2019-06, June 21, 2019

India

Two factors required, at least one of them dynamic, with authentication explicitly opened to device-bound passkeys, biometrics, and risk-based authentication. Effective April 1, 2026.

Reserve Bank of India, Authentication Mechanisms for Digital Payment Transactions Directions, 2025

Malaysia

SMS one-time passcodes are no longer sufficient as a standalone second factor. The regulator's technology risk management policy requires migration to device-bound authentication that resists interception.

Bank Negara Malaysia, Risk Management in Technology policy, November 28, 2025