One tap payment with contactless cards

JP7608651B2Active Publication Date: 2025-01-06CAPITAL ONE SERVICES LLC
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
JP2024019987
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-02-01
Filing Date
2024-02-14
Publication Date
2025-01-06
Estimated Expiration
2040-01-29

Smart Images

  • Figure 0007608651000001
    Figure 0007608651000001
  • Figure 0007608651000002
    Figure 0007608651000002
  • Figure 0007608651000003
    Figure 0007608651000003
Patent Text Reader

Abstract

To provide a system for executing one-tap payment using a non-contact card.SOLUTION: An authentication application receives a trader identifier, a transaction identifier of a transaction, encrypted data and a position of a client device, from a trader application of a client device, decrypts the encrypted data on the basis of a secret key at least in part, and determines that a non-contact card has been used in previous purchasing with the trader and that a position of the client device is within a threshold distance of an existing position associated with the non-contact card. A virtual account number generator generates a virtual account number, and transmits a trader identifier, a transaction identifier, a virtual account number, an expiry date and a card verification value (CVV) to a trader server associated with the trader, in order to process a transaction by using the transaction identifier, the virtual account number, the expiry date and the CVV.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] TECHNICAL FIELD Embodiments herein relate generally to computing platforms, and more specifically to tapping a contactless card to a computing device to perform one-tap payments.

[0002] Related Applications This application claims priority to U.S. patent application Ser. No. 16 / 265,974, entitled "One-Tap Payments Using Contactless Cards," filed Feb. 1, 2019, the contents of which are incorporated herein by reference in their entirety. [Background technology]

[0003] Users often use online software platforms to complete transactions. Traditionally, users have had to manually enter all associated payment information into the online software platform to complete a transaction. However, users often make mistakes when entering payment information. Furthermore, transmitting payment information via a user device can pose security risks. Summary of the Invention

[0004] The embodiments disclosed herein provide a system, method, article of manufacture, and computer readable medium for tapping a contactless card to a computing device for one-tap payment. In one example, an authentication application may receive a merchant identifier, a transaction identifier for the transaction, encrypted data, and a location of the client device from a merchant application of a client device. The authentication application may verify the encrypted data by decrypting the encrypted data based at least in part on a private key of the contactless card. The authentication application may determine that the contactless card was used for a previous purchase with the merchant and that the location of the client device is within a threshold distance of a known location associated with the contactless card. A virtual account number generator may generate a virtual account number and send the merchant identifier, transaction identifier, virtual account number, expiration date, and card verification value (CVV) to a merchant server associated with the merchant to process the transaction using the transaction identifier, virtual account number, expiration date, and CVV. [Brief description of the drawings]

[0005] [Figure 1A] 1 illustrates an embodiment of a system for tapping a contactless card to a computing device for one-tap payment. [Figure 1B] 1 illustrates an embodiment of a system for tapping a contactless card to a computing device for one-tap payment. [Figure 1C] 1 illustrates an embodiment of a system for tapping a contactless card to a computing device for one-tap payment. [Figure 2A] 1 illustrates an embodiment of tapping a contactless card to a computing device for one-tap payment. [Figure 2B] 1 illustrates an embodiment of tapping a contactless card to a computing device for one-tap payment. [Figure 2C]1 illustrates an embodiment of tapping a contactless card to a computing device for one-tap payment. [Figure 2D] 1 illustrates an embodiment of tapping a contactless card to a computing device for one-tap payment. [Diagram 3] 1 illustrates an embodiment of a first logic flow. [Figure 4] 1 illustrates a second logic flow embodiment. [Diagram 5] 13 illustrates a third logic flow embodiment. [Figure 6] 13 illustrates a fourth logic flow embodiment. [Figure 7] 1 illustrates an embodiment of a computing architecture. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] The embodiments disclosed herein provide a secure technique for using contactless cards for one-tap payment. For example, when using a merchant application executing on a computing device, a user may select one or more items to purchase. The user may then tap the contactless card to the computing device, which may bring the contactless card within communication range of the computing device. In doing so, the contactless card generates encrypted data, which is transmitted to the computing device. The merchant application may receive the encrypted data generated by the contactless card and transmit the encrypted data to an authentication server for verification. The merchant application may further transmit an indication of a merchant identifier and / or a transaction identifier along with the encrypted data. Once verified, the authentication server may instruct a virtual account number server to generate card data for an account associated with the contactless card. The card data may include a virtual account number, an expiration date, and a card verification value (CVV). The virtual account number may be a different account number than the account number associated with the contactless card. The generated card data may then be transmitted to a merchant server associated with the merchant along with the merchant identifier and the transaction identifier. The virtual account number server and / or authentication server may also provide the user's name, the user's billing address, and / or the user's shipping address to the merchant server. The merchant server may then complete the transaction using the received data. The merchant server may then send a confirmation to the computing device that is output by the merchant application for display to the user. From the perspective of the computing device user, once the card is tapped to the computing device, the transaction is completed without the need for additional user input, and the user receives a positive confirmation message reflecting that the transaction is completed.

[0007] As an advantage, the embodiments disclosed herein improve the security of all devices and associated data. For example, by transmitting card data between secure servers, the risks associated with storing data on the user device and transmitting data using the user device are avoided. Additionally, traditional approaches require the user to manually input the card data into the form. However, doing so may allow other users or devices to capture the card data as the user enters the card data into the form. The security of the card data is enhanced since the user does not need to manually input the card data. However, doing so may allow other users or devices to capture the card data as the user enters the card data into the form. The security of the card data is enhanced since the user does not need to manually input the card data into the form. Additionally, the validation performed by the authentication server provides an additional safeguard to ensure that the correct card data is entered into the form. Additionally, since traditional solutions require the actual account number of the contactless card to be entered into the form, generating a virtual card number and entering it into the form protects the security of the actual account number of the contactless card.

[0008] With general reference to the notation and nomenclature used herein, one or more portions of the following detailed description may be presented in terms of program procedures executed on a computer or network of computers. These procedure descriptions and representations are used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. A procedure is herein, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It is sometimes convenient, primarily for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be noted, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

[0009] Further, these operations are often referred to in terms such as adding or comparing, which are commonly associated with mental operations performed by a human operator. However, no such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein forming part of one or more of the embodiments. Rather, these operations are machine operations. Useful machines for performing the operations of the various embodiments include digital computers selectively activated or configured by a computer program stored therein and written in accordance with the teachings herein, and / or include apparatus or digital computers specially constructed for the required purposes. Various embodiments also relate to apparatus or systems for performing these operations. These apparatus may be specially constructed for the required purposes. The required structure for these various machines will be apparent from the description given.

[0010] Reference is now made to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It will be apparent, however, that the novel embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate the description. The intention is to cover all modifications, equivalents, and alternatives within the scope of the claims.

[0011] FIG. 1A illustrates a schematic diagram of an exemplary system 100 consistent with disclosed embodiments. As shown, the system 100 includes one or more contactless cards 101, one or more mobile devices 110, an authentication server 120, a virtual account number server 140, and one or more merchant servers 150. The contactless card 101 is representative of any type of payment card, such as a credit card, a debit card, an ATM card, a gift card, etc. The contactless card 101 may include one or more communication interfaces 107, such as a radio frequency identification (RFID) chip, configured to communicate with the mobile device 110 via NFC, EMV standard, or other short-range protocols in wireless communication. Although NFC is used as an example of a communication protocol, the present disclosure is equally applicable to other types of wireless communication, such as EMV standard, Bluetooth, and / or Wi-Fi. The mobile device 110 is representative of any type of network-enabled computing device, such as a smartphone, a tablet computer, a wearable device, a laptop, a portable gaming device, etc. Servers 120, 140, 150 are representative of any type of computing device, such as a server, a workstation, a computing cluster, a cloud computing platform, a virtualized computing system, and the like.

[0012] As shown, the memory 111 of the mobile device 110 includes an instance of an operating system (OS) 112. Examples of operating systems 112 include Android OS, iOS, Linux, and Windows operating systems. As shown, the OS 112 includes one or more merchant applications 113. The merchant application 113 is representative of any type of application for which a user may provide payment information to complete a transaction. For example, the merchant application 113 may enable a user to select and purchase goods, products, and / or services. In one embodiment, the merchant application 113 may be a web-based application accessed using a web browser (not shown). For example, in a web-based application, the web browser may access a merchant's website and / or a progressive web application provided by the merchant.

[0013] As shown, the merchant application 113 includes a one-tap module 114, a merchant identifier 115, and a transaction identifier 116. As described in more detail herein, the one-tap module 114 is software, hardware, and / or a combination of software and hardware that enables a user to pay for a transaction initiated with the merchant application 113 using a single tap of a contactless card 101 to a mobile device 110. The merchant identifier 115 is a unique identifier associated with the merchant and / or a merchant server 150 associated with the merchant. The transaction identifier 116 uniquely identifies a given transaction. For example, the transaction identifier 116 may be a unique alphanumeric identifier, a unique session alphanumeric identifier, a file, etc. The transaction identifier 116 may be generated by the corresponding merchant server 150 and sent to the merchant application 113 and / or generated by the merchant application 113 and sent to the corresponding merchant server 150.

[0014] Generally, a user may use the merchant application 113 (and / or a merchant website in embodiments where the application 113 is a web browser) to select one or more items and / or services to purchase. When the user has selected the desired items and / or services, the user may encounter an interface (e.g., a cart page, a checkout page, etc.) for completing the transaction in the merchant application 113. Traditionally, the user must manually enter name, card number, expiration date, CVV, and / or address information into the merchant application 113 to complete the purchase. Additionally, traditional solutions may require the user to log into their account in the merchant application 113 (e.g., using a login / password, biometric credentials, etc.). Advantageously, however, the one-tap module 114 may facilitate one-tap checkout (e.g., payment) using the contactless card 101 regardless of whether the user has logged into their account in the merchant application 113. Generally, the one-tap module 114 may output a notification to the interface for completing the transaction. The notification may instruct the user to tap the contactless card 101 to the mobile device 110, thereby bringing the contactless card 101 close enough to the card reader 119 of the mobile device 110 to enable data transfer (e.g., NFC data transfer, Bluetooth data transfer, etc.) between the communication interface 107 of the contactless card 101 and the card reader 119 of the mobile device 110. In some embodiments, the mobile device 110 may trigger the card reader 119 via an application program interface (API) call. In one example, the mobile device 110 triggers the card reader 119 via an API call in response to a user tapping or selecting an element of a user interface, such as a form field. Additionally and / or alternatively, the mobile device 110 may trigger the card reader 119 based on periodically polling the card reader 119.More generally, the mobile device 110 may trigger the card reader 119 to communicate using any feasible method.

[0015] After communication is established between the mobile device 110 and the contactless card 101, the applet 103 executing on a processor (not shown) of the contactless card 101 generates and transmits the encrypted data 106 to the mobile device 110 via the communication interface 107. For example, the applet 103 of the contactless card 101 may use an encryption algorithm to generate an encrypted payload of the encrypted data 106 based at least in part on the private key 104 stored in the memory 102 of the contactless card 101. In such an embodiment, the private key 104 and some other data (e.g., customer identifier 105, account identifier, etc.) may be provided as inputs to the encryption algorithm that outputs the encrypted data 106. In general, the applet 103 may use any type of encryption algorithm and / or system to generate the encrypted data 106, and the use of a particular encryption algorithm as an example herein should not be considered limiting of the disclosure. In some embodiments, the applet 103 may perform encryption using a key diversification technique to generate the encrypted data 106. Examples of key diversification techniques are described in U.S. Patent Application No. 16 / 205,119, filed November 29, 2018. The aforementioned patent application is hereby incorporated by reference in its entirety.

[0016] Once generated, the applet 103 may transmit the encrypted data 106 to a one-tap module 114 of the mobile device 110, e.g., via NFC. In some embodiments, the one-tap module 114 may request the user to log into their account with account data 124 associated with the contactless card 101 (e.g., providing a login / password and / or biometric credentials). The one-tap module 114 may transmit the encrypted data 106, the merchant identifier 115, and the transaction identifier 116 to an authentication application 123 of the authentication server 120. In some embodiments, the one-tap module 114 may transmit additional data describing the mobile device 110, such as a software fingerprint of the mobile device 110, location (e.g., Global Positioning System (GPS)) data of the mobile device 110, a unique identifier of the mobile device 110, etc.

[0017] Upon receipt, the authentication application 123 may authenticate the encrypted data 106. For example, the authentication application 123 may attempt to decrypt the encrypted data 106 using a copy of the private key 104 stored in the memory 122 of the authentication server 120. The private key 104 may be identical to the private key 104 stored in the memory 102 of the contactless card 101, where each contactless card 101 is manufactured to include a unique private key 104 (and the authentication server 120 stores a corresponding copy of each unique private key 104). Thus, the authentication application 123 may successfully decrypt the encrypted data 106, thereby verifying the encrypted data 106. Although the private key 104 is shown as being stored in the memory 122, the private key 104 may be stored elsewhere, such as in a secure element and / or a hardware security module (HSM). In such an embodiment, the secure element and / or HSM may use the private key 104 and the encryption function to decrypt the encrypted data 106 .

[0018] For example, as mentioned, the customer identifier 105 may be used to generate the encrypted data 106. In such an example, the authentication application 123 may use the private key 104 of the authentication server 120 to decrypt the encrypted data 106. If the result of the decryption results in the customer identifier 105 associated with the account in the account data 124, the authentication application 123 verifies the encrypted data 106 and instructs the VAN generator 142 to generate virtual card data for the account associated with the contactless card 101. If the authentication application 123 cannot decrypt the encrypted data to yield the expected result (e.g., the customer identifier 105 for the account associated with the contactless card 101), the authentication application 123 does not verify the encrypted data 106. Because the verification failed, the authentication application 123 does not instruct the VAN generator 142 to generate virtual card data to maintain the security of the associated account.

[0019] In some embodiments, the authentication application 123 processes the additional data received from the mobile device 110 as a condition for instructing the VAN generator 142 to generate the virtual card data. Some such embodiments include when the user is not logged into the merchant account and / or the account in the account data 124. For example, the authentication application 123 may determine whether the device identifier of the mobile device 110 is specified as a known device identifier for the associated account in the account data 124. If the device identifier is not a known identifier, the authentication application 123 may refrain from instructing the VAN generator 142 to generate the virtual card data. Otherwise, the authentication application 123 may instruct the VAN generator 142 to generate the virtual card data. As another example, the authentication application 123 may determine whether the software fingerprint matches a known software fingerprint for the associated account in the account data 124. If the software fingerprint is not a known software fingerprint, the authentication application 123 may refrain from instructing the VAN generator 142 to generate the virtual card data. Otherwise, authentication application 123 may instruct VAN generator 142 to generate virtual card data. As yet another example, authentication application 123 may determine whether the GPS coordinates indicate that the user is at a home, work, or other known address associated with an account in account data 124. If the device location is not within a threshold distance of the known address, authentication application 123 may refrain from instructing VAN generator 142 to generate virtual card data. Otherwise, authentication application 123 may instruct VAN generator 142 to generate virtual card data. Additionally, authentication application 123 may determine whether the user has previously made a purchase with the merchant associated with the received merchant identifier 115.If the user has not previously purchased with the merchant, the authentication application 123 may refrain from instructing the VAN generator 142 to generate virtual card data. Otherwise, the authentication application 123 may instruct the VAN generator 142 to generate virtual card data.

[0020] FIG. 1B illustrates an embodiment in which authentication application 123 verifies encrypted data 106 and instructs virtual account number (VAN) generator 142 in memory 141 of virtual account number server 140 to generate virtual card data 126 comprising a virtual account number, expiration date, and CVV for an account associated with contactless card 101. In some embodiments, VAN generator 142 generates a virtual account number, expiration date, and CVV. In other embodiments, VAN generator 142 generates a virtual account number and selects an existing expiration date and / or CVV (e.g., from account data 124). For example, the existing expiration date and / or CVV may be the expiration date and / or CVV of contactless card 101 or another card associated with the account in account data 124. VAN generator 142 may further receive the account holder's name and one or more known addresses (e.g., billing address, shipping address, etc.) from an account in account data 124 associated with contactless card 101. In at least one embodiment, the card data 126 including the virtual account number generated by the VAN generator 142 is restricted to the merchant associated with the merchant identifier 115. The virtual account number and / or card data 126 may further include other restrictions (e.g., time restrictions, amount restrictions, etc.). Once generated, the VAN generator 142 may send the virtual card data 126, the merchant identifier 115, and the transaction identifier 116 to the merchant server 150. The VAN generator 142 and / or the authentication server 120 may further send the account holder's name, billing address, and shipping address to the merchant server 150. In one embodiment, the VAN generator 142 determines the location of the merchant server 150 based on the merchant identifier 115 (e.g., in a lookup table that associates the merchant identifier 115 with the corresponding merchant server 150).

[0021] FIG. 1C illustrates an embodiment in which merchant server 150 receives virtual card data 126, merchant identifier 115, transaction identifier 116, and any other data (e.g., account holder's name and address) from VAN generator 142 and / or authentication server 120. In general, merchant server 150 may process the transaction using the data received from VAN generator 142 and / or authentication server 120. More specifically, merchant server 150 may generate a transaction record 152 in transaction database 151 using the received virtual account number, expiration date, CVV, name, and / or address. Transaction record 152 in transaction database 151 may further specify transaction identifier 116. By doing so, virtual card data 126 is used to pay for the transaction without requiring the user to enter payment information using merchant application 113 executing on mobile device 110. Instead, the transaction is paid and processed using securely generated and transmitted virtual card data 126.

[0022] As shown, the merchant server 150 may generate a confirmation 153 indicating that payment for the transaction has been received and the transaction has been processed. The merchant server 150 may send the confirmation 153 to the merchant application 113, which may output the confirmation 153 on the display of the mobile device 110. In other embodiments, the confirmation 153 may be an email confirmation, a text message confirmation, a push notification, etc. Doing so may notify the user that the transaction has been completed and may include additional information regarding the delivery of the item, the provision of the service, etc.

[0023] FIG. 2A is a schematic 200 illustrating an example embodiment of tapping a contactless card 101 for one-tap payment. As shown, a merchant application 113 executing on a mobile device 110 displays a graphical user interface (GUI) for completing a purchase. For example, the GUI may be a shopping cart page, a checkout page, or any other page of the merchant application 113. As shown, a notification 201 instructs the user to tap the contactless card 101 to the mobile device 110 to pay for the items in the shopping cart using one-tap payment. As shown in schematic 210 of FIG. 2B, once the tap is detected, the merchant application 113 may output a notification 202 indicating that a secure virtual number is being generated.

[0024] As mentioned above, when a user taps the contactless card 101 to the mobile device 110, the contactless card 101 generates encrypted data 106 and transmits the encrypted data 106 to the mobile device 110. Once received, the one-tap module 114 transmits the encrypted data 106, the merchant ID 115, and the transaction ID 116 to the authentication server 120. The authentication application 123 may then verify the encrypted data 106 by decrypting the encrypted data 106 with the private key 104 stored in the memory 122 of the server 120. Once verified, the authentication application 123 instructs the VAN generator 142 to generate virtual card data 126 (e.g., a virtual card number, an expiration date, and / or a CVV). As mentioned, in some embodiments, the VAN generator 142 may generate the virtual card number and obtain the expiration date and / or the CVV from the account data 124. The VAN generator 142 may also receive the merchant ID 115, the transaction ID 116, and additional data describing the user from the account data 124 (e.g., name, billing address, shipping address, etc.). The VAN generator 142 may then transmit the virtual card data 126, the merchant ID 115, the transaction ID 116, and any user name and / or address to the merchant server 150. The merchant server 150 may then process the transaction using the data received from the VAN generator 142, for example, by generating a transaction record 152 in a transaction database 151 using at least the received virtual card number, expiration date, and CVV. The transaction record 152 may further include the user's name, billing address, shipping address, and an indication of each item and / or service purchased. The merchant server 150 may then transmit an order confirmation to the mobile device 110. FIG. 2D is a schematic 230 illustrating an example confirmation output by the merchant application 113 on the mobile device 110.

[0025] In some embodiments, merchant server 150 may require resolution of data conflicts before processing a transaction using data received from VAN generator 142. For example, account data 124 may specify "123 Main St." as the billing address for the user's account. Meanwhile, the user's profile on merchant server 150 may specify "300 Bowles Dr." as the billing address for the user's account. Thus, as shown in schematic 220 of FIG. 2C, merchant server 150 may cause merchant application 113 to output a notification 203 on mobile device 110. As shown, notification 203 allows the user to select one of two different addresses. Once selected, merchant application 113 sends an indication of the selected address to merchant server 150. Merchant server 150 may then process the transaction using the selected address. Although addresses are used as an example, merchant server 150 and / or merchant application 113 may similarly resolve data conflicts for other data types (e.g., names, shipping addresses, etc.).

[0026] 3 illustrates an embodiment of a logic flow 300. The logic flow 300 may be representative of some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 300 may include some or all of the operations for performing a one-tap payment using a contactless card. In this context, the embodiments are not limited.

[0027] As shown, the logic flow 300 begins at block 305 where the user optionally provides authentication credentials to authenticate a user account in a merchant application 113, which includes a one-tap module 114 to support one-tap checkout as described herein. However, as noted, in some embodiments, the user may not authenticate to their account with the merchant application 113. At block 310, the user may select one or more items and / or services to purchase as part of the transaction. For example, the user may specify that they are requesting car service to drive from their home to the airport. As another example, the user may specify that they are ordering food to be delivered to their office. As previously mentioned, the merchant application 113 may be associated with a unique merchant ID 115. Similarly, the user's selected items and / or services may be associated with a transaction ID 116. As the user selects and / or removes items and / or services from the shopping cart, the merchant application 113 sends the transaction ID 116 and an indication of the selected and / or removed items to the merchant server 150 so that the merchant server 150 knows which items and / or services are associated with the given transaction ID 116. At block 315, the one-tap module 114 of the merchant application 113 outputs a notification specifying to tap the contactless card 101 to the mobile device 110. In one embodiment, the one-tap module 114 outputs the notification once the merchant application 113 determines to output elements (e.g., forms, form fields, etc.) associated with completing the transaction and / or paying for the transaction.

[0028] At block 320, the user taps the contactless card 101 to the mobile device 110, causing the contactless card 101 to generate and transmit encrypted data 106. The applet 103 of the contactless card 101 may then use the private key 104, the input data (e.g., the customer identifier 105), and an encryption algorithm to generate the encrypted data 106. The applet 103 may then transmit the encrypted data 106 to the mobile device 110. At block 325, the one-tap module 114 and / or the merchant application 113 may receive the encrypted data 106 from the contactless card's communication interface 107. At block 330, the one-tap module 114 and / or the merchant application 113 transmit the encrypted data 106, the merchant identifier 115, and the transaction identifier 116 to the authentication server 120.

[0029] At block 335, the authentication application 123 decrypts the encrypted data 106 using the private key 104 in the memory 122 of the authentication server 120 to verify the encrypted data 106. At block 340, the authentication application 123 sends instructions to the VAN generator 142 specifying generating card data comprising a virtual account number, an expiration date, and a CVV. The authentication application 123 may further send the merchant identifier 115 and / or the transaction identifier 116 to the VAN generator 142. At block 345, the VAN generator 142 generates the virtual account number, the expiration date, and the CVV. At block 350, the VAN generator 142 sends the virtual account number, the expiration date, the CVV, the merchant ID 115, and the transaction ID 116 to the mobile device 110. The VAN generator 142 may further include the account holder's name, billing address, and shipping address, which may be stored locally by the VAN generator 142 and / or received from the authentication server 120.

[0030] At block 355, the merchant server 150 processes the transaction associated with the transaction ID 116 using the data received from the VAN generator 142. More specifically, the merchant server 150 processes the payment for the transaction using at least the virtual card number, expiration date, and CVV generated by the VAN generator 142. As mentioned, the merchant server 150 may process the transaction payment by generating a transaction record 152 in the transaction database 151 using at least the received virtual card number, expiration date, and CVV. The transaction record 152 may further include the user's name, billing address, shipping address, and an indication of each item and / or service associated with the transaction ID 116. At block 360, the merchant server 150 may send a payment confirmation to the merchant application 113 on the mobile device. The confirmation may typically indicate that the payment was processed using the virtual card data generated by the VAN generator.

[0031] 4 illustrates an embodiment of a logic flow 400. The logic flow 400 may be representative of some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 400 may include some or all of the operations performed to authorize a one-tap payment using a contactless card 101. In this context, the embodiments are not limited.

[0032] As shown, the logic flow 400 begins at block 405, where the one-tap module 114 and / or the merchant application 113 transmit the encrypted data 106 generated by the contactless card 101, the merchant ID 115, the transaction ID 116, and the device identifier to the authentication server 120. As mentioned, the device identifier may be a software fingerprint of the mobile device 110, a unique identifier of the mobile device 110 (e.g., a media access control (MAC) address), etc. At block 410, the authentication application 123 may determine that the received device identifier is not associated with an account for the contactless card 101. For example, the account data 124 may include a known device identifier for a given account. If the received device identifier is not specified as a known device identifier in the account data 124, the authentication application 123 may require additional information to maintain security of the account. Thus, the authentication application 123 may instruct the one-tap module 114 to output instructions to receive authentication credentials for the account in the account data 124. For example, the one-tap module 114 may output a notification specifying that the user provide a fingerprint as a biometric input to authenticate to an account associated with an account in the account data 124. As another example, the one-tap module 114 may output a notification specifying that the user provide a login and password associated with an account in the account data 124. In other embodiments, the user may log into an account using Face ID, other biometric identifiers, or any other type of credential.

[0033] At block 415, the user provides account credentials (e.g., biometric input, login / password, etc.) in the account data 124 to the one-tap module 114 and / or the merchant application 113. The one-tap module 114 may include logic for verifying the received credentials. In other embodiments, the one-tap module 114 may send the received credentials to the authentication server 120. At block 420, the authentication application 123 authenticates the received account credentials and the encrypted data 106 generated by the contactless card 101. The authentication application 123 may determine whether the received account credentials match the account credentials stored in the account data 124 and decrypt the encrypted data 106 using the private key 104. At block 425, the authentication server 120 may decide to instruct the VAN generator 142 to generate a virtual card number, an expiration date, and a CVV. The authentication server 120 may further transmit the name, billing address, and shipping address from the account data 124 along with the instructions to the VAN generator 142 .

[0034] 5 illustrates an embodiment of a logic flow 500. The logic flow 500 may be representative of some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 500 may include some or all of the operations for providing one-tap payment for transactions using contactless cards. In this context, the embodiments are not limited.

[0035] As shown, the logic flow 500 begins at block 505, where the merchant server 150 generates a transaction identifier 116 for the transaction. As mentioned, the transaction identifier 116 can be any type of identifier, such as a unique alphanumeric identifier, a unique session alphanumeric identifier, a file, etc. At block 510, the merchant application 113 receives the transaction identifier 116 from the merchant server 150 over the network 130. The merchant application 113 and / or the one-tap module 114 may transmit the received transaction identifier 116 along with the encrypted data 106 to the authentication server 120. At block 515, the merchant application 113 transmits an indication of the items and / or services added and / or removed from the user's shopping cart for the transaction associated with the transaction identifier 116. At block 520, the merchant server 150 receives the virtual card data 126, the user information, and the transaction identifier 116 from the VAN generator 142. At block 525 , the merchant server processes the payment for the transaction associated with the transaction identifier 116 by creating a transaction record in the transaction database 151 .

[0036] 6 illustrates an embodiment of a logic flow 600. The logic flow 600 may be representative of some or all of the operations performed by one or more embodiments described herein. For example, the logic flow 600 may include some or all of the operations performed by the merchant application 113 and / or the merchant server 150. In this context, the embodiments are not limited.

[0037] As shown, logic flow 600 begins at block 605 where merchant server 150 receives virtual card data 126 (e.g., virtual account number, expiration date, and CVV), account holder data (e.g., name, billing address, shipping address, etc.), and transaction ID 116 from VAN generator 142. At block 610, merchant server 150 determines that at least one element of the received data differs from at least one element of user data in a user profile associated with the merchant. For example, the received mailing address and / or billing address may not match an address specified in the user profile.

[0038] At block 615, the merchant server 150 instructs the merchant application 113 to output an indication of the data elements identified at block 610. For example, the merchant application 113 may output a list of addresses. At block 620, the merchant application 113 receives a user selection of one of the data elements (e.g., the first address output at block 615). At block 625, the merchant application 113 sends an indication of the data element selected at block 620 to the merchant server 150. At block 630, the merchant server 150 processes the transaction using the data received from the VAN generator 142 and the data elements selected by the user at block 620. More specifically, the merchant server 150 generates a transaction record for the transaction in the transaction database 151.

[0039] FIG. 7 illustrates an embodiment of an exemplary computing architecture 700 comprising a computing system 702 that may be suitable for implementing various embodiments as described above. In various embodiments, the computing architecture 700 may comprise or be implemented as part of an electronic device. In some embodiments, the computing architecture 700 may be representative of a system implementing, for example, one or more components of the system 100. In some embodiments, the computing system 702 may be representative of, for example, the contactless card 101, the mobile device 110, the authentication server 120, the virtual account number server 140, and / or the merchant server 150 of the system 100. The embodiments are not limited in this context. More generally, the computing architecture 700 is configured to implement all logic, applications, systems, methods, apparatus, and functions described herein with reference to FIGS. 1-6.

[0040] The terms "system," "component," and "module" as used in this application are intended to refer to any computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture 700. For example, a component may be, but is not limited to, a process running on a computer processor, a computer processor, a hard disk drive, multiple storage drives (of optical and / or magnetic storage media), an object, an executable, a thread of execution, a program, and / or a computer. As an example, both an application running on a server and the server may be a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one computer and / or distributed among two or more computers. Furthermore, components may be communicatively coupled to one another by various types of communication media to coordinate operations. Coordination may include unidirectional or bidirectional exchange of information. For example, components may communicate information in the form of signals communicated over the communication media. The information may be embodied as signals assigned to various signal lines. In such an assignment, each message is a signal. However, further embodiments may use data messages as an alternative. Such data messages may be transmitted over a variety of connections, examples of which include parallel interfaces, serial interfaces, and bus interfaces.

[0041] Computing system 702 includes various typical computing elements, such as one or more processors, multi-core processors, co-processors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input / output (I / O) components, power supplies, etc. However, embodiments are not limited to implementation by computing system 702.

[0042] 7, computing system 702 includes a processor 704, a system memory 706, and a system bus 708. Processor 704 may be any of a variety of commercially available computer processors, including, but not limited to, AMD® Athlon®, Duron® and Opteron® processors, ARM® application, embedded and secure processors, IBM® and Motorola® DragonBall® and PowerPC® processors, IBM and Sony® Cell processors, Intel® Celeron®, Core®, Core(2)Duo®, Itanium®, Pentium®, Xeon®, and XScale® processors and similar processors. Dual microprocessors, multi-core processors, and other multi-processor architectures may also be used as processor 704.

[0043] The system bus 708 provides an interface from the system memory 706 to system components including, but not limited to, the processor 704. The system bus 708 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Interface adapters may connect to the system bus 708 through a slot architecture. Examples of slot architectures include, but are not limited to, Accelerated Graphics Port (AGP), CardBus, (Enhanced) Industry Standard Architecture ((E)ISA), MicroChannel Architecture (MCA), NuBus, Peripheral Component Interconnect (Enhanced) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and the like.

[0044] The system memory 706 may include various types of computer-readable storage media in the form of one or more high-speed memory units, such as read-only memory (ROM), random access memory (RAM), dynamic RAM (DRAM), double data rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory (e.g., one or more flash arrays), polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon oxide nitride oxide silicon (SONOS) memory, magnetic or optical cards, arrays of devices such as redundant array of independent disks (RAID) drives, solid-state memory devices (e.g., USB memory, solid-state drive (SSD)), and other types of storage media suitable for storing information. In the illustrated embodiment shown in FIG. 7, the system memory 706 may include non-volatile memory 710 and / or volatile memory 712. The non-volatile memory 710 may store a basic input / output system (BIOS).

[0045] The computing system 702 may include various types of computer-readable storage media in the form of one or more low-speed memory units, including an internal (or external) hard disk drive (HDD) 714, a magnetic floppy disk drive (FDD) 716 that reads from or writes to a removable magnetic disk 718, and an optical disk drive 720 that reads from or writes to a removable optical disk 722 (e.g., a CD-ROM or DVD). The HDD 714, FDD 716, and optical disk drive 720 may be connected to the system bus 708 by a HDD interface 724, a FDD interface 726, and an optical drive interface 728, respectively. The HDD interface 724 for external drive implementations may include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies. The computing system 702 is generally configured to implement all of the logic, systems, methods, apparatus, and functions described herein with reference to FIGS. 1-6.

[0046] The drives and associated computer-readable media provide volatile and / or nonvolatile storage of data, data structures, computer-executable instructions, and the like. For example, a number of program modules may be stored on the drives and memory units 710, 712, including an operating system 730, one or more application programs 732, other program modules 734, and program data 736. In one embodiment, the one or more application programs 732, other program modules 734, and program data 736 may include, for example, various applications and / or components of the system 100, such as applets 103, private keys 104, encrypted data 106, operating system 112, merchant application 113, one-tap module 114, authentication application 123, VAN generator 142, and / or merchant server 150.

[0047] A user may enter commands and information into the computing system 702 through one or more wired / wireless input devices, for example, a keyboard 738 and a pointing device such as a mouse 740. Other input devices may include a microphone, infrared (IR) remote control, radio frequency (RF) remote control, game pad, stylus pen, card reader, dongle, fingerprint reader, grab, graphic tablet, joystick, keyboard, retina reader, touch screen (e.g., capacitive, resistive, etc.), track ball, track pad, sensor, stylus, etc. These and other input devices are often connected to the processor 704 through an input device interface 742 coupled to the system bus 708, but may be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.

[0048] A monitor 744 or other type of display device is also connected to the system bus 708 via an interface, such as a video adapter 746. The monitor 744 can be internal or external to the computing system 702. In addition to the monitor 744, computers typically include other peripheral output devices, such as speakers, printers, etc.

[0049] The computing system 702 may operate in a networked environment using logical connections via wired and / or wireless communication to one or more remote computers, such as a remote computer 748. The remote computer 748 may be a workstation, a server computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other common network node, and typically includes many or all of the elements described in connection with the computing system 702, although for simplicity, only a memory / storage device 750 is shown. The logical connections shown include wired / wireless connections to a local area network (LAN) 752 and / or larger networks, e.g., a wide area network (WAN) 754. Such LAN and WAN networking environments are common in offices and businesses, facilitating enterprise-wide computer networks, such as an intranet. All of these may connect to a global communications network, e.g., the Internet. In an embodiment, the network 130 of FIG. 1 is one or more of the LAN 752 and the WAN 754.

[0050] When used in a LAN networking environment, the computing system 702 is connected to the LAN 752 via a wired and / or wireless communication network interface or adapter 756. The adapter 756 may facilitate wired and / or wireless communication to the LAN 752, which may include a wireless access point disposed thereon for communicating with the wireless functionality of the adapter 756.

[0051] When used in a WAN networking environment, the computing system 702 may include a modem 758 or have other means for establishing communications over the WAN 754, such as connected to a communications server on the WAN 754 or via the Internet. The modem 758 may be internal or external, a wired and / or wireless device, and connects to the system bus 708 via the input device interface 742. In a networked environment, program modules depicted relative to the computing system 702, or portions thereof, may be stored in the remote memory / storage device 750. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

[0052] The computing system 702 is operable to communicate with wired and wireless devices or entities using the IEEE 802 family of standards, such as wireless devices operatively arranged for wireless communication (e.g., IEEE 802.16 wireless modulation technology). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, Bluetooth wireless technologies, and the like. Thus, communication can be a predefined structure, as with traditional networks, or simply ad-hoc communication between at least two devices. Wi-Fi networks provide secure, reliable, and high-speed wireless connectivity using radio technologies called IEEE 802.11x (a, b, g, n, etc.). Wi-Fi networks can be used to connect computers to each other, to the Internet, and to wired networks (using IEEE 802.3 related media and functions).

[0053] Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (APIs), instruction sets, computational code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. The decision whether an embodiment is implemented using hardware and / or software elements may vary according to any number of factors, such as required computational speed, power levels, thermal tolerances, processing cycle budgets, input data rates, output data rates, memory resources, data bus speeds, and other design or performance constraints.

[0054] One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium that represent various logic in a processor, and when read by a machine, the machine manufactures logic that performs the techniques described herein. Such representations, known as "IP cores," are stored on tangible machine-readable media and provided to various customers or manufacturing facilities for loading into manufacturing machines that create the logic or processors. Some embodiments may be implemented using a machine-readable medium or article that may store, for example, instructions or sets of instructions that, when executed by the machine, cause the machine to perform methods and / or operations in accordance with the embodiments. Such machines may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, etc., and may be implemented using any suitable combination of hardware and / or software. A machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and / or storage unit, such as memory, removable or non-removable media, erasable or non-erasable media, writable or rewritable media, digital or analog media, hard disk, floppy disk, compact disk read only memory (CD-ROM), compact disk recordable (CD-R), compact disk rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various digital versatile disks (DVDs), tapes, cassettes, etc. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, etc., and may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and / or interpreted programming language.

[0055] The foregoing description of exemplary embodiments has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of this disclosure. It is intended that the scope of the disclosure be limited not by this detailed description, but by the appended claims. Future applications claiming priority to this application may claim the disclosed subject matter in a different manner and may generally include any set of one or more limitations as variously disclosed or demonstrated herein.

Claims

1. receiving, from a merchant application executing on a client device, (i) a merchant identifier for a merchant associated with the merchant application, (ii) a transaction identifier for a transaction, and (iii) encrypted data, the encrypted data being generated by the contactless card and provided to the client device in response to the contactless card coming into communication range of the client device; the authentication application verifying the encrypted data by decrypting the encrypted data; generating virtual card data based on successful verification of the encrypted data; the virtual account number generator transmitting the merchant identifier, the transaction identifier, and the virtual card data to a merchant server associated with the merchant, the merchant server processing the transaction using the transaction identifier and the virtual card data; A method comprising:

2. The method comprises: the authentication application receiving a location of the client device; determining, by the authentication application, that the location of the client device is within a threshold distance of a known location associated with the contactless card, and wherein the virtual account number generator further generates the virtual card data based on the determination that the client device is within the threshold distance of the known location; The method of claim 1 further comprising:

3. The method comprises: determining, by the authentication application, that the contactless card has been used for a previous purchase with the merchant, and the virtual account number generator further generates the virtual card data based on the determination that the contactless card has been used for a previous purchase with the merchant; The method of claim 1 further comprising:

4. The method comprises: said virtual account number generator receiving from an account database an account holder name of an account associated with said contactless card and an address associated with said account; said virtual account number generator transmitting said account holder name and address to said merchant server; The method of claim 1 further comprising:

5. The method of claim 1 , wherein the client device receives the encrypted data via Near Field Communication (NFC) and EMV standards.

6. The method comprises: the authentication application determining that a device identifier received from the client device is associated with a user account associated with the contactless card; Further comprising: The method of claim 1 , wherein the virtual account number generator further generates the virtual card data based on the determination that the device identifier is associated with the user account associated with the contactless card.

7. 2. The method of claim 1 , wherein the virtual card data comprises a virtual account number, an expiration date associated with the virtual account number, and a card verification value (CVV) associated with the virtual account number, the expiration date and the CVV comprising one or more of: (i) an expiration date and CVV generated by the virtual account number generator, or (ii) an expiration date and CVV of the contactless card received by the virtual account number generator from an account database.

8. The method of claim 1 , wherein the virtual card data comprises a virtual account number that is different from an account number associated with the contactless card.

9. Prior to said generating said virtual card data, the method further comprises: receiving, by the authentication application, authentication information for a user account associated with the contactless card, the authentication information comprising one or more of: (i) a username and password; and (ii) one or more biometric credentials; The method of claim 1 , further comprising the authentication application verifying the authentication information of the user account.

10. The authentication application further receives a software fingerprint of the client device; The method comprises: the authentication application determining that the software fingerprint matches a stored software fingerprint associated with the client device; The method of claim 1 , wherein the virtual account number generator further generates the virtual card data based on the determination that the software fingerprint matches a stored software fingerprint associated with the client device.

11. A program including instructions, The instructions, when executed by one or more processors, cause the one or more processors to: receiving, from a merchant application executing on a client device, (i) a merchant identifier for a merchant associated with the merchant application, (ii) a transaction identifier for a transaction, and (iii) encrypted data, the encrypted data being generated by the contactless card and provided to the client device in response to the contactless card coming into communication range of the client device; the authentication application verifying the encrypted data by decrypting the encrypted data; generating virtual card data based on successful verification of the encrypted data; the virtual account number generator transmitting the merchant identifier, the transaction identifier, and the virtual card data to a merchant server associated with the merchant, the merchant server processing the transaction using the transaction identifier and the virtual card data; A program to execute.

12. The instructions cause the one or more processors to: the authentication application receiving a location of the client device; determining, by the authentication application, that the location of the client device is within a threshold distance of a known location associated with the contactless card, and wherein the virtual account number generator further generates the virtual card data based on the determination that the client device is within the threshold distance of the known location; The program according to claim 11 , further comprising:

13. The instructions cause the one or more processors to: determining, by the authentication application, that the contactless card has been used for a previous purchase with the merchant, and the virtual account number generator further generates the virtual card data based on the determination that the contactless card has been used for a previous purchase with the merchant; The program according to claim 11 , further comprising:

14. The instructions cause the one or more processors to: said virtual account number generator receiving from an account database an account holder name of an account associated with said contactless card and an address associated with said account; said virtual account number generator transmitting said account holder name and address to said merchant server; The program according to claim 11 , further comprising:

15. The program of claim 11 , wherein the client device receives the encrypted data via Near Field Communication (NFC) and EMV standards.

16. The instructions cause the one or more processors to: the authentication application determining that a device identifier received from the client device is associated with a user account associated with the contactless card; Then, 12. The program of claim 11, wherein the virtual account number generator further generates the virtual card data based on the determination that the device identifier is associated with the user account associated with the contactless card.

17. the virtual card data comprises a virtual account number, an expiration date associated with the virtual account number, and a card verification value (CVV) associated with the virtual account number; 12. The program of claim 11, wherein the expiration date and the CVV comprise one or more of: (i) an expiration date and a CVV generated by the virtual account number generator, or (ii) an expiration date and a CVV of the contactless card received by the virtual account number generator from an account database.

18. There is a system, one or more processors; A memory for storing instructions, The instructions, when executed by the one or more processors, cause the one or more processors to: receiving, from a merchant application executing on a client device, (i) a merchant identifier for a merchant associated with the merchant application, (ii) a transaction identifier for a transaction, and (iii) encrypted data, the encrypted data being generated by the contactless card and provided to the client device in response to the contactless card coming into communication range of the client device; the authentication application verifying the encrypted data by decrypting the encrypted data; generating virtual card data based on successful verification of the encrypted data; the virtual account number generator transmitting the merchant identifier, the transaction identifier, and the virtual card data to a merchant server associated with the merchant, the merchant server processing the transaction using the transaction identifier and the virtual card data; A system that executes the above.

19. The instructions cause the one or more processors to: the authentication application receiving a location of the client device; determining, by the authentication application, that the location of the client device is within a threshold distance of a known location associated with the contactless card, and wherein the virtual account number generator further generates the virtual card data based on the determination that the client device is within the threshold distance of the known location; The system of claim 18 , further comprising:

20. The instructions cause the one or more processors to: determining, by the authentication application, that the contactless card has been used for a previous purchase with the merchant, and the virtual account number generator further generates the virtual card data based on the determination that the contactless card has been used for a previous purchase with the merchant; The system of claim 18 , further comprising:

21. The instructions cause the one or more processors to: said virtual account number generator receiving from an account database an account holder name of an account associated with said contactless card and an address associated with said account; said virtual account number generator transmitting said account holder name and address to said merchant server; The system of claim 18 , further comprising:

22. 20. The system of claim 18, wherein the client device receives the encrypted data via Near Field Communication (NFC) and EMV standards.

23. The instructions cause the one or more processors to: the authentication application determining that a device identifier received from the client device is associated with a user account associated with the contactless card; Then, 20. The system of claim 18, wherein the virtual account number generator further generates the virtual card data based on the determination that the device identifier is associated with the user account associated with the contactless card.

24. the virtual card data comprises a virtual account number, an expiration date associated with the virtual account number, and a card verification value (CVV) associated with the virtual account number; 20. The system of claim 18, wherein the expiration date and the CVV comprise one or more of: (i) an expiration date and CVV generated by the virtual account number generator, or (ii) an expiration date and CVV of the contactless card received by the virtual account number generator from an account database.

Citation Information

Patent Citations

  • Personal information acquisition device

    JP2010113603A

  • Information distribution system, portable device, and information distribution method

    JP2010262583A

  • Methods, devices, and systems for secure provisioning, transmission, and authentication of payment data

    JP2017055385A

  • Card transaction service management server, card transaction service management method, and card transaction service management system

    JP2018014088A

  • Authentication device, terminal, authentication system, authentication method, and program

    JP2018160123A