Intent to Deprecate: The "basic-card" method of PaymentRequest API

297 views
Skip to first unread message

Liquan (Max) Gu

unread,
Sep 3, 2021, 10:25:36 AM9/3/21
to blink-dev, paymen...@chromium.org

Contact emails

ma...@chromium.orgpaymen...@chromium.org

Specification

https://www.w3.org/TR/payment-method-basic-card/

Summary

Deprecate the "basic-card" payment method from PaymentRequest API.


Blink component

Blink>Payments

Motivation

* Its usage is low and declining, underperforms other payment methods in time-to-checkout and completion rate and does not have improvement potential. * W3C's interest in it has waned. 6 participants supported the deprecation and no objection[1], and W3C has deprecated the spec[2]. [1] https://lists.w3.org/Archives/Public/public-payments-wg/2021Aug/0038.html [2] https://github.com/w3c/payment-method-basic-card/pull/90/files


Interoperability and Compatibility

* Chrome is the only implementer of basic-card, so the basic-card removal from Chrome will increase interoperability.
* Since no other browser implements basic-card, web developers already need workarounds to support other browsers.
* Whether basic-card is supported can be detected via canMakePayment. Web developers normally use this to decide whether to fallback to other methods.
* We have checked the few top sites via UKM - they all appear to work with basic-card disabled because they fallback to other methods to get payment info.

Tracking bug

https://crbug.com/1209835

Estimated milestones

M96

Link to entry on the Chrome Platform Status


This intent message was generated by Chrome Platform Status.

Stephen Mcgruer

unread,
Sep 3, 2021, 10:37:05 AM9/3/21
to Liquan (Max) Gu, blink-dev, paymen...@chromium.org
Clarifying: this is actually an Intent to Deprecate and Remove basic-card, not just deprecate it. 

--
You received this message because you are subscribed to the Google Groups "payments-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to payments-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/payments-dev/CAEWPi2sswphwqEnCGgwwNOr_F5j8V%3Dc5ZQ7Kz6h2gK%2Bki2A6aw%40mail.gmail.com.

Yoav Weiss

unread,
Sep 6, 2021, 3:27:00 AM9/6/21
to Liquan (Max) Gu, blink-dev, paymen...@chromium.org
On Fri, Sep 3, 2021 at 4:25 PM Liquan (Max) Gu <ma...@chromium.org> wrote:

Contact emails

ma...@chromium.orgpaymen...@chromium.org

Specification

https://www.w3.org/TR/payment-method-basic-card/

Summary

Deprecate the "basic-card" payment method from PaymentRequest API.


Blink component

Blink>Payments

Motivation

* Its usage is low and declining, underperforms other payment methods in time-to-checkout and completion rate and does not have improvement potential.


Any usecounter stats you can share? 

* W3C's interest in it has waned. 6 participants supported the deprecation and no objection[1], and W3C has deprecated the spec[2]. [1] https://lists.w3.org/Archives/Public/public-payments-wg/2021Aug/0038.html [2] https://github.com/w3c/payment-method-basic-card/pull/90/files


Interoperability and Compatibility

* Chrome is the only implementer of basic-card, so the basic-card removal from Chrome will increase interoperability.
* Since no other browser implements basic-card, web developers already need workarounds to support other browsers.
* Whether basic-card is supported can be detected via canMakePayment. Web developers normally use this to decide whether to fallback to other methods.
* We have checked the few top sites via UKM - they all appear to work with basic-card disabled because they fallback to other methods to get payment info.

Tracking bug

https://crbug.com/1209835

Estimated milestones

M96

Link to entry on the Chrome Platform Status


This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEWPi2sswphwqEnCGgwwNOr_F5j8V%3Dc5ZQ7Kz6h2gK%2Bki2A6aw%40mail.gmail.com.

Stephen Mcgruer

unread,
Sep 7, 2021, 8:34:46 AM9/7/21
to Yoav Weiss, Liquan (Max) Gu, blink-dev, paymen...@chromium.org
> Any usecounter stats you can share?

Unfortunately no usecounters for two reasons:

1) Payment APIs in general have very low usage when compared to 'page loads', because the most popular sites on the web aren't merchants and so don't use them. For example, PaymentRequest.show is at 0.001. They're still very important, so we have to measure usage other ways :)

2) In particular for basic-card, it's actually just a method-type of PaymentRequest, so our top-level usecounters don't show it.

We have internal stats that I can't share publicly due to sensitivity (Googlers, feel free to ping me for a link), but I can share that of transactions using PaymentRequest, basic-card is ~2% of all transactions and <1% of completed transactions. So it's a very niche feature that also performs poorly.

Max has also done an analysis of the top 10 sites from UKM data that use basic-card. For 4, he couldn't get to the payments page or couldn't get it to trigger basic-card at all (possibly geographically gated), but for the remaining 6 he confirmed that all 6 function properly in a version of Chrome that has basic-card disabled (falling back to the same behavior they use for Firefox + Safari). 

You received this message because you are subscribed to the Google Groups "payments-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to payments-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/payments-dev/CAL5BFfUaHsXJEEwN3JO2MSGw9WHsVt5nszPPscKh9mBrRt5U1g%40mail.gmail.com.

Yoav Weiss

unread,
Sep 9, 2021, 8:03:26 AM9/9/21
to blink-dev, Stephen McGruer, Liquan (Max) Gu, blink-dev, paymen...@chromium.org, Yoav Weiss
Can you clarify what breakage may look like for sites that may rely on it?

On Tuesday, September 7, 2021 at 2:34:46 PM UTC+2 Stephen McGruer wrote:
> Any usecounter stats you can share?

Unfortunately no usecounters for two reasons:

1) Payment APIs in general have very low usage when compared to 'page loads', because the most popular sites on the web aren't merchants and so don't use them. For example, PaymentRequest.show is at 0.001. They're still very important, so we have to measure usage other ways :)

2) In particular for basic-card, it's actually just a method-type of PaymentRequest, so our top-level usecounters don't show it.

We have internal stats that I can't share publicly due to sensitivity (Googlers, feel free to ping me for a link), but I can share that of transactions using PaymentRequest, basic-card is ~2% of all transactions and <1% of completed transactions. So it's a very niche feature that also performs poorly.

Max has also done an analysis of the top 10 sites from UKM data that use basic-card. For 4, he couldn't get to the payments page or couldn't get it to trigger basic-card at all (possibly geographically gated), but for the remaining 6 he confirmed that all 6 function properly in a version of Chrome that has basic-card disabled (falling back to the same behavior they use for Firefox + Safari). 

On Mon, 6 Sept 2021 at 03:26, Yoav Weiss <yoav...@chromium.org> wrote:
On Fri, Sep 3, 2021 at 4:25 PM Liquan (Max) Gu <ma...@chromium.org> wrote:

Specification

https://www.w3.org/TR/payment-method-basic-card/

Summary

Deprecate the "basic-card" payment method from PaymentRequest API.


Blink component

Blink>Payments

Motivation

* Its usage is low and declining, underperforms other payment methods in time-to-checkout and completion rate and does not have improvement potential.


Any usecounter stats you can share? 

* W3C's interest in it has waned. 6 participants supported the deprecation and no objection[1], and W3C has deprecated the spec[2]. [1] https://lists.w3.org/Archives/Public/public-payments-wg/2021Aug/0038.html [2] https://github.com/w3c/payment-method-basic-card/pull/90/files


Interoperability and Compatibility

* Chrome is the only implementer of basic-card, so the basic-card removal from Chrome will increase interoperability.
* Since no other browser implements basic-card, web developers already need workarounds to support other browsers.
* Whether basic-card is supported can be detected via canMakePayment. Web developers normally use this to decide whether to fallback to other methods.
* We have checked the few top sites via UKM - they all appear to work with basic-card disabled because they fallback to other methods to get payment info.

Tracking bug

https://crbug.com/1209835

Estimated milestones

M96

Link to entry on the Chrome Platform Status


This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

--
You received this message because you are subscribed to the Google Groups "payments-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to payments-dev+unsubscribe@chromium.org.

Stephen Mcgruer

unread,
Sep 9, 2021, 8:14:52 AM9/9/21
to Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
> Can you clarify what breakage may look like for sites that may rely on it?

If a site was entirely relying on basic-card to collect credit card details from their user, it would be impossible for the user to complete their checkout. So arguably 'site completely broken' from that perspective (assuming buying a thing is the main user journey).

However, such a site would also be broken on Firefox and Safari today (unless serving user-agent specific code), and sites also tend to not rely on just one approach to get paid. Sites will almost definitely have a fallback mechanism, and it will likely be invisible to the user. For example:

1. Site checks `if (window.PaymentRequest)` - passes in Chrome and Safari, fails in Firefox.
2. Site calls `new PaymentRequest([basic-card-data]).canMakePayment()` (or `show()` directly) - passes in Chrome today, fails/throws in Safari.
3. If either of #1 or #2 failed, render a fallback payment information collection flow such as a HTML form.

TL;DR - we expect very few to no sites to break due to this removal, unless they're doing user-agent specific branching with no fallback mechanisms for 'what if basic-card fails'.

On Thu, 9 Sept 2021 at 08:03, Yoav Weiss <yoav...@chromium.org> wrote:
Can you clarify what breakage may look like for sites that may rely on it?

On Tuesday, September 7, 2021 at 2:34:46 PM UTC+2 Stephen McGruer wrote:
> Any usecounter stats you can share?

Unfortunately no usecounters for two reasons:

1) Payment APIs in general have very low usage when compared to 'page loads', because the most popular sites on the web aren't merchants and so don't use them. For example, PaymentRequest.show is at 0.001. They're still very important, so we have to measure usage other ways :)

2) In particular for basic-card, it's actually just a method-type of PaymentRequest, so our top-level usecounters don't show it.

We have internal stats that I can't share publicly due to sensitivity (Googlers, feel free to ping me for a link), but I can share that of transactions using PaymentRequest, basic-card is ~2% of all transactions and <1% of completed transactions. So it's a very niche feature that also performs poorly.

Max has also done an analysis of the top 10 sites from UKM data that use basic-card. For 4, he couldn't get to the payments page or couldn't get it to trigger basic-card at all (possibly geographically gated), but for the remaining 6 he confirmed that all 6 function properly in a version of Chrome that has basic-card disabled (falling back to the same behavior they use for Firefox + Safari). 

On Mon, 6 Sept 2021 at 03:26, Yoav Weiss <yoav...@chromium.org> wrote:
On Fri, Sep 3, 2021 at 4:25 PM Liquan (Max) Gu <ma...@chromium.org> wrote:

Specification

https://www.w3.org/TR/payment-method-basic-card/

Summary

Deprecate the "basic-card" payment method from PaymentRequest API.


Blink component

Blink>Payments

Motivation

* Its usage is low and declining, underperforms other payment methods in time-to-checkout and completion rate and does not have improvement potential.


Any usecounter stats you can share? 

* W3C's interest in it has waned. 6 participants supported the deprecation and no objection[1], and W3C has deprecated the spec[2]. [1] https://lists.w3.org/Archives/Public/public-payments-wg/2021Aug/0038.html [2] https://github.com/w3c/payment-method-basic-card/pull/90/files


Interoperability and Compatibility

* Chrome is the only implementer of basic-card, so the basic-card removal from Chrome will increase interoperability.
* Since no other browser implements basic-card, web developers already need workarounds to support other browsers.
* Whether basic-card is supported can be detected via canMakePayment. Web developers normally use this to decide whether to fallback to other methods.
* We have checked the few top sites via UKM - they all appear to work with basic-card disabled because they fallback to other methods to get payment info.

Tracking bug

https://crbug.com/1209835

Estimated milestones

M96

Link to entry on the Chrome Platform Status


This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

--
You received this message because you are subscribed to the Google Groups "payments-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to payments-dev...@chromium.org.

Daniel Bratell

unread,
Sep 9, 2021, 11:46:19 AM9/9/21
to Stephen Mcgruer, Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org

When I looked around to see what other methods were available, it seemed to me like all documentation and explainers included basic-card as the standard method, and few of them used anything else. I wonder if that means that it's too early to deprecate before documentation and specs is updated to suggest alternatives.

/Daniel

Mike West

unread,
Sep 9, 2021, 2:57:40 PM9/9/21
to Daniel Bratell, Stephen Mcgruer, Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Given the UKM-driven manual analysis, I'm willing to believe that sites using this mechanism won't crumble if it's removed. That said, the deprecation in the spec that you pointed to above landed ~2 weeks ago. Perhaps it's reasonable to extend developers' ability to conduct transactions through this mechanism for a release or three before removing it, warning in the console about the deprecation, blog posting, etc. 

Perhaps I'm being unreasonably cautious here (and I'm totally willing to hear reasons that might be the case!), but it seems to me that a deprecation period before removal isn't an unreasonable path forward. WDYT?

-mike


Rouslan Solomakhin

unread,
Sep 9, 2021, 3:20:29 PM9/9/21
to Mike West, Daniel Bratell, Stephen Mcgruer, Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
> a deprecation period before removal isn't an unreasonable path forward. WDYT

That sounds reasonable to us. We are planning a blog post, too, by the way.

(Responding on behalf of Stephen and Max because they happen to be both OOO today.)

Mike West

unread,
Sep 9, 2021, 3:26:16 PM9/9/21
to Rouslan Solomakhin, Daniel Bratell, Stephen Mcgruer, Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Ok. Does ~4-5 milestones (M100-101 sound good to you?)

-mike

Rouslan Solomakhin

unread,
Sep 9, 2021, 3:28:09 PM9/9/21
to Mike West, Daniel Bratell, Stephen Mcgruer, Yoav Weiss, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Sure, let's do 4 milestones. We can put the deprecation message in the developer console in M96 and perform the removal in M100.

Yoav Weiss

unread,
Sep 9, 2021, 4:21:27 PM9/9/21
to Rouslan Solomakhin, Mike West, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Would you also be able to fix up the documentation out there that's pointing at basic-card?
A few places I see at a glance are MDN, WebFundementals, Whatwebcando , ayden.com and samsung. It seems like with a few PRs and a bit of outreach, we can make sure that the API's canonical documentation points people in the right direction.

Rouslan Solomakhin

unread,
Sep 9, 2021, 4:23:15 PM9/9/21
to Yoav Weiss, Mike West, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Yes, we absolutely can fixup the docs that we own and reach out to the owners of the docs that we don't own ourselves.

Daniel Bratell

unread,
Sep 16, 2021, 2:03:09 PM9/16/21
to Rouslan Solomakhin, Yoav Weiss, Mike West, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org

Good, because if not, I think it will leave the standard in a strange mess where a majority of the documentation will use constructs that no longer exists and that will make everyone unhappy.

/Daniel

Mike West

unread,
Sep 16, 2021, 3:12:00 PM9/16/21
to Daniel Bratell, Rouslan Solomakhin, Yoav Weiss, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Hey folks,

We talked about this in the API owners meeting tonight, and I think folks are conceptually on board with this deprecation along the timeline we talked about above (4 milestones). That said, there's still practical concern that the messaging for developers currently doesn't match the requirements y'all are creating by removing `basic-card`, and we'd be much more comfortable moving forward if we had concrete docs to point developers to in any deprecation warning so they they have a clear migration path.

If you can land some documentation changes, I think you'll quickly get LGTMs for deprecation/removal.

-mike

Rouslan Solomakhin

unread,
Sep 16, 2021, 3:17:16 PM9/16/21
to Mike West, Daniel Bratell, Yoav Weiss, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
HI Mike,

We've been working on updating our docs and reaching out to external documentation owners as well. We will respond back to this email thread once we have significant progress to report :-D

By the way, do we need to get blink-dev@ approval for starting to print deprecation warnings in the Developer Console? I'm not sure whether Developer Console warnings are considered web-facing.

Cheers,
Rouslan

Mike West

unread,
Sep 17, 2021, 7:06:39 AM9/17/21
to Rouslan Solomakhin, Daniel Bratell, Yoav Weiss, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org
Technically, yes. Deprecation warnings should only land when we're _actually_ going to deprecate a thing, and have a reasonable schedule to point to.

Here, though, I think we have agreement that the deprecation itself is reasonable, and agreement on a schedule. We're only blocking on documentation of alternatives and developer awareness, both of which deprecation warnings support. So, I'd LGTM CLs that added warnings if you wanted to send them my way.

-mike

Liquan (Max) Gu

unread,
Sep 20, 2021, 2:48:39 PM9/20/21
to Mike West, Rouslan Solomakhin, Daniel Bratell, Yoav Weiss, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org, Eiji Kitamura
Hi folks,

Thanks for your patience. We ended up adding the timeline and alternatives to https://www.chromestatus.com/feature/5730051011117056. Eiji is in the process of writing a blog post that will be published at https://web.dev/payment-request-basic-card-deprecation which is about the deprecation. I will add the web.dev article to Chrome status once the article is ready. On the console warning front, I am in the process of adding basic-card deprecation to the Reporting API, which will print a warning that links to the chrome status as below.

Screen Shot 2021-09-20 at 14.02.52.png

Does the whole thing look good to you? Please let us know. Thanks!

Yoav Weiss

unread,
Sep 20, 2021, 3:06:26 PM9/20/21
to Liquan (Max) Gu, Mike West, Rouslan Solomakhin, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org, Eiji Kitamura
Thanks! Any word on PRs to MDN and other existing documentation?

Liquan (Max) Gu

unread,
Sep 20, 2021, 3:16:18 PM9/20/21
to Yoav Weiss, Mike West, Rouslan Solomakhin, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org, Eiji Kitamura
Rouslan has sent a bunch of emails to the owners of the documentation:

Yoav Weiss

unread,
Sep 21, 2021, 2:32:34 AM9/21/21
to Liquan (Max) Gu, Mike West, Rouslan Solomakhin, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org, Eiji Kitamura
On Mon, Sep 20, 2021 at 9:16 PM Liquan (Max) Gu <ma...@google.com> wrote:
Rouslan has sent a bunch of emails to the owners of the documentation:

Would the team be able to write an initial draft and work with the relevant tech writers? Fixing up MDN seems critical for this deprecation to be successful.

Liquan (Max) Gu

unread,
Sep 22, 2021, 1:59:57 PM9/22/21
to Yoav Weiss, Joe Medley, Mike West, Rouslan Solomakhin, Daniel Bratell, Stephen Mcgruer, blink-dev, Liquan (Max) Gu, paymen...@chromium.org, Eiji Kitamura
Yep! We are working with @Joe Medley on updating the MDN documentation.

Liquan (Max) Gu

unread,
Sep 28, 2021, 1:29:47 PM9/28/21
to blink-dev, mk...@chromium.org, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Eiji Kitamura, yoav...@chromium.org, Joe Medley
Yoav, MDN (PR) and web.dev (PR) have taken down the basic-card content.

Is it enough to get our approval for deprecating basic-card?

Yoav Weiss

unread,
Sep 29, 2021, 1:48:19 AM9/29/21
to Liquan (Max) Gu, blink-dev, mk...@chromium.org, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Eiji Kitamura, Joe Medley
Thanks for fixing up the documentation.

LGTM1 to run a 4 milestone deprecation and then remove. I wonder if it'd also make sense to write a dedicated announcement blog post, to inform folks that don't follow blink-dev of these changes.

Eiji Kitamura

unread,
Sep 29, 2021, 1:51:00 AM9/29/21
to Yoav Weiss, Liquan (Max) Gu, blink-dev, mk...@chromium.org, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Joe Medley
I'll be working on it.
--
Eiji Kitamura : age...@google.com
Google - Developer Advocate

Yoav Weiss

unread,
Sep 29, 2021, 1:56:24 AM9/29/21
to Eiji Kitamura, Liquan (Max) Gu, blink-dev, mk...@chromium.org, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Joe Medley
On Wed, Sep 29, 2021 at 7:50 AM Eiji Kitamura <age...@chromium.org> wrote:
I'll be working on it.

That's great! Thanks Eiji! :)

Mike West

unread,
Sep 29, 2021, 2:07:18 AM9/29/21
to Yoav Weiss, Eiji Kitamura, Liquan (Max) Gu, blink-dev, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Joe Medley
LGTM2. Thanks for following up on the feedback here.

-mike

Liquan (Max) Gu

unread,
Sep 29, 2021, 5:14:42 PM9/29/21
to blink-dev, mk...@chromium.org, Eiji Kitamura, Liquan (Max) Gu, blink-dev, Rouslan Solomakhin, Daniel Bratell, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Joe Medley, yoav...@chromium.org
Thanks for the review!

Daniel Bratell

unread,
Sep 30, 2021, 4:29:03 AM9/30/21
to Liquan (Max) Gu, blink-dev, mk...@chromium.org, Eiji Kitamura, Rouslan Solomakhin, smcg...@chromium.org, ma...@chromium.org, paymen...@chromium.org, Joe Medley, yoav...@chromium.org

LGTM3

Thanks for making this change easier for web developers!

/Daniel

Rouslan Solomakhin

unread,
Oct 21, 2021, 8:26:28 AM10/21/21