The present invention embraces a system for providing certified person-to-person payments.
With the wide adoption of credits cards, debit cards, electronic payment devices, online shopping systems, and online banking systems, very few people today carry a lot of cash or write many checks. However, people still need to transfer money to each other for all sorts of reasons. For example, a person may want to pay a friend back for money recently borrowed from the friend, or a person may want to send money to a relative as a gift. Giving or lending money to another person, however, can be difficult when you don't have cash on hand and/or if the person is not physically present. The process may need to involve going to an automated teller machine (ATM) or mailing the person a check, both of which can be time consuming and inconvenient depending on the situation.
Money can be transferred from one person to another using electronic banking systems, but these systems traditionally require that the sender know account information for the receiver in order to instruct the bank to transfer money to the proper account. Most people do not know the account numbers of their friends, nor do most people want to widely publicize their account numbers for security reasons.
Some third party service providers try to facilitate payments from one person to another, but many people do not like these systems because they require opening yet another account with another online entity, remembering yet another username and password, and disclosing confidential financial institution account information to these other companies. In addition to the inconvenience and the security concerns, these systems generally take time set up and are not user-friendly.
For all these reasons and others, there is a need for improved user-friendly systems and methods for transferring money between two people and/or other entities, especially if such systems can transfer money directly to and/or from financial institution accounts, such as demand deposit accounts (e.g., checking accounts), and savings accounts.
Embodiments of the present invention address these and/or other needs by providing a person-to-person (P2P) payment system along with a user-friendly interface and process for sending and receiving P2P payments. P2P payment systems are disclosed in commonly assigned U.S. Patent Application Publication Nos. 2012/0116967 and 2012/0116957, each of which is hereby incorporated by reference in its entirety. Advantageously, embodiments of the invention do not necessarily require users to share confidential account information with others in order to send and receive payments. In fact, embodiments of the invention do not require that the payment sender know any information about the financial accounts of the intended payment recipient. Furthermore, embodiments of the invention enable users to attempt to make payments to persons that are not customers of the same financial institution and to persons that are not customers of any financial institution.
More specifically, embodiments of the invention allow an entity to transfer certified funds to another entity using a mobile telephone number, electronic mail (email) address, and/or other alias of the transfer recipient. By engaging in a transfer of certified funds, the payee can be confident that the payer has funds sufficient to cover the transaction. Accordingly, there is less risk to the payee that the transfer will later be canceled, disputed, or reversed.
Accordingly, in one aspect the present invention embraces a system for providing certified payments that includes a computer apparatus including a processor and a memory. A certified payment system module is stored in the memory and is executable by the processor. The certified payment system module is typically configured to receive payment instructions from a payer computing device (e.g., a mobile device). As used herein, the term “payer computing device” is intended to include the computing device of an intermediary (e.g., a financial institution) that the payer is using to transmit the payment instructions to the certified payments system. The payment instructions typically include a payment account, a payment amount, an alias associated with a payee, and a payment certification request. After receiving the payment instructions, the certified payment system module is typically configured to determine that the payee is a registered payee based on the alias and determine that the payment account has funds sufficient to cover the payment amount. If the payment account has sufficient funds, the certified payment system module places a hold on funds in the payment account sufficient to cover the payment amount. The certified payment system module is configured to communicate a payment certification code to the payer based upon determining that the payment account has funds sufficient to cover the payment amount. In addition, the certified payment system module is configured to communicate a certified payment notification to the payee based up determining that the payment account has funds sufficient to cover the payment amount and determining that the payee is a registered payee based on the alias. The payment certification code may be provided by the payer to the payee once the payer is ready to complete the transaction. Accordingly, the certified payment system module is configured to receive the payment certification code from the payee (e.g., from a payee computing device). As used herein, the term “payee computing device” is intended to include the computing device of an intermediary (e.g., a financial institution) that the payee is using to transmit the payment certification code to the certified payments system. Thereafter, the certified payment system module transfers funds sufficient to cover the payment to an account associated with the payee based upon receiving the payment certification code from the payee.
In another aspect, the present invention embraces a method a system for providing certified payments that allows a payer to cancel a pending transaction. The system includes a computer apparatus including a processor and a memory. A certified payment system module is stored in the memory and is executable by the processor. The certified payment system module is typically configured to receive payment instructions from a payer computing device (e.g., a mobile device). The payment instructions typically include a payment account, a payment amount, an alias associated with a payee, and a payment certification request. After receiving the payment instructions, the certified payment system module is typically configured to determine that the payee is a registered payee based on the alias and determine that the payment account has funds sufficient to cover the payment amount. If the payment account has sufficient funds, the certified payment system module places a hold on funds in the payment account sufficient to cover the payment amount. In addition, the certified payment system module communicates a certified payment notification to the payee based up determining that the payment account has funds sufficient to cover the payment amount and determining that the payee is a registered payee based on the alias. The certified payment system module is configured to receive a payment cancelation request from the payer and determine whether a payment certification code has been communicated to the payer. If a payment certification code has not been communicated to the payer, the certified payment system module is configured to approve the cancelation request. Thereafter, the certified payment system module is typically configured to, based upon approving the payment cancelation request, remove the hold on the funds sufficient to cover the payment amount, communicate a payment cancelation notification to the payer, and communicate a payment cancelation notification to the payee. If a payment certification code has not been communicated to the payer, the certified payment system module is typically configured to deny the cancelation request and communicate a cancelation request denial notification to the first user. Thereafter, the certified payment system module is typically configured to receive the payment certification code from a payee computing device and transfer the funds sufficient to cover the payment to an account associated with the payee based upon receiving the payment certification code from the payee computing device.
As described in greater detail below, a user interface can be incorporated into the mobile or online banking website of a bank or other financial institution. A user can authenticate her identity using the mobile or online banking authentication system and the user's authentication information and procedures that are already known to the user for interacting with mobile or online banking. The user can then use the mobile or online banking interface to register a mobile phone number, email address, or other alias by associating the number, address, or other alias with one of the user's financial institution accounts. This association is then stored in a data repository that can later be accessed by the bank and, in some cases, other financial institutions. Some embodiments of the invention provide a system for verifying that the alias is owned, held, or otherwise associated with the user, the system including immediately sending a code to the user's device using the alias (e.g., sending a code in a text or email) and having the user enter the code into the mobile or online banking interface shortly thereafter.
The mobile or online banking interface can also be used to initiate transfers to others using aliases. In some embodiments of the invention, a user can create a transfer recipient by entering the recipient's name, alias (e.g., mobile phone number or email address), and a descriptive name for the person, commonly referred to herein as a nickname. The user can then create a transfer request by using the mobile or online banking interface to select an account associated with the user's mobile or online banking account, enter or select the nickname of the saved recipient, and enter a monetary amount. The banking system then accesses the data repository to determine whether the alias is registered and thereby associated with a financial institution account. If the alias is registered, the banking system sends a transfer notification to the recipient using the alias. If the alias is not registered, then the banking system uses the alias to send the transfer recipient a notification (e.g., a text message, email address or the like), the notification telling the person that there is a pending transfer that will be processed if the person registers her alias with an existing financial institution account and/or opens a new financial institution account. The notification then provides a link to the mobile or online banking website, a mobile or online banking website, or a mobile or online banking application that allows the person to easily register an existing account or open a new account.
The mobile or online banking interface can also be used to communicate to the user initiating the transfer (e.g., the payer) the payment certification code that indicates that user's account associated with the transfer has sufficient funds. Afterwards, the recipient of the transfer (e.g., the payee) may enter the payment certification code into the mobile or online banking interface. Then, the funds are transferred to an account associated with the recipient.
Embodiments of the invention also provide a user interface that makes it easy for users to monitor their current, future, pending, and past person-to-person (P2P) and/or person-to-merchant (P2M) funds transfers as well as their saved transfer recipient list, alias registrations, incoming transfers, and/or other related information.
It should be appreciated that at least some embodiments of the invention provide a more convenient, user friendly, and secure P2P payment system because it is provided by the user's bank, through the bank's mobile or online banking system with which the user is already familiar. In at least some embodiments, the user may not need to share personal or confidential information, such as account information, with people or businesses outside of the user's bank. The user can feel more secure having P2P payment services handled by their bank and have the convenience of being able to directly send money from and/or receive money into the user's one or more financial institution accounts.
The features, functions, and advantages that have been discussed may be achieved independently in various embodiments of the present invention or may be combined with yet other embodiments, further details of which can be seen with reference to the following description and drawings.
Having thus described embodiments of the invention in general terms, reference will now be made the accompanying drawings, wherein:
Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Where possible, any terms expressed in the singular form herein are meant to also include the plural form and vice versa, unless explicitly stated otherwise. Also, as used herein, the term “a” and/or “an” shall mean “one or more,” even though the phrase “one or more” is also used herein. Furthermore, when it is said herein that something is “based on” something else, it may be based on one or more other things as well. In other words, unless expressly indicated otherwise, as used herein “based on” means “based at least in part on” or “based at least partially on.” Like numbers refer to like elements throughout.
In accordance with embodiments of the invention, the terms “financial institution” and “financial entity” include any organization that processes financial transactions including, but not limited to, banks, credit unions, savings and loan associations, investment companies, stock brokerages, asses management firms, insurance companies and the like. In specific embodiments of the invention, use of the term “bank” is limited to a financial entity in which account-bearing customers conduct financial transactions, such as account deposits, withdrawals, transfers and the like.
Embodiments of the present invention provide a system and method for certified person-to-person (P2P) payments. Embodiments of the invention allow customers of a financial entity to make payments directly from their accounts, whether their accounts be checking, savings, and/or other accounts, to a payment or transfer recipient (e.g., a payee), including financial entity customers and non-financial entity customers, without having to share any confidential account information and without having to know account information for the intended payment recipient. Embodiments of the invention also allow customers and non-customers to receive payments from others directly into their financial institution accounts without requiring the customer to share account information with the payment sender. It should be noted that some embodiments of the invention allow a customer to make payments to and/or receive payments from a merchant in the same way that a customer can make payments to and/or receive payments from another person. As such, as used herein, the phrase person-to-person (P2P) is intended to include person-to-merchant (P2M), merchant-to-merchant (M2M), and merchant-to-person (M2P) unless specifically stated otherwise. Embodiments of the present invention permit a sender to send money from the sender's financial institution account directly to the recipient's financial institution account using the alias of the recipient without the involvement of an intermediary or a third party. This allows for greater security as no party apart from the sender, the recipient, and the bank is ever a part of the transfer. That said, it within the scope of the present invention for the sender to involve an intermediary (e.g., a financial institution) to initiate a transaction or payment or to otherwise interact with a system as described herein. For example, it is within the scope of the present invention for the sender to go to a branch location of a financial institution in order to initiate a certified transaction. Embodiments of the present invention further allow for the certified transfers of funds, which provides the transfer recipient with confidence that the sender (e.g., payer) has sufficient funds to cover the amount of the transfer.
The information provided by the customer 101 during registration of an alias may be verified to confirm that the customer 101 does have access to the mobile number 119, email address 121, social networking ID 123, or other alias 117 provided. For example, as described in greater detail below, the financial institution (or other entity that maintains a database of aliases and associates them with financial institution accounts) may send a communication to the customer 101 using the alias and require the customer 101 confirm access to the alias by responding to the notice in some way. For example, if the alias registered by the customer 101 is a mobile telephone number 119, the financial institution may send a text message to the mobile telephone number 119 with a code and then require that the customer 101 enter the code into a mobile banking or online banking application to confirm that the mobile telephone number is associated with the customer 101. Once the alias information is verified, then the alias is linked to one or more of the customer's financial institution accounts in a data repository maintained by the financial institution or some other entity that provides an alias registry service to the financial institution.
The customer 101 can also use embodiments of the invention to make payments to other entities, such as receiver 125, using an alias of the receiver 125. In some embodiments of the invention, the customer 101 is able to set preferences for accounts to be used for outgoing payments, and default account(s) for incoming payments. In some embodiments of the invention, the financial institution places parameters (e.g., maximums and/or minimums) on how much money can be sent or received using P2P payment aliases, and such parameters may be based on the sender, the receiver, whether the receiver is a customer of the financial institution or a partner financial institution, account history, credit ratings, customer status, whether the customer has registered the alias, and/or any other relevant information. In some embodiments, the customer 101 can also establish parameters on P2P payments. For example, a customer 101 may want to set a maximum of $1000 for P2P payments where an alias is used for the recipient as opposed to an account number.
In some embodiments of the invention, the customer 101 may also have an option of opening a new P2P account 109 with the financial institution that the customer may use exclusively for making and/or receiving P2P payments. This financial entity P2P account 109 may be like any other account hosted at the financial entity and so money may be moved instantly into this account 109 through the regular banking transfer process for moving money between a customer's accounts. This account 109 may be a type of checking account except that it may come with certain limitations (e.g., no checks, maximum balance parameters, number of daily transactions or the like) and may be opened by customers by providing much less information as compared to a regular checking account. The financial entity may, at a minimum, require customers to provide certain information, such as name, address, date of birth, and social security number, in order to comply with Anti-Money Laundering (AML) regulations. Customers 101 of the financial entity may also have an option to set up P2P accounts 109 (e.g., sub-accounts) for minors 111, other dependents, or related entities. Customers 101 are able to access these accounts just like any of their other accounts. In addition, customers 101 are able to set up a banking access ID for the minor 111 that the minor 111 may use to sign into mobile or online banking but have access only to the specific minor P2P account 109 set up for them. These P2P-specific accounts and sub-accounts are described in more detail in commonly assigned U.S. Pat. No. 8,249,985, which is hereby incorporated by reference in its entirety.
Referring again to
In accordance with embodiments of the invention, payments may be made by providing an alias 117. In general, as described in greater detail below, the customer 101 initiates a P2P payment using an alias by communicating an alias 117 and an associated payment amount to the financial institution. The financial institution then accesses an alias database, or other type of data repository, to determine if the entered alias 117 has been registered by the alias holder and is, thereby, associated with a particular financial institution account. If the alias 117 does have a match to another customer in step 131 or financial institution account of another customer 131, then the payment may be initiated to that person, as described in greater detail below. In some embodiments, once a match has been found for the alias 117, the financial institution determines that the payment account has funds sufficient to cover the payment amount. If the payment account has sufficient funds, the financial institution places a hold on funds in the payment account sufficient to cover the payment amount. For example, the financial institution may transfer sufficient funds from the payment account to the financial institution's general ledger. In addition, the financial institution provides a payment certification code (e.g., an alphanumeric code or a barcode) to the payer if the payment account has funds sufficient to cover the payment amount. The payment certification code is typically unique to the particular transfer. The payment certification code is typically provided by the payer to the payee once the payer is ready to complete the transaction. If the payment account does not have sufficient funds, the financial institution typically will not issue a payment certification code. Once the payee has the payment certification code, the payee provides the payment certification code to the financial institution, after which the financial institution transfers the held funds (e.g., from the financial institution's general ledger) to an account associated with the payee. Until the payee provides the payment certification code, the financial institution will typically continue to hold the funds and refrain from transferring the funds to the payee.
If there is no match, then either an error message 129 is generated or, if possible, the alias 117 may be used to contact the intended recipient 125 and allow this person to register the alias 117 and thereby associate the alias with a financial institution account. At any time, if outgoing payments or payment notifications are not received by a receiver (as represented by block 103), the payment may be canceled (as represented by block 105).
In some embodiments of the invention, an alias 117 may be associated with multiple financial institution accounts of the alias holder. In some such embodiments, the alias holder may be able to establish a default account when registering the alias 117 or afterwards. Consequently, if a receiver 125 does have a default account for incoming payments in 137, then the funds may be transferred to that account(s). If the receiver 125 has not set up a default account in 137 but the receiver 125 does have multiple accounts associated with the alias 117, then the funds may be moved to a master settlement account 135 and the receiver 125 may see the payment as an incoming payment within mobile or online banking 133. The receiver 125 may then be able to use the banking application to move the funds to any of the receiver's others accounts. In other embodiments, however, each alias 117 is associated only with one financial institution account and, therefore, steps 137 and 135 are not needed and the payment is deposited directly into the one financial institution account associated with the alias 117.
As further illustrated in
As further illustrated in
In some embodiments of the invention, payment may be made by providing a social networking ID 123, such as a unique ID associated with the receiver 125 on a particular social networking Internet site. In such a situation, the process operates in the same way as described above for mobile phone number 119 and email address 121 except the social networking platform may be used to notify the receiver based on the social networking ID 123 provided.
In all cases described above, if the receiver 125 is already a customer of the financial institution or a partner financial institution and has already registered the alias 117 provided by the sender 101, a text message, email, mobile banking notice, online banking notice, or other type of message may be sent to receiver 125 based on the alias 117 entered by the sender 101 or irrespective of information entered by sender if there is other contact information found in the receiver's profile, the notification notifying the receiver 125 of the payment. In some embodiments, the receiver 125 may be allowed to reject or re-route the payment. In some embodiments of the invention, the sender 101 is permitted to include a note to the recipient 125 along with the payment, such as a note explaining to the recipient what the purpose of the payment is for.
It should be appreciated that embodiments of the invention described above permit an entity to send money to another entity even if the sending entity does not know any account information for the recipient entity and only knows a mobile telephone number or email address of the recipient entity. This can also result in better protection of personal account information. It should also be appreciated that some embodiments of the invention create a viral registration and/or account opening system that allows for customers of a financial institution send payments to anyone outside the financial entity using an alias. In such embodiments, the non-customers are contacted using the alias and they are allowed to quickly open and/or register an account with the financial institution in order to receive the funds from the sender.
As described above,
The environment 300 also includes a first computing device 400 and a second computing device 500 for the first user 310 and second user 320, respectively. The first and second computing devices may be any device that employs a processor and memory and can perform computing functions, such as a personal computer or a mobile device. As used herein, a “mobile device” is any mobile communication device, such as a cellular telecommunications device (i.e., a cell phone or mobile phone), personal digital assistant (PDA), a mobile Internet accessing device, a tablet computer, a laptop, or other mobile device.
The first computing device 400 and the second computing device 500 are typically configured to communicate over a network 350 with a financial institution's online or mobile banking system 600 and, in some cases, one or more other financial institution banking systems 370. The first computing device 400, the second computing device 500, the financial institution's mobile or online banking system 600, an alias data repository 700, and any other participating financial institution's banking systems 370 are each described in greater detail below with reference to
In general, a first computing device 400 is configured to connect with the network 350 to log the first user 310 into an online or mobile banking system 600. The online or mobile banking system 600 involves authentication of a first user in order to access the first user's account on the online or mobile banking system 600. For example, the online or mobile banking system 600 is a system where a first user 310 logs into his/her account such that the first user 310 or other entity can access data that is associated with the first user 310. For example, in one embodiment of the invention, the system 600 may be a mobile or online banking system maintained by a financial institution. In such an embodiment, the first user 310 can use the first computing device 400 to log into the mobile or online banking system to access the first user's mobile or online banking account. Logging into the mobile or online banking system 300 generally requires that the first user 310 authenticate his/her identity using a user name, a passcode, a cookie, a biometric identifier, a private key, a token, and/or another authentication mechanism that is provided by the first user 310 to the mobile or online banking system 600 via the first computing device 400.
The financial institution's mobile or online banking system 600 is typically in network communication with other devices, such as other financial institutions' transaction/banking systems 370, an alias data repository 700, and a second computing device 500 that is configured to communicate with the network 350 to log a second user 320 into the mobile or online banking system 600. In one embodiment, the invention may provide an application download server such that software applications that support the mobile or online banking system 600 can be downloaded to the first and second computing devices.
In some embodiments of the invention, the application download server is configured to be controlled and managed by one or more third-party data providers (not shown in
In some embodiments of the invention, the alias data repository 700 is configured to be controlled and managed by one or more third-party data providers (not shown) over the network 350. In other embodiments, the alias data repository 700 is configured to be controlled and managed over the network 350 by the same entity that maintains the financial institution's mobile or online banking system 600. In other embodiments, the alias data repository 700 is configured to be controlled and managed over the network 350 by the financial institution implementing the mobile payment system of the present invention. In still other embodiments, the alias data repository 700 is a part of the mobile or online banking system 600.
The mobile device 400 typically includes a processor 410 communicably coupled to such devices as a memory 420, user output devices 436, user input devices 440, a network interface 460, a power source 415, a clock or other timer 450, a camera 480, and a positioning system device 475. The processor 410, and other processors described herein, typically include circuitry for implementing communication and/or logic functions of the mobile device 400. For example, the processor 410 may include a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and/or other support circuits. Control and signal processing functions of the mobile device 400 are allocated between these devices according to their respective capabilities. The processor 410 thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The processor 410 can additionally include an internal data modem. Further, the processor 410 may include functionality to operate one or more software programs, which may be stored in the memory 420. For example, the processor 410 may be capable of operating a connectivity program, such as a web browser application 422. The web browser application 422 may then allow the mobile device 400 to transmit and receive web content, such as, for example, location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP), and/or the like.
The processor 410 is typically configured to use the network interface 460 to communicate with one or more other devices on the network 350. In this regard, the network interface 460 typically includes an antenna 476 operatively coupled to a transmitter 474 and a receiver 472 (together a “transceiver”). The processor 410 is typically configured to provide signals to and receive signals from the transmitter 474 and receiver 472, respectively. The signals may include signaling information in accordance with the air interface standard of the applicable cellular system of the wireless telephone network 352. In this regard, the mobile device 400 may be configured to operate with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the mobile device 400 may be configured to operate in accordance with any of a number of first, second, third, and/or fourth-generation communication protocols and/or the like. For example, the mobile device 400 may be configured to operate in accordance with second-generation (2G) wireless communication protocols IS-136 (time division multiple access (TDMA)), GSM (global system for mobile communication), and/or IS-95 (code division multiple access (CDMA)), or with third-generation (3G) wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), CDMA2000, wideband CDMA (WCDMA) and/or time division-synchronous CDMA (TD-SCDMA), with fourth-generation (4G) wireless communication protocols, and/or the like. The mobile device 400 may also be configured to operate in accordance with non-cellular communication mechanisms, such as via a wireless local area network (WLAN) or other communication/data networks.
The network interface 460 may also include a payment network interface 470. The payment network interface 470 may include software, such as encryption software, and hardware, such as a modem, for communicating information to and/or from one or more devices on a network 350. For example, the mobile device 400 may be configured so that it can wirelessly communicating account numbers or other authentication information to a terminal of the network 350.
As described above, the mobile device 400 has a user interface that is, like other user interfaces described herein, made up of user output devices 436 and/or user input devices 440. The user output devices 436 include a display 430 (e.g., a liquid crystal display or the like) and a speaker 432 or other audio device, which are operatively coupled to the processor 410. The user input devices 440, which allow the mobile device 400 to receive data from a user such as the first user 310, may include any of a number of devices allowing the mobile device 400 to receive data from a user, such as a keypad, keyboard, touch-screen, touchpad, microphone, mouse, joystick, other pointer device, button, soft key, and/or other input device(s). The user interface may also include a camera 480, such as a digital camera.
The mobile device 400 may also include a positioning system device 475 that is configured to be used by a positioning system to determine a location of the mobile device 400. For example, the positioning system device 475 may include a GPS transceiver. In some embodiments, the positioning system device 475 is at least partially made up of the antenna 476, transmitter 474, and receiver 472 described above. For example, in one embodiment, triangulation of cellular signals may be used to identify the approximate location of the mobile device 400. In other embodiments, the positioning system device 475 includes a proximity sensor or transmitter, such as an RFID tag, that can sense or be sensed by devices known to be located proximate a merchant or other location to determine that the consumer mobile device 400 is located proximate these known devices.
The mobile device 400 further includes a power source 415, such as a battery, for powering various circuits and other devices that are used to operate the mobile device 400. Embodiments of the mobile device 400 may also include a clock or other timer 450 configured to determine and, in some cases, communicate actual or relative time to the processor 410 or one or more other devices.
The mobile device 400 also includes a memory 420 operatively coupled to the processor 410. As used herein, memory includes any computer readable medium (as defined herein below) configured to store data, code, or other information. The memory 420 may include volatile memory, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The memory 420 may also include non-volatile memory, which can be embedded and/or may be removable. The non-volatile memory can additionally or alternatively include an electrically erasable programmable read-only memory (EEPROM), flash memory or the like.
The memory 420 can store any of a number of applications which comprise computer-executable instructions/code executed by the processor 410 to implement the functions of the mobile device 400 described herein. For example, the memory 420 may include such applications as a conventional web browser application 422 and/or a mobile certified P2P payment system client application 421. These applications also typically provide a graphical user interface (GUI) on the display 430 that allows the first user 310 to communicate with the consumer mobile device 400, the mobile or online banking system 600, and/or other devices or systems. In one embodiment of the invention, when the first user 310 decides to enroll in the mobile or online banking program, the first user 310 downloads or otherwise obtains the mobile or online banking system client application from the mobile or online banking system 600 or from a distinct application server. In other embodiments of the invention, the first user 310 interacts with the mobile or online banking system 600 via the web browser application 422 in addition to, or instead of, the mobile P2P payment system client application 421.
The memory 420 can also store any of a number of pieces of information, and data, used by the mobile device 400 and the applications and devices that make up the mobile device 400 or are in communication with the mobile device 400 to implement the functions of the mobile device 400 and/or the other systems described herein. For example, the memory 420 may include such data as user authentication information.
Referring now to
As used herein, a “processing device,” such as the processing device 520, generally refers to a device or combination of devices having circuitry used for implementing the communication and/or logic functions of a particular system. For example, a processing device 520 may include a digital signal processor device, a microprocessor device, and various analog-to-digital converters, digital-to-analog converters, and other support circuits and/or combinations of the foregoing. Control and signal processing functions of the system are allocated between these processing devices according to their respective capabilities. The processing device 520 may further include functionality to operate one or more software programs based on computer-executable program code thereof, which may be stored in a memory. As the phrase is used herein, a processing device 520 may be “configured to” perform a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.
As used herein, a “user interface” 530 generally includes a plurality of interface devices and/or software that allow a customer to input commands and data to direct the processing device to execute instructions. For example, the user interface 530 presented in
As used herein, a “memory device” 550 generally refers to a device or combination of devices that store one or more forms of computer-readable media for storing data and/or computer-executable program code/instructions. Computer-readable media is defined in greater detail below. For example, in one embodiment, the memory device 550 includes any computer memory that provides an actual or virtual space to temporarily or permanently store data and/or commands provided to the processing device 520 when it carries out its functions described herein.
It should be understood that the memory device 650 may include one or more databases or other data structures/repositories. The memory device 650 also includes computer-executable program code that instructs the processing device 620 to operate the network communication interface 610 to perform certain communication functions of the mobile or online banking system 600 described herein. For example, in one embodiment of the mobile or online banking system 600, the memory device 650 includes, but is not limited to, a network server application 670, an authentication application 660, a customer account data repository 680 which includes customer authentication data 680 and customer account information 684, a mobile or online banking application 690 which includes an alias data repository interface 692, a mobile web server application 693, a downloadable P2P payment system client application 694 and other computer-executable instructions or other data. The computer-executable program code of the network server application 670, the authentication application 660, or the mobile or online banking application 690 may instruct the processing device 620 to perform certain logic, data-processing, and data-storing functions of the mobile or online banking system 600 described herein, as well as communication functions of the mobile or online banking system 600.
In one embodiment, the customer account data repository 680 includes customer authentication data 682 and customer account information 684. The network server application 670, the authentication application 660, and the mobile or online banking application 690 are configured to implement customer account information 684, the customer authentication data 682, and the alias data repository interface 692 when authenticating the customer 101 (or the first user 310) to the mobile or online banking system 600. The customer account information 684, the customer authentication data 682, and the alias data repository interface 692 are discussed in more detail in a later section.
As used herein, a “communication interface” typically includes a modem, server, transceiver, and/or other device for communicating with other devices on a network, and/or a user interface for communicating with one or more customers. Referring again to
The network communication interface 710 is a communication interface having one or more communication devices configured to communicate with one or more other devices on the network 350. The processing device 720 is configured to use the network communication interface 710 to receive information from and/or provide information and commands to a first computing device 400, a second computing device 500, other financial institution banking systems 370, the alias data repository 700, the mobile or online banking system 600 and/or other devices via the network 350. In some embodiments, the processing device 720 also uses the network communication interface 710 to access other devices on the network 350, such as one or more web servers of one or more third-party data providers. In some embodiments, one or more of the devices described herein may be operated by a second entity so that the third-party controls the various functions involving the alias data repository 700. For example, in one embodiment of the invention, although the mobile or online banking system 600 is operated by a first entity (e.g., a financial institution), a second entity operates the alias data repository 700 that stores the alias details for the customer's financial institution accounts and other information about customers.
As described above, the processing device 720 is configured to use the network communication interface 710 to gather data from the various data sources. The processing device 720 stores the data that it receives in the memory device 750. In this regard, in one embodiment of the invention, the memory device 750 includes datastores that typically include: (i) aliases for customer financial institution account numbers and routing information, (ii) information about sending and receiving users' mobile device numbers, email addresses, or other contact information, which may have been received from the mobile or online banking system 600; (iii) a list of customer IDs or authentication data received from the mobile or online banking system 600; and/or (iv) customer credentials (e.g., a customer ID) received from a customer's computing device or received from the mobile or online banking system 600 in response to the customer accessing the mobile or online banking system 600.
In one embodiment of the invention, an application server is provided to support various supporting systems on the network 350, including the wireless telephone network 352. The application server includes a network communication interface, a processing device, and a memory device. The network communication interface and the processing device are similar to the previously described network communication interface 610 and the processing device 620 previously described. For example, the processing device is operatively coupled to the network communication interface and the memory device. In one embodiment of the application server, the memory device includes a network browsing application having computer-executable program code that instructs the processing device to operate the network communication interface to perform certain communication functions of the application download server described herein.
As discussed above, in one embodiment of the invention, an application download server might be provided. The application download server may include a network communication interface, a processing device, and a memory device. The network communication interface and processing device are similar to the previously described network communication interface 610 and the processing device 620 previously described. For example, the processing device is operatively coupled to the network communication interface and the memory device. In one embodiment of the application download server, the memory device includes a network browsing application having computer-executable program code that instructs the processing device to operate the network communication interface to perform certain communication functions of the application download server described herein. In some embodiments of the invention, the application download server provides applications that are to be downloaded to a qualified customer's mobile device or personal computing device.
The process begins at block 802 of
The process then moves to block 804 where the first user 310 using a first computing device 400 (e.g., a mobile device) accepts the invitation.
The process then moves to block 806 of
The process then moves to block 808 of
The process then moves to block 810 of
The process then moves to block 812 of
The process then moves to block 814 of
The process then moves to block 816 of
The process then moves to block 818 of
The process then moves to block 820 of
The process then moves to block 825 of
The process then moves to block 830 of
The process then moves to block 832 of
The process then moves to block 834 of
The process then moves to block 836 of
The process then moves to block 838 of
The process then moves to block 840 of
The process then moves to block 842 of
The process then moves to block 844 of
The process then moves to block 846 of
The process then moves to block 850 of
Once the first user activates the confirm button, the process moves to block 854 of
The process then moves to block 856 of
The process then moves to block 860 of
The process then moves to block 862 of
If, in block 862 of
The process then moves to block 868 of
The process then moves to block 870 of
The process then moves to block 872 of
If in block 872 of
If in block 872 of
Next, in block 876 the P2P payment system client application 694 requests user confirmation of the transfer request 876. Here, the P2P payment system client application 694 typically displays the transfer-from account, the transfer-to account or recipient alias, the amount to be transferred, that the transfer is certified, and the cost to be incurred (if any) by the first user for making this transfer. The GUI may also displays cost disclosure text on the page. In some embodiments, there is no cost incurred by the first user for making the transfer. The GUI may also displays two buttons or hyperlinks, one for making the transfer and one for canceling the transfer and returning to the bank menu page.
The process then moves to block 878 of
In an alternative embodiment, the mobile or online banking system 600 may not place a hold on the funds for covering the transaction amount until after the first user confirms the transaction request.
The process then moves to block 879 of
In one embodiment, the payment certification code generated by the mobile or online banking system 600 and provided to the first user is only valid for a predetermined amount of time. Once the predetermined amount of time has elapsed, the first user may be notified by the mobile or online banking system 600 that the payment certification code has expired. Afterwards, the first user may request that the mobile or online banking system 600 generate a new payment certification code and provide (e.g., transmit and/or display) this new payment certification code to the first user.
Next, the process moves to block 880 where the P2P payment system client application 694 displays information about the transfer to the first user and indicates that the transfer is pending.
The process then moves to block 881 of
If the recipient is associated with a financial institution account number, the process moves to block 882 where the mobile or online banking system 600 communications a certified payment notification to the recipient that informs the recipient of a pending transaction and that the transaction is certified (e.g., that the first user has sufficient funds to cover the transaction amount). The certified payment notification may inform the recipient that a payment certification code is required before the certified transfer will be completed. After communicating the certified payment notification to the recipient, the mobile or online banking system 600 waits to receive the certified payment notification from the recipient. In this regard, the first user may transmit the payment certification code to the recipient or display the payment certification code to the recipient with the first user's computing device. By way of further example, the first user may display a barcode with the computing device 400, which the second user can then scan with the computing device 500 and then transmit to the mobile or online banking system 600. In one embodiment, the recipient may use an intermediary to transmit the payment certification code to the mobile or online banking system 600. For example, the recipient may provide the payment certification code to the financial institution maintaining the recipient's account. This financial institution associated with the recipient may then transmit the payment certification code to the mobile or online banking system 600. Indeed, it within the scope of the present invention for the recipient to involve an intermediary (e.g., a financial institution) to communicate the payment certification code or to otherwise interact with the mobile or online banking system 600.
Next at block 886 after receiving the payment certification code from the recipient (e.g., from the recipient's computing device), the mobile or online banking system 600 uses the financial institution account number to initiate an Automated Clearing House (ACH) transfer or other type of transfer of funds to the recipient. For example, the mobile or online banking system 600 may transfer the held funds from the financial institution's general ledger to the recipient. In one embodiment, the mobile or online banking system 600 may compare the payment certification code transmitted by the recipient with the payment certification code associated with the transaction that is stored in a payment certification code database. If the payment certification code transmitted by the recipient does not match the payment certification code in the payment certification code database, the mobile or online banking system 600 may then generate and transmit an error message (e.g., to the first user and/or to the recipient) indicating that the payment certification provided by the recipient is incorrect and either cancel the transaction or provide another opportunity for the recipient to transmit the correct payment certification code.
Subsequently, the process moves to block 888 of
If, in block 881, the recipient is associated with an alias then, the process moves to block 883 where the mobile or online banking system 600 sends the alias and the recipient's name to an alias data repository 700.
The process then moves to block 884 where the alias data repository 700 looks up the alias in an alias datastore. Then the process moves to block 885, where the alias data repository 700 determines whether the alias is associated with a financial institution account. In some embodiments, the mobile or online banking system 600 will not generate the payment certification code and/or display the payment certification code to the first user until the mobile or online banking system 600 looks up the alias and determines that the alias is associated with a bank account. If the alias is associated with a financial institution account, then, if the alias data repository 700 determines that the provided name matches the name in the datastore, then the process moves to block 882 of
Once the recipient provides the payment certification code to the mobile or online banking system 600, the process moves to block 886 where the mobile or online banking system 600 initiates a transfer of the funds. Subsequently, the process moves to block 888 of
In one embodiment, the mobile or online banking system 600 may receive instructions from the first user to modify or cancel the transaction before the recipient transmits the payment certification code. If the first user transmits instructions to cancel the transactions, the mobile or online banking system 600 will then typically cancel the transaction and transmit transaction cancelation notification to the first user and/or to the recipient. Once the transaction has been canceled, the hold on the funds is removed by the mobile or online banking system 600. For example, the funds may be transferred back to the first user's account from the financial institution's general ledger.
In one embodiment, the mobile or online banking system 600 may only permit the first user to cancel the transaction before the payment certification code is communicated to the first user. Such an exemplary method 1100 for canceling a pending transaction is depicted in
If the first user transmits instructions to reduce the transaction amount, the mobile or online banking system 600 will typically reduce the transaction amount (e.g., reducing the amount of held funds to the reduced transaction amount) and transmit a notification to the first user and/or to the recipient indicating that the amount of the transaction has changed. If the first user transmits instructions to increase the transaction amount, the mobile or online banking system 600 will then determine if the user has funds sufficient to cover the increased transaction amount, and, if so, place a hold on funds sufficient to cover the increased transaction amount and transmit a notification to the first user and/or to the recipient indicating that the amount of the transaction has changed. In addition, the mobile or online banking system 600 may assign a new payment certification code to the transaction or may continue to use the previously assigned payment certification code. If the first user does not have enough available funds to cover the increased transaction amount, the mobile or online banking system 600 will then typically cancel the transaction and transmit transaction cancelation notification to the first user and/or to the recipient. In one embodiment, the first user can only modify the transaction amount if the payment certification code has not yet been communication to the first user.
If in block 885 of
The process then moves on from block 892 to block 893 of
If in block 893 of
As shown in
As shown in
If the recipient (second user) has an eligible financial institution account as determined by the mobile or online banking system 600 in block 890, then the process moves to block 891 in
As shown in
The process 900 in
The process then proceeds to block 910 where a first user (recipient) activates the link provided with the notice.
The mobile or online banking system 600 alerts the first user (recipient) that to accept the transfer, the first user will need an eligible checking or saving account at a participating financial institution at block 915. For customers who hold accounts at the financial institution that manages the mobile or online banking system 600, the mobile or online banking system 600 presents a widget with a textbox that allows the first user to enter login or other authenticating information. The mobile or online banking system 600 also provides a link for the first user to enroll with the financial institution's mobile or online banking system. For customers of other participating financial institutions, the mobile or online banking system 600 provides a sign-in button, which might either display a sign-in widget on the instant page or might provide for a link to another page where the first user can enter login information for the participating financial institution. The mobile or online banking system 600 also notifies the first user that if the first user does not have an account with one of the participating banks, that first user can open an account at the financial institution that maintains the mobile or online banking system 600. The mobile or online banking system 600 notifies the first user that he or she may review the terms of opening a new account at this financial institution, including any costs that may be incurred by the first user in opening this new account. The mobile or online banking system 600 also notifies the first user that if the first user does not want to open a new financial institution account, the first user may notify the sender to arrange an alternate transfer method. The mobile or online banking system 600 also notifies the first user that the transaction will be canceled if it is not accepted within a pre-determined period of time.
The process then proceeds to block 920 of
As shown in
As shown in
As shown in
As shown in
The process then moves to block 960 in
Subsequently, in block 965, the first user enters a confirmation number in the appropriate textbox and agrees to the terms that govern the transaction by activating the appropriate checkbox. The first user then activates on the second button to continue the process of accepting the transfer.
The process then moves to block 968 of
Then the process proceeds to block 970 of
The process then proceeds to block 975 where the first user enters the alias in the appropriate textbox, confirms the alias in the appropriate textbox, selects the account to receive the funds from the drop-down list, and checks the checkbox that indicates that the first user accepts the terms that govern the transfer. In some embodiments, the accounts listed in the drop-down list are identified only by selected few digits of the account numbers.
In some embodiments, the process then proceeds to block 977 where the mobile or online banking system 600 requires additional authentication to register an alias. The mobile or online banking system 600 displays a widget which serves as an additional authenticating step before saving the information of the first user's associated alias. The mobile or online banking system 600 may indicate to the first user that by activating in the widget a button for a sending an authentication code, the first user will receive an authentication code on his or her mobile device. In another embodiment, the first user may receive an authentication code through other means such as email or snail mail.
The process then moves to block 979 of
The process then moves to block 980 of
The process then moves to block 982 of
The process then moves to block 984 where the first user enters the enrollment code into the appropriate textbox.
The process then moves block 986 where the mobile or online banking system 600 determines if the enrollment code entered by the first user matches the enrollment code sent by the mobile or online banking system 600 to the alias of the first user.
If the entered code in 986 does not match the code sent to the alias, then the mobile or online banking system 600 displays an error message to the first user that the transaction cannot move any further. In one embodiment, the mobile or online banking system 600 allows the first user to correct any errors in the alias provided by the first user or in the code received by the first user. In one embodiment, the mobile or online banking system 600 only grants a pre-determined number of unsuccessful attempts to verify the code before rejecting the transfer.
The process then moves to block 988A of
At block 988B the first user enters the payment certification code. As described above, the payment certification code is provided by the payer (here the second user) to the payee (here the first user) when the payer is ready to complete the transaction. In one embodiment, the first user enters an alphanumeric payment certification code provided by the second user into the appropriate textbox. In another embodiment, the first user may use his or her computing device to scan a payment certification barcode displayed on the second user's computing device. If the first user enters an incorrect payment certification code, the mobile or online banking system 600 may prompt the first user to try again or may cancel the transaction (e.g., cancel the transaction after a predetermined number of attempts to enter the correct payment certification code). For example, the mobile or online banking system 600 may prompt the first user to try again if the first user enters a payment certification code that is associated with a transaction in which the first user is not the recipient. Accordingly, the first user typically can only successfully enter payment certification codes associated with an alias of the first user. Similarly, another user who has acquired a payment certification code associated with the first user typically cannot use such a payment certification code to acquire funds intended for the first user.
If the entered payment certification code in 988B matches the payment certification code associated with the certified transaction, the process moves to block 989 where the mobile or online banking system 600 completes the certified transfer by transferring the certified funds to the first user's registered account.
In addition, the mobile or online banking system 600 may indicate to the user that the verification of the alias has been completed. The mobile or online banking system 600 may thank the user for setting up an alias to accept transfers. The mobile or online banking system 600 may indicate to the first user that people or entities can now send money to the first user using the first user's alias. The mobile or online banking system 600 may indicate to the first user that any transfer to the first user's newly registered alias will be deposited to the account number shown on the webpage. In one embodiment, the mobile or online banking system 600 only shows a selected few digits of the first user's financial institution account number. The page also indicates to the first user that the transfer request is now in process. The page shows details of the transfer, including, but not limited to the name of the sender, the amount, the date on which the sender sent the amount, the confirmation number, and the status of the transfer. The page also two buttons. The first button allows the first user to add another alias and the second button allows the first user make a transfer using the newly registered alias.
The process then moves to block 990 where the mobile or online banking system 600 sends the alias to the alias data repository 700 along with associated account information to be stored in the alias datastore.
In one embodiment, the mobile or online banking system 600 presents four hyperlinks under the transfers hyperlink described earlier. These four hyperlinks are a hyperlink for a making a certified transfer, a hyperlink for reviewing transfers, a hyperlink for adding recipients, and a hyperlink for managing accounts. In one embodiment, the mobile or online banking system 600 may also present a hyperlink for making a non-certified transaction. Using the appropriate hyperlink, the first user has the option of obtaining set up to accept transfer by activating an appropriate link. The mobile or online banking system 600 indicates to the first user (recipient) that the first user may activate the link if the first user received a transfer notice (e.g., if the first user received an email, text message, or other form of electronic communication that someone has sent money to the first user). The mobile or online banking system 600 indicates to the first user that in order to complete the transfer and collect the funds, the first user must set up the first user's alias to accept transfers. The mobile or online banking system 600 also presents an activatable link so that the first user can be directed to a page to learn more about this P2P transfer via alias method. The mobile or online banking system 600 also presents a help box where the first user can understand more about what the first user can do using the mobile or online banking system 600, what the first user needs to know, and what else the first user can do using the mobile or online banking system 600. The mobile or online banking system 600 also presents a message to the first user that transferring money within the bank is fast and free. The mobile or online banking system 600 also indicates to the customer that the feature of making a P2P transfer using a recipient's alias is a new feature, and that transfers within the bank now include transfers made using a recipient's alias. Alternatively, a user who intends to receive money using an alias can get set up by activating the link associated with obtaining a set up to accept transfers. A user who accesses the mobile or online banking system 600 can register an alias by selecting an appropriate link. Therefore, in one embodiment, the user does not have to wait to receive a certified payment using the P2P transfer service before setting up an alias to receive transfers. In one embodiment, the user can register an alias using a computing device (e.g., a mobile device).
In one embodiment of the present invention, both the sender and the recipient need to have financial institution accounts registered for certified P2P transfers via an alias. In another embodiment of the present invention, the sender needs to have a financial institution account registered for certified P2P transfers via an alias, but the recipient does not need to have a financial institution account registered for certified P2P transfers via an alias. In another embodiment of the present invention, the recipient needs to have a financial institution account registered for certified P2P transfers via an alias, but the sender does not need to have a financial institution account registered for certified P2P transfers via an alias.
All features that are described above as being part of the certified P2P payment process and interface are also part of the text message P2P payment process and service. In one embodiment of the invention, the text message certified P2P payment send process and interface is a feature provided in the certified P2P payment send process and interface. In another embodiment of the invention, the text message certified P2P payment send process and interface is distinct from the certified P2P payment send process and interface. This text message certified P2P transfer feature is particularly useful for users who carry mobile devices that do not have computing resources and cannot access the Internet (e.g., for mobile devices that only have messaging features and can only access a phone network).
Referring to
The process then moves to block 1020 in
The process then moves to block 1030 in
The process then moves to block 1040 in
If, in block 1040, the alias data repository 700 determines that the number of the first user is a number associated with a financial institution account, then the process moves to block 1050 in
The process then moves to block 1060 in
If, in block 1060, the alias data repository 700 determines that the recipient alias is associated with a financial institution account, then the process moves to block 1070. At block 1070, the mobile or online banking system 600 determines whether the first user's account has sufficient funds to cover the amount of the transaction. If the mobile or online banking system 600 determines that the first user's account does not have enough funds to cover the transaction amount, then the mobile or online banking system 600 replies to the first user with an error message that the transaction cannot be completed (see block 1005). In one embodiment, the error message is sent via text message, however, in other embodiments, it can be sent by any form of communication such as email, placing a phone call to the first user, or snail mail.
If, in block 1070, the mobile or online banking system 600 at block 1080 determines that the first user's account has sufficient funds, then the mobile or online banking system 600 places a hold on funds sufficient to cover the transaction amount and assigns a payment certification code to the transaction.
Next at block 1082, the mobile or online banking system 600 sends a text message to the first user (i) showing the requested transfer with the recipient name associated with the alias, (ii) showing the payment certification code (e.g., an alphanumeric code) associated with the transaction, and (iii) requesting that the first user confirm the transfer request, wherein the format of the return confirmation text message is specified in the text message. In one embodiment, the recipient name associated with the alias is received from the alias data repository 700. In one embodiment, the text message in 1080 sent from the mobile or online banking system 600 specifies that the first user can confirm the transfer request with a “Yes” and can reject the transfer request with a “No.” In other embodiments, the “Yes” and the “No” can be any letters, characters, or combinations thereof as defined by the mobile or online banking system 600. In one embodiment, the mobile or online banking system 600 does not send a text message to the first user that includes the payment certification code until after the first user sends a text message to the mobile or online banking system 600 that requests the payment certification code.
The process then moves to 1085 where the first user confirms the transaction request by replying to text message in 1080 with a “Yes.” In other embodiments, the first user can confirm the transaction request in the format as specified in the text message sent in 1080 from the mobile or online banking system 600 to the first user.
The process then moves to block 1086 where the mobile or online banking system 600 transmits a notification a certified payment notification to the recipient that informs the recipient of a pending transaction and that the transaction is certified (e.g., that the second user has sufficient funds to cover the transaction amount). The certified payment notification may inform the first user that a payment certification code is required before the certified transfer will be completed. Subsequently, the mobile or online banking system 600 receives the payment certification from the recipient. In this regard, the first user may provide the payment certification code to the recipient, who then transmits the payment certification code to the mobile or online banking system 600.
The process then moves to block 1090 where the mobile or online banking system 600 uses the first user's and the recipient's financial institution account numbers to initiate ACH or other type of transfer from the financial institution account associated with the first user's (sender's) phone number to the financial institution account associated with the recipient's alias.
The process then moves to block 1095 where the mobile or online banking system 600 sends a text message to the first user with information regarding the transfer and with a message that the transfer was successfully completed. The text message may also provide the first user with a confirmation number for the transfer.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method (including, for example, a computer-implemented process, a business process, and/or any other process), apparatus (including, for example, a system, machine, device, computer program product, and/or the like), or a combination of the foregoing. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, and the like), or an embodiment combining software and hardware aspects that may generally be referred to herein as a “system.” Furthermore, embodiments of the present invention may take the form of a computer program product on a computer-readable medium having computer-executable program code embodied in the medium.
Any suitable transitory or non-transitory computer readable medium may be utilized. The computer readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of the computer readable medium include, but are not limited to, the following: an electrical connection having one or more wires; a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device.
In the context of this document, a computer readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, radio frequency (RF) signals, or other mediums.
Computer-executable program code for carrying out operations of embodiments of the present invention may be written in an object oriented, scripted or unscripted programming language. However, the computer program code for carrying out operations of embodiments of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages.
Embodiments of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and/or combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-executable program code portions. These computer-executable program code portions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a particular machine, such that the code portions, which execute via the processor of the computer or other programmable data processing apparatus, create mechanisms for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer-executable program code portions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the code portions stored in the computer readable memory produce an article of manufacture including instruction mechanisms which implement the function/act specified in the flowchart and/or block diagram block(s).
The computer-executable program code may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the code portions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block(s). Alternatively, computer program implemented steps or acts may be combined with operator or human implemented steps or acts in order to carry out an embodiment of the invention.
As the phrase is used herein, a processor may be “configured to” perform a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.
Embodiments of the present invention are described above with reference to flowcharts and/or block diagrams. It will be understood that steps of the processes described herein may be performed in orders different than those illustrated in the flowcharts. In other words, the processes represented by the blocks of a flowchart may, in some embodiments, be in performed in an order other that the order illustrated, may be combined or divided, or may be performed simultaneously. It will also be understood that the blocks of the block diagrams illustrated, in some embodiments, merely conceptual delineations between systems and one or more of the systems illustrated by a block in the block diagrams may be combined or share hardware and/or software with another one or more of the systems illustrated by a block in the block diagrams. Likewise, a device, system, apparatus, and/or the like may be made up of one or more devices, systems, apparatuses, and/or the like. For example, where a processor is illustrated or described herein, the processor may be made up of a plurality of microprocessors or other processing devices which may or may not be coupled to one another. Likewise, where a memory is illustrated or described herein, the memory may be made up of a plurality of memory devices which may or may not be coupled to one another.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of, and not restrictive on, the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other changes, combinations, omissions, modifications and substitutions, in addition to those set forth in the above paragraphs, are possible. Those skilled in the art will appreciate that various adaptations and modifications of the just described embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.