W3C

Tokenization Task Force

06 Jun 2017

Agenda

See also: IRC log

Attendees

Present
Clinton, Ian, Olivier, mweksler, holger, Roy, alyver, Steve, Manash, Ken
Regrets
AdrianHB, Jean-Yves
Chair
Ian
Scribe
Ian

Contents


<michel_cc> presnet+ Michel (CC)

<michel_cc> not yet

<michel_cc> (password missing)

Olivier's work on gateway params

<oyiptong> https://github.com/w3c/webpayments-methods-tokenization/wiki/gateway_params

<scribe> scribe: Ian

oyiptong: Michel and I met last week to talk about gateway params, we need to talk about server-side interactions
... We introduce the "gateway" into the network relationships

(We look at diagram)

https://cloud.githubusercontent.com/assets/9365/26812915/8dcef2bc-4a2f-11e7-98c3-eea00ea5b178.png

scribe: 1. user requests a page from the merchant
... 2. merchant responds with a page with PR API that specifies gateway params
... we need a merchantId, a public key to encrypt data, a gateway URL that the browser will invoke to send payload, and finally an optional param "environment" for testing
... if user chooses a payment app that supports the gateway payment method, the browser makes a request to the gateway
... the request has a few params (merchantId, card data (encrypted), environment)
... we don't want data sent in the clear
... the gateway then responds with a one-time use nonce
... subsequently, the browser generates an id that it stores locally for subsequent uses
... the browser then sends data back to the merchant
... when the browser stores the ID it stores per merchant-origin, per gateway, and per instrument
... the id is sent back to the merchant in the payment response
... we also want a bank identification number so that merchants can do routing
... the gateway nonce, the gateway URL (identifying the gateway) and contact information for the user
... for sequent card uses, we can skip the gateway communication.
... the payment request goes by without the nonce.
... if there are any errors, it should appear as though the PR API has failed and the user should try again

IJ: Why is the browser doing things instead of the payment app (e.g., call out to the gateway and storage)?

oyiptong: We want this built into the browser. The payment method implementation would do this in a standardized way

ClintonA: In subsequent requests, merchant makes a request to the browser, browser sends an ID back...how does the merchant know which gateway the token is associated with (initially or subsequently)?

oyiptong: The payment response includes a gateway identifier
... it's returned by the browser for subsequent uses as well

ClintonA: If the relationship for uniqueness is gateway/merchant/product, there's a scenario which is that a cardholder for a particular merchant may be able to select a card for the merchant. But there may be three different gateways. The user simply selects the card..and the merchant says "I want a token for this gateway"
... how does merchant say "I want token from his gateway"

oyiptong: Not part of this proposal but we could do so.
... this proposal just shows one gateway Url but could be expanded for multiple
... but ClintonA makes a good observation
... the spec could take an array

alyver: I'm still digesting this...I wanted to understand the gateway merchant identifier..it's the browser responsibility to store this?

oyiptong: Yes

alyver: I expect there to be pushback on this.
... the list might be large...not sure if they want to store data
... the nonces are typically single use and typically couldn't be reused

oyiptong: Agreed nonce is for one-time use. The browser only needs to store the uniqueness key (merchant origin + card info + gateway id) + gateway URL to send back

alyver: Where is the tokenized card ID coming from?

oyiptong: Generated by the browser for subsequent use

<mweksler1> Browser == payment app

oyiptong: the merchant keeps track of the ID, and when calling PR API subsequently, the browser has it.
... When the user selects the payment method, the gateway generates the token but does not send it to the client. When the merchant gets the nonce, it uses the nonce to get the token. The merchant and gateway communicate out of band for the actual token

MANASH_MC: oyiptong, michel, thanks a lot.
... a couple of things around encryption - who is responsible for managing the encryption keys?
... just the browser?

<shift4sms> Payment app was mentioned. In my mind the browser and the payment app are one and the same - would this be correct?

oyiptong: We are using public keys. It's a good point that I need to mention in the document that the merchant/gateway have an understanding (and have generated a key pair)
... the public key is used to encrypt the payload but the gateway has the private key

MANASH_MC: Different scenarios - card data stored in browser, in native wallet, or web-based wallet
... native wallets will typically store tokens in hardware or cloud
... web based wallets may store tokens..how will that happen?
... e.g., can a gateway create a web-based wallet?

<shift4sms> Also, some discussion on a token to merchant back-channel of some sort - is this solution requiring a multi-use token or does this back-channel allow for single-use tokens?

MANASH_MC: How does this work with existing custom payment methods?
... main point is to understand (1) who is responsible for encryption and (2) how do gateway tokens work if gateway distributes wallet?

ClintonA: When I look at the subsequent request v. the initial request, I see that 11 and 12 for initial request is the request for the actual token. Is the result of 12 a token or the actual PAN?
... if step 11 and 12 are beyond the scope of this payment method
... why is it defined in the payment response
... I'm trying to figure out what exactly goes in 11 and 12 and why is that not included in the subsequent requests?

oyiptong: 11 and 12 are indeed server-to-server communication. It could also be a transaction where the merchant could be charging the card at this point.
... the response will be a token to be used subsequently
... as far as 13, the response, is concerned...the reason it is after communication between merchant/gateway is that there might be errors
... the user can try again in error cases
... in the diagram about subsequent use, there could be more arrows to show communication between merchant and gateway

<ClintonA> ian your line is breaking up

ack oyiptong: I wanted to mention ... Michel mentioned that we could also make the payment app handle the tokenization

scribe: we could create a handler so that the handler is responsible for generating and storing the id

Ian: I think we should write the spec to make clear what happens...and then it doesn't matter whether it's the browser or some other payment app that's implementing

oyiptong: Ok

"...the browser will contact the gateway "

say instead: ....the payment contacts the gateway

scribe: and the payment app could be a browser

oyiptong: Ok

<alyver> +1 I think taking the approach of having Payment Apps being responsible for tokenization might be a good approach.

Shift4sms: Is this solution requiring a multi-use token or does this back-channel allow for single-use tokens?

steve: in our solution, single use is preferred

IJ: Am I understanding that at times gateways will say "don't store this for subsequent use". IS that a thing?

<shift4sms> Mostly correct. We certify based on single use or multi use and if both are certified, then the payment app can request which.

oyiptong: Yes. It could be the gateway OR the merchant

IJ: What does the spec say about that?

<Zakim> oyiptong, you wanted to comment on payment app handling

<shift4sms> yes

ClintonA: Perhaps "gateway" is not the right word for "token provider"
... there are other types ... don't have a better term.

IJ: Token provider?

<oyiptong> +1

<MANASH_MC> +1

<shift4sms> +1

<alyver> +1

alyver: Circling back to payment apps that tokenize....to play the devil's advocate...
... suppose we only have third party payment apps to implement tokenization

IJ: I assume I would choose one from among all matching payment apps

ClintonA: What we are seeing with these questions is that the merchant has to be able to indicate how they expect to authorize the result of the payment rqeust
... the parameter defines which gateway and whether they are are using network tokens

IJ: Next steps...take a second pass?

oyiptong: We'll take feedback (payment app v. browser, token provider, some steps mentioned)
... and support for N gateways
... clarity around one-time use tokens

Updates to the mission statement

IJ: When can you update the wiki, Manash, with next draft of mission statement?

MANASH_MC: I want to do a tiny bit of research of 3DS as well and will have the wiki updated by next week.

Network tokens

IJ: Next steps?

roy: I was out for more than as week. Am now back!
... we are planning to meet on Thursday after the main WPWG call.
... I am available 8 June

(Regrets from IJ)

<MANASH_MC> +1 on 8th or 15th

Roy: 11am-noon ET Thursdays to start...will adjust as needed

PROPOSAL: 8 June, 11-noon ET

<oyiptong> +1

<Ken_> +1

<scribe> ACTION: Ian to send around a meeting announcement for a Thursday network tokenization call [recorded in http://www.w3.org/2017/06/06-wpwg-minutes.html#action01]

<trackbot> 'Ian' is an ambiguous username. Please try a different identifier, such as family name or username (e.g., IFSF-EFT-WG-Lead, ijacobs, ijmad).

<mweksler1> 1

<mweksler1> +1

<Ken_> +1 Want to attend, but can't this week...to clarify

ClintonA: I will bring my comment to the network tokenization call

MANASH_MC: In the gateway session last week, one pain point identified last week...gateway tokens are basically not inteorperable
... Airbnb highlighted this.

oyiptong: the gateway proposal has a standard way to get info from any token provider
... it becomes easier to handle
... the gateway to merchant backend communication is another interop issue

Manash: Network tokens should be reusable across gateways
... let's identify the user stories in the gateway section of the mission page

Next call

Proposed: 20 June

<oyiptong> +1

<alyver> +1

Summary of Action Items

[NEW] ACTION: Ian to send around a meeting announcement for a Thursday network tokenization call [recorded in http://www.w3.org/2017/06/06-wpwg-minutes.html#action01]
 

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.152 (CVS log)
$Date: 2017/06/06 17:00:27 $