METHODS AND SYSTEMS FOR SECURE MOBILE DEVICE INITIATED PAYMENTS
Systems, methods, processes, computer program code and means for conducting a transaction include receiving a request to authorize a purchase transaction, the request including a static virtual payment account number (“VPAN”), an expiry date, and a dynamic code generated by a mobile device, the request further including a transaction amount and a transaction date, identifying, based on the static VPAN, a payment card account number, verifying that the dynamic code matches an expected value of the dynamic code, and transmitting an updated authorization request message to an issuer associated with the payment card account number for authorization analysis.
This application claims the benefit of and priority to U.S. Provisional Patent Application Ser. No. 61/114,593, filed Nov. 14, 2008, which is incorporated herein by reference for all purposes.
Mobile telephones and other mobile communications devices (such as personal digital assistants) are carried by millions of consumers. There have been a number of attempts to integrate payment applications with these mobile devices. Some of these attempts require substantial changes to either existing payment authorization systems and existing point of transaction devices (or both), making it difficult to achieve widespread adoption of mobile payments. It would be desirable to provide a mobile payment system which uses existing point of transaction devices and existing payment authorization systems. It would further be desirable to provide mobile payment transactions which are secure and in which the cardholder's presence may be confirmed.
Embodiments of the present invention relate to systems, methods, processes, computer program code, and means for using mobile devices to conduct payment transactions over a network. In some embodiments, the mobile device can be used to conduct payment transactions involving credit, debit, stored value or other payment accounts. Pursuant to some embodiments, systems, methods, processes, computer program code and means for conducting a transaction include receiving a request to authorize a purchase transaction, the request including a static virtual payment account number (“VPAN”), an expiry date, and a dynamic code generated by a mobile device, the request further including a transaction amount and a transaction date, identifying, based on the static VPAN, a payment card account number, verifying that the dynamic code matches an expected value of the dynamic code, and transmitting an updated authorization request message to an issuer associated with the payment card account number for authorization analysis. In some embodiments, an authorization response message is received from the issuer, and an updated authorization response message is forwarded to a merchant, the updated authorization response message including the static VPAN.
For clarity and ease of exposition, a number of terms are used herein. For example, the term “cardholder” is used to refer to an individual who has been issued a payment account that may be used to conduct payment transactions. For example, in some embodiments, the payment account may be a debit or credit account which is accessible by a debit card or a credit card (or other device). As used herein, the term “issuer” is used to refer to a financial institution that has issued a payment account to a cardholders For example, an issuer may be a bank that issues a credit card account to a cardholder, and provides the cardholder with a credit card to access the account.
As used herein, the term “primary account number” (or “PAN”) is used to refer to a number of digits (or characters) which identity a payment account issued by an issuer. For example, in embodiments where a payment account is a credit card account which is issued by a financial institution pursuant to the MasterCard International Incorporated rules, the PAN may be a sixteen-digit string that identifies both the issuer (based on the first 5 digits of the string) and the payment account number at the issuer. The PAN is used to route and process transactions that involve the payment card and the payment account. Those skilled in the art will appreciate that other primary account number schemes and formats may be used in conjunction with embodiments of the present invention.
As used herein, the term “payment network” is used to refer to one or more networks that are used to process a payment transaction. For example, a payment network may be the BankNet® processing network operated by MasterCard International Incorporated. Those skilled in the art will appreciate that other networks may also be used to facilitate the authorization, clearing and settlement of payment transactions conducted using the present invention.
The term “mobile device” is used to refer to a handheld or portable device carried or used by a cardholder. In the context of embodiments of the present invention, a “mobile device” is a device that has a payment application stored, loaded or otherwise installed in or on the device such that the cardholder may conduct payment transactions involving a payment account pursuant to embodiments of the present invention. Other terms will be introduced throughout the specification to illustrate features of some embodiments.
Pursuant to some embodiments, mobile devices (such as mobile telephones) are provided with (or updated to include) a payment application which stores at least one static virtual payment account number (or “VPAN”). The VPAN account has its own virtual expiry date. An authorized user of the payment application may access the VPAN and use it to make a purchase transaction (e.g., at a physical merchant location or an electronic commerce location). The authorized user provides the VPAN, along with its expiry date, and a dynamic code (generated by the payment application) to the merchant and the merchant routes the VPAN, expiry date, dynamic code, and other transaction information to a payment provider (e.g., using existing payment authorization systems).
The payment provider uses the VPAN to look-up an actual PAN associated with a payment account of the customer, and confirms the validity of the dynamic code. A second authorization request message is then created with the actual PAN and the transaction information. The second authorization request is routed to the issuer of the customer's payment account for authorization. If the transaction is authorized, the authorization response is returned to the payment provider. The payment provider replaces the actual PAN with the VPAN and returns the authorization response to the merchant so that the transaction can be completed.
Features of some embodiments of the present invention will be described by reference to
In a typical example transaction, a customer may purchase products or services from the merchant 108 by interacting with a payment application (installed in or on the mobile device 102) to cause the generation of a static VPAN on the mobile device 102. In some embodiments, the payment application also generates an expiration date associated with the static VPAN. In some embodiments, the payment application also generates a dynamic account validation code. In some embodiments, the dynamic account validation code has the same format as existing dynamic card validation codes found on physical payment cards. The VPAN, the expiration date, and the dynamic account validation code are provided to a clerk operating a point of sale terminal, who keys in the information as if it were being copied from a normal payment card.
In some embodiments, such as embodiments operable in electronic commerce environments, the customer may cause the payment application in the mobile device to display a VPAN, expiration date and dynamic account validation code on a display device of the mobile device 102. The customer may read the information from the display device and then key in that data into a Web page on a computer to complete the ecommerce transaction. In some embodiments, such as embodiments involving telephone transactions, the customer may read the information from the display device of the mobile device 102 and orally convey the information to a call center operator or key the information in through a telephone keypad. In
In addition to generating (or providing) the VPAN, the payment application on the mobile device 102, in one preferred embodiment, prompts the user for a password to open up, launch, or otherwise access the payment application on the mobile device. This provides evidence that the account holder of the VPAN was present during the transaction. If the user's password is verified, the payment application on the mobile device operates to generate (or otherwise provide) an expiry date and a multi digit dynamic number (hereinafter a “dynamic code”). In some embodiments, the dynamic code is a three or four digit code that may be used in place of a “CVV” or “CVC” code (a code generally used in payment card systems and used to verify that a cardholder was in possession of a payment card during a transaction).
In some embodiments, the dynamic code is generated in the payment application of the mobile device 102 based on a secret key stored in the payment application (e.g., by an issuer of a payment account held by the cardholder) when the payment application and the VPAN are loaded into the mobile device 102. The dynamic code is, in some embodiments, generated based on the secret key and the value of a transaction counter. For example, each payment application may have a transaction counter that increments each time the payment application is used to conduct a transaction using a VPAN. Once the payment application has retrieved or generated the VPAN, the expiry date, and the dynamic code for the transaction, the data elements are displayed on a display device 104 of the mobile device 102 and the customer provides the data elements to the merchant 108.
In some embodiments, the dynamic code is not generated in the payment application of the mobile device 102 but is taken from a pre-populated list of dynamic codes stored in the payment application (e.g., by an issuer of a payment account held by the cardholder) when the payment application and the VPAN are loaded into the mobile device 102.
The merchant 108 enters the data elements (including the VPAN, the expiry date and the dynamic code) into a point of transaction terminal (e.g., such as a POS terminal) and causes the creation of an authorization request message in the format required by the payment networks used by the merchant systems. The authorization request message is transmitted (at message “2” in
The authorization request message is transmitted through a network 120 (such as a payment association network, e.g., the BankNet® network operated by MasterCard International Incorporated). Pursuant to some embodiments, the authorization request message is routed to a payment provider 110 such as a server device or system operated to manage and administer transactions involving embodiments of the present invention. In some embodiments, the authorization request message is routed through the network 120 based on data in the VPAN. For example, each VPAN may have a four or five leading digits which serve to identify the payment provider 110 as the “issuer” of the VPAN. Those skilled in the art will appreciate that an authorization request involving a payment card is typically transmitted to the payment card issuer for authorization. In embodiments of the present invention, authorization requests involving VPANs are routed, instead, to a payment provider 110.
The payment provider 110, upon receiving the authorization request, uses the VPAN in the authorization request to look-up a data record (such as the data record illustrated as 150) which includes details associated with the VPAN, including, for example, information from an associated physical payment card with the physical payment card's expiry date and physical card's static card verification code and a value (or range of values) identifying an expected counter value. The expected counter value may be used to confirm the likely validity of the dynamic value generated by the mobile device 102. An example of a database that could store a data record 150 is shown and discussed below at
Because the payment provider 110 may not know the exact value of the counter in each mobile device 102, the payment provider 110 may generate a series of expected dynamic values based on the general range of counter values the payment provider expects from a particular mobile device. For example, if a mobile device 102 has engaged in 10 prior transactions using VPANs, the payment provider 110 may generate a range of expected dynamic values using ten counter values from 10 and 20. The resulting ten expected dynamic values are then compared to the received dynamic value. If the dynamic value received from the mobile device 102 is equal to one of the ten expected dynamic values, the transaction may continue. If the dynamic value received from the mobile device 102 is not equal to one of the ten expected dynamic values, then the transaction may be declined (e.g., by returning a denial response in message “5”).
If the dynamic value received from the mobile device 102 is equal to one of the expected dynamic values, the payment provider 110 continues processing the transaction by creating an updated authorization request in which the VPAN is replaced with the PAN of the payment card registered for that VPAN by the customer plus the expiry date of the real physical card. In some embodiments, a CVC or other static values associated with the customer's physical payment card is also included in the updated authorization request. The updated authorization request is then routed, via the network 120, to the issuer of the customer's physical payment card. The issuer 112, upon receipt of the updated authorization request, performs normal authorization processing to determine if the payment transaction can be authorized. An authorization response is then returned to the payment provider (e.g., at message “4”).
The payment provider then creates an updated authorization response message by replacing the PAN of the customer's physical payment card with the VPAN previously received. The updated authorization response is then returned to the merchant 108 to complete the transaction. In this manner, mobile devices (and their processing power) may be used to generate and simply display, to the merchant clerk (for face to face transactions) or to the customer (for ecommerce transactions) the three primary pieces of payment data (a PAN, an expiry date, and a card verification code that is the same format as normal) that are used in existing payment card networks and to initiate key entered payment transactions involving payment cards. An important aspect of some embodiments of the present invention is that the keyed in card verification code is dynamic and is checked by payment provider 110, not by issuer 112 of the physical card. In this manner, payment card issuers are not required to deploy or implement new processes to validate or support the dynamic card codes, nor are they required to implement new systems to track or generate VPANs. Further, embodiments ensure that merchants are not made aware of the actual payment card information, as they are only exposed to the VPAN information.
Pursuant to some embodiments, prior to conducting a transaction using a VPAN, a cardholder must first register a payment card with the payment provider 110, and install (or activate) a payment application on a mobile device. One process for registration and activation is shown in
Once the cardholder contacts the payment provider, processing continues at 204 where the cardholder is walked through a menu of options to create a mobile transaction account. For example, the cardholder may be prompted for personal information to verify the cardholder's identity, and may be prompted for information needed to create the mobile transaction account.
Processing continues at 206 where the cardholder is prompted to identify one or more payment card accounts to be associated with the mobile transaction account. The payment card account(s) will be used to complete transactions processing using the system.
Processing continues at 208 where the payment provider 110 creates a VPAN and a VPAN record (e.g., such as shown in item 150 of
Reference is now made to
Processing begins at 302 where an authorization request involving a VPAN is received. At 304, an initial determination may be made whether the transaction date is prior to the expiry date of the VPAN. If not, processing may continue at 316 where an authorization denial may be created. If the transaction date is prior to the expiry date, processing continues at 306 where a mapping or look-up is performed (using the VPAN) to retrieve data associated with the VPAN (e.g., such as the data shown as item 150 of
The processor 410 is also in communication with an input device 440. The input device 440 may comprise, for example, a keyboard, a mouse, or computer media reader. Such an input device 440 may be used, for example, to enter information about cardholders participating in the system or to perform administrative actions associated with the management and administration of the payment provider device 400. The processor 410 is also in communication with an output device 450. The output device 450 may comprise, for example, a display screen or printer. Such an output device 450 may be used, for example, to provide reports and/or display information associate with cardholder registrations and the usage or administration of cardholder data.
The processor 410 is also in communication with a storage device 430. The storage device 430 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., magnetic tape and hard disk drives), optical storage devices, and/or semiconductor memory devices such as Random Access Memory (RAM) devices and Read Only Memory (ROM) devices.
The storage device 430 stores a program 415 for controlling the processor 410. The processor 410 performs instructions of the program 415, and thereby operates in accordance any embodiments of the present invention described herein. For example, the processor 410 may receive, via the communication device 420, a request from a cardholder to register a payment card and to activate a payment application on a mobile device (e.g., such as a registration request in accordance with the process of
The processor 410 may also operate with the program to retrieve data from a storage device (e.g., to retrieve data associated with a static VPAN received from a merchant) and to compute a series of expected dynamic verification numbers associated with the static VPAN to determine whether a transaction should be declined or whether an authorization request should be created and transmitted to an issuer. Moreover, the processor 410 may match this information using one or more rules or formulas.
As used herein, information may be “received” by or “transmitted” to, for example: (i) the payment provider device 400 from merchant devices, acquirers, mobile devices, issuer devices, payment network devices; or (ii) a software application or module within the payment provider device 400 from another software application, module, or any other source.
As shown in
The VPAN 502 may be, for example, an alphanumeric code (typically, in current systems, a sixteen digit numeric code) assigned by the payment provider to a cardholder for the cardholder's use in making certain transactions pursuant to embodiments of the present invention. In some embodiments, VPANs issued or assigned by a payment provider are formatted in accordance with a payment network's formatting rules. As a specific example, for VPANs processed over the payment network operated by MasterCard International Incorporated, VPANs are 16 digit numeric codes in which the first 6 digits are used to identify the VPAN as a VPAN to be routed to a payment provider 110 for processing. For example, as illustrated in
As shown in
Each VPAN 502 is also associated with one or more counters 508. The counter may, for example, increment each time a VPAN 502 is used in a transaction. As discussed above in conjunction with
The above descriptions of processes herein should not be considered to imply a fixed order for performing the process steps. Rather, the process steps may be performed in any order that is practicable, including simultaneous performance of at least some steps.
Although the present invention has been described in connection with specific exemplary embodiments, it should be understood that various changes, substitutions, and alterations apparent to those skilled in the art can be made to the disclosed embodiments without departing from the spirit and scope of the invention as set forth in the appended claims.
Claims
1. A method for conducting a transaction, comprising:
- receiving a request to authorize a purchase transaction involving a purchase from a merchant, said request including a static virtual payment account number (VPAN), an expiry date, and a dynamic code generated by a mobile device, said request further including a transaction amount and a transaction date;
- identifying, based on said static VPAN, a payment card account number;
- verifying that said dynamic code matches an expected value of said dynamic code; and
- transmitting an updated authorization request message to an issuer for authorization processing based on said payment card account number.
2. The method of claim 1, further comprising:
- receiving an authorization response message from said issuer; and
- forwarding an updated authorization response message to said merchant, said updated authorization response message including said static VPAN.
3. The method of claim 1, wherein verifying that said dynamic code matches an expected value comprises:
- generating at least a first expected value based on a transaction counter value and a shared secret key.
4. The method of claim 1, wherein said dynamic code is selected from among a pre-populated list of dynamic codes based on a value of a transaction counter.
5. The method of claim 1, wherein verifying that said dynamic code matches an expected value comprises:
- generating a series of expected values based on a series of expected transaction counter values and a shared secret key.
6. A payment provider apparatus, comprising:
- a processor;
- a communication device coupled to said processor and adapted to communicate with at least one of an issuer, and a merchant device over a processing network;
- a storage device in communication with said processor and storing instructions adapted to be executed by said processor to: receive, from said merchant device, a request to authorize a purchase transaction involving a purchase, said request including a static virtual payment account number (VPAN), an expiry date, and a dynamic code generated by a mobile device, said request further including a transaction amount and a transaction date; identify, based on said static VPAN, a payment card account number; verify that said dynamic code matches an expected value of said dynamic code; and transmit an updated authorization request message to said issuer for authorization processing based on said payment card account number.
7. The apparatus of claim 6, wherein said storage device further storing instructions adapted to be executed by said processor to:
- receive, from said issuer, an authorization response message; and
- forward, to said merchant device, an updated authorization response message, said updated authorization response message including said static VPAN.
8. The apparatus of claim 6, wherein said instructions to verify that said dynamic code matches an expected value further comprises instructions adapted to be executed by said processor to:
- generate at least a first expected value based on a transaction counter value and a shared secret key.
9. The apparatus of claim 6, wherein the dynamic code generated by said mobile device is generated by selecting a dynamic code from among a list of available dynamic codes, said selection based on the value of a transaction counter in said mobile device.
10. The apparatus of claim 6, wherein said instructions to verify that said dynamic code matches an expected value further comprises instructions adapted to be executed by said processor to:
- generate a series of expected values based on a series of expected transaction counter values and a shared secret key.
11. The apparatus of claim 6, wherein said storage device stores at least a database containing said static VPAN.
12. The apparatus of claim 11, wherein said database further stores at least one of (i) a physical PAN, (ii) a counter, (iii) and an expiration date of said VPAN.
13. A computer-readable medium storing instructions adapted to be executed by a processor to perform a method of processing payment transactions, said method comprising:
- receiving a request to authorize a purchase transaction involving a purchase from a merchant, said request including a static virtual payment account number (VPAN), an expiry date, and a dynamic code generated by a mobile device, said request further including a transaction amount and a transaction date;
- identifying, based on said static VPAN, a payment card account number;
- verifying that said dynamic code matches an expected value of said dynamic code; and
- transmitting an updated authorization request message to an issuer for authorization processing based on said payment card account number.
14. The computer-readable medium of claim 13, wherein the method of processing payment transactions further comprising:
- receiving, from said issuer, an authorization response message; and
- forwarding, to said merchant device, an updated authorization response message, said updated authorization response message including said static VPAN.
15. The computer-readable medium of claim 13, wherein said verifying that said dynamic code matches an expected value further comprises:
- generating at least a first expected value based on a transaction counter value and a shared secret key.
16. The computer-readable medium of claim 13, wherein the dynamic code generated by said mobile device is generated by selecting a dynamic code from among a list of available dynamic codes, said selection based on the value of a transaction counter in said mobile device.
17. The computer-readable medium of claim 13, wherein said verifying that said dynamic code matches an expected value further comprises:
- generating a series of expected values based on a series of expected transaction counter values and a shared secret key.
18. The computer-readable medium of claim 13, wherein said storage device stores at least a database containing said static VPAN.
19. The computer-readable medium of claim 18, wherein said database further stores at least one of (i) a physical PAN, (ii) a counter, (iii) and an expiration date of said VPAN.
Type: Application
Filed: Jun 1, 2009
Publication Date: May 20, 2010
Inventors: John R. Wankmueller (Great Neck, NY), Paul Smith (Edinburgh)
Application Number: 12/475,718
International Classification: G06Q 20/00 (20060101);