-
Notifications
You must be signed in to change notification settings - Fork 63
3DSDataSources
This is a draft document with no consensus. It is for discussion purposes. Questions? Ian Jacobs <[email protected]>.
Some aspects of 3-D Secure 2 (3DS) risk analysis involve device fingerprinting through JavaScript. The Web Payments Working Group has discussed the idea of creating a browser-based API for providing data to authorized parties. This offers an opportunity to improve privacy over the status quo.
In this document we look at the data necessary to initiate a 3DS flow and which parties "know about" that data. In order for a payment handler (browser or third party) to initiate a 3DS flow, the payment handler would presumably need access to all the data known to the browser.
EMVCo's 3-D Secure 2 specification defines data requirements in section "B.1 AReq Message Data Elements".
The fields below were drawn directly from JSON Message Samples version 2.1.0.
In the following sections we organize the AReq Message Data Elements into their different sources (within the Payment Request API ecosystem). This intends to suggest a limited scope for a new browser API that would return some of the data elements to authorized parties.
- homePhone
- mobilePhone
- workPhone
- shipAddrCity
- shipAddrCountry
- shipAddrLine1
- shipAddrLine2
- shipAddrLine3
- shipAddrPostCode
- shipAddrState
- purchaseAmount
- purchaseCurrency
- purchaseExponent
- shipIndicator (Indicates shipping method chosen for the transaction.)
Note: This is the data that might be made available through a new browser API.
- browserAcceptHeader
- browserIP
- browserJavaEnabled
- browserLanguage
- browserColorDepth
- browserScreenHeight
- browserScreenWidth
- browserTZ
- browserUserAgent
The following come from the merchant and should thus be considered for inclusion in "3-D Secure 2 with Payment Request API".
- acquirerBIN
- acquirerMerchantID
- merchantCountryCode
- merchantName
- merchantRiskIndicator
- mcc (merchant category code)
- transType (transaction type, such as goods and services, check acceptance)
- threeDSRequestorChallengeInd (variations on whether merchant wants a challenge flow)
- reorderItemsInd
- preOrderPurchaseInd
- preOrderDate
- recurringExpiry
- recurringFrequency
- purchaseInstalData (Indicates the maximum number of authorisations permitted for instalment payments.)
Note: A browser may choose to operate as a payment handler.
- cardExpiryDate
- acctNumber
- billAddrCity
- billAddrCountry
- billAddrLine1
- billAddrLine2
- billAddrLine3
- billAddrPostCode
- billAddrState
- cardholderName
- acctType (credit, debit; if removed from Basic Card this will be data managed by the payment handler)
- threeDSCompInd
- threeDSRequestorID
- threeDSRequestorName
- threeDSRequestorURL
- threeDSServerURL
- threeDSServerTransID
- threeDSServerRefNumber
- messageCategory (payment or non-payment)
- messageType (AREQ)
- messageVersion (3DS version number)
- threeDSRequestorAuthenticationInd (nature of this authentication request)
- threeDSRequestorAuthenticationInfo (Information about how the 3DS Requestor authenticated the cardholder before or during the transaction)
- threeDSRequestorPriorAuthenticationInfo (Information about how the 3DS Requestor authenticated the cardholder as part of a previous 3DS transaction.)
- threeDSServerOperatorID
- dsReferenceNumber (directory server info)
- dsTransId (directory server info)
- dsURL (directory server info)
- broadInfo (Unstructured information sent between the 3DS Server, the DS and the ACS.)
- payTokenInd (A value of True indicates that the transaction was de-tokenised prior to being received by the ACS.)
- messageExtension
- acctInfo (detailed information about the cardholder known to the payment handler)
- acctID
- purchaseDate
- addrMatch (boolean: do billing and shipping addresses match?)
- deviceChannel (02 = browser, 03?)
- deliveryTimeframe. Might come from merchant or might be determined by data known to the brower.
- deliveryEmailAddress. PR API does not yet include this.
- giftCardAmount, giftCardCurr, giftCardCount. Some of this might be known to the browser (but depends on card type).
- The browser may limit access to this API to authorized origins. In the case of the Payment Request API ecosystem, one way to authorize origins is through a Payment Method Manifest.
- The browser must receive user consent before sharing data with these authorized origins. There may be different consent granularities.
Mailing list archives
Issues
- Secure Payment Confirmation
- Payment Request API
- Payment Method Identifiers
- Payment Handler API
- Payment Method Manifest
- General
- Tokenized Card
- 3DS
- SRC
Tests
Adoption
Previous Topics