Identifying user device status via rotating codes broadcast by a beacon device

A user enters a location with a user device. A beacon device broadcasts a first beacon device code comprising a hardware identifier via a local wireless network at the location. A service application of the user device receives the first beacon device hardware identifier, logs a check-in status of the user, and transmits the check-in status to a service provider system. The beacon device generates, after a predetermined period of time, a subsequent beacon device code comprising a random number to broadcast at the location via the local wireless network. In response to receiving the subsequent beacon device code broadcast by the beacon device, the user device logs and transmits a subsequent check in status to the service provider system via the network. The service provider system provides services to the user device or another device at the location in accordance with the check-in status of the user device.

TECHNICAL FIELD

The present disclosure is directed to logging the location of user computing devices at locations, and more particularly to logging the location of user computing devices via receiving beacon device hardware identifiers from beacon devices installed at particular locations.

BACKGROUND

Merchant systems, payment processing systems, and other service-providing systems that provide services to users may utilize a check-in status of a user computing device to determine whether a customer associated with the user computing device is at a location before providing services associated with the location. A service-providing system may provide a service application to the user computing device, and the user computing device may initiate a check-in status via the service application by detecting, via the user computing device, a beacon device installed at the location by receiving a hardware identifier from the beacon device via a wireless communication channel. The service-providing system may receive a check-in status signal from the application in response to the user computing device detecting the beacon device. The user computing device may provide the check-in status signal to the service-providing system at predetermined time intervals in response to re-detecting the beacon device at the location. The service-providing system may continue to maintain a check-in status for the user computing device if the system continues to receive check-in status signals from the user computing device. Currently, however, some user computing device operating environments are constrained in that service applications operating in the background of the operating environment are not able to subsequently detect a particular beacon device after initially receiving data from the particular beacon device.

SUMMARY

Techniques herein provide computer-implemented methods to enable repeat detection of a particular beacon device at a location by an application operating in the background of a user computing device operating system via periodically changing a hardware identifier of the particular beacon device. A user establishes an account with a service provider system via a user computing device and downloads/installs a service application associated with the service provider system to the user computing device via a network. The service provider system or a system associated with the service provider system is associated with a beacon device installed at a location. A user signs into the service application via the service application operating on the user computing device. In an example, when the user signs into the service application, the service application operates in a foreground of the operating system of the user computing device. In this example, if the user selects another application on the user computing device, the service application operates in a background of the operating system while the other application operates in the foreground of the operating system. In another example, the user computing device operates in a sleep mode or other power-saving mode wherein the user interface of the user computing device is deactivated and wherein the service application operates in the background of the operating system of the user computing device. The user enters the location associated with the installed beacon device with the user computing device. The beacon device broadcasts a first beacon device hardware identifier and other data at the location via a local wireless network. The service application operating in the background of the user computing device operating system receives the first beacon device hardware identifier and the other data from the beacon device via the local wireless network at the location. In response to receiving the beacon device hardware identifier, the service application operating in the background of the user computing device operating system logs a check in status of the user at the location and transmits a check in status signal to the service provider system via the network. After broadcasting the first beacon device hardware identifier for a predetermined period of time, the beacon device generates, via, for example, a random number generator, a subsequent beacon device hardware identifier and broadcasts the subsequent beacon device hardware identifier along with the other data at the location via the local wireless network. For example, after each predetermined period of time passes, the beacon device randomly generates a new beacon device hardware identifier to broadcast at the location along with the other data. The service application operating in the background of the user computing device operating system receives the subsequent beacon device hardware identifier and the other data from the beacon device via the local wireless network at the location. In response to receiving the subsequent beacon device hardware identifier from the beacon device, the service application operating in the background of the user computing device operating system logs a subsequent check in status of the user at the location and transmits a subsequent check in status signal to the service provider system via the network. The service provider system may provide services or data to the user computing device or another computing device at the location while the service provider system maintains a check-in status of the user at the location. The service provider system may log a checked-out or a not-checked-in status if the service provider system does not receive a subsequent check in status signal from the user computing device within a predetermined length of time after receiving a previous check-in status signal from the user computing device.

In certain other example aspects described herein, systems and computer program products to enable repeat detection of a particular beacon device at a location by an application operating in the background of a user computing device operating system via periodically changing a hardware identifier of the particular beacon device are provided.

These and other aspects, objects, features, and advantages of the examples will become apparent to those having ordinary skill in the art upon consideration of the following detailed description of illustrated examples.

DETAILED DESCRIPTION OF EXAMPLES

Overview

With reference toFIG. 1, the examples described herein provide computer-implemented techniques to enable repeat detection of a beacon device120at a location by a service application113operating in the background of a user computing device110operating system via periodically changing a hardware identifier of the beacon device120, in accordance with certain examples.

In an example, a user101establishes an account with a service provider system130via the user computing device110and downloads/installs the service application113associated with the service provider system130to the user computing device110via a network170. In an example, the user101registers with the service provider system130. For example, the user101accesses a service provider system website139via the user computing device110associated with the user101. The user101registers with the service provider system130and downloads the service application113onto the user computing device110. In an example, the user101uploads data to the user101account via the service provider system130via the service application113, such as financial account data.

In an example, the service provider system130or a system associated with the service provider system130, such as a merchant system, includes one or more beacon devices120installed at a location. For example, a merchant installs the one or more beacon devices120at a merchant system location, such as a brick and mortar store location of the merchant. In this example, the merchant and/or the service provider system130configures each beacon device120at the location to broadcast a respective merchant beacon device120hardware identifier via a wireless communication network, for example, a Bluetooth Low-Energy (“BLE”) network180, at the location. For example, the hardware identifier comprises a media access control address (“MAC address”) or other hardware identifier associated with the respective beacon device120. In certain examples, the merchant and/or the service provider system130, in addition to the one or more beacon devices120, may install one or more point of sale devices160, one or more camera devices150, and/or one or more other computing devices at the location.

The user101signs in to the service application113on the user computing device110and enters the location associated with the installed beacon device. In an example, when the user101signs into the service application113, the service application113operates in a foreground of the operating system of the user computing device110. In this example, if the user101selects another application on the user computing device110, the service application113ceases to operate in the foreground and begins operating in a background of the operating system while the other application operates in the foreground of the operating system of the user computing device110. In another example, the user computing device110operates in a sleep mode or other power-saving mode wherein the user interface111of the user computing device is deactivated and wherein the service application113operates in the background of the operating system of the user computing device.110. In an example, only one application on the user computing device110may run in the foreground at a time. In this example, applications operating in the background have limited processing capabilities whereas an application operating in the foreground is able to freely execute on the user computing device110. More specifically, the service application113executing in the background of the operating system may not continue to detect a particular beacon device120, because the particular beacon device120broadcasts the same MAC address. The service application113initially detects the particular beacon device120based on the broadcast MAC address. Thereafter, the service application only detects MAC addresses for beacon devices that are different from the MAC address for the particular beacon device. The user101enters the location associated with the installed beacon device120. For example, the user101enters the location with the user computing device110. In an example, the user101carries the user computing device110within a distance of the beacon device120at the location, where the distance is within a detection range of the beacon device120. In an example, the beacon device120at the location, broadcasts a first beacon device120hardware identifier and other data at the location via the Bluetooth Low-Energy (“BLE”) network180or other wireless network at the location. In an example, the beacon device120broadcasts the hardware identifier and other data at the location via another type of local wireless network, for example, a Bluetooth network or near field communication (“NFC”) network. In an example, the other data comprises a beacon device120name, BLE network180connection name, or other data.

In an example, the service application113operating in the background or foreground of the user computing device110operating system receives the first beacon device120hardware identifier and the other data from the beacon device120via the BLE network180or other wireless network at the location. In response to receiving the beacon device120hardware identifier, the service application113logs a check in status of the user101at the location and transmits a check-in status signal to the service provider system130via the network170. In an example, the service provider system130maintains a log of current user computing devices110currently checked in at the location associated with the beacon device120. After broadcasting the first beacon device120hardware identifier for a predetermined period of time, the beacon device120generates, via a random number generator123, a subsequent beacon device120hardware identifier and broadcasts the subsequent beacon device120hardware identifier along with the other data at the location via the BLE network180or other local wireless network. Example beacon device120hardware identifiers comprise a randomly generated succession of alphanumeric and/or symbolic characters. For example, after each predetermined period of time passes, the beacon device randomly generates a new beacon device120hardware identifier to broadcast at the location along with the other data via the BLE network180or other local wireless network at the location.

The service application113operating in the background of the user computing device110operating system receives the subsequent beacon device120hardware identifier and the other data from the beacon device120via the BLE network180or other local wireless network at the location. In response to receiving the subsequent beacon device120hardware identifier from the beacon device120, the service application113operating in the background of the user computing device110operating system logs a subsequent check-in status of the user101at the location and transmits a subsequent check in status signal to the service provider system130via the network170. The service provider system130may provide services or data to the user computing device110or another computing device at the location while the service provider system130maintains a check-in status of the user101at the location. The service provider system may log a checked-out or a not-checked-in status if the service provider system does not receive a subsequent check-in status signal from the user computing device110via the network170within a threshold length of time after receiving a previous check-in status signal from the user computing device110.

In an example, the point of sale device160(“POS device”) may only process a transaction using data associated with the service provider system130if the user101is currently checked in at the location. In another example, the POS device160cannot process a transaction using data associated with the service provider system130if the user101is not currently checked in at the location. In an example, the POS device160may request that the service provider system130process a transaction with data associated with the user101in response to initiation of the transaction by a POS device operator102. In this example, the service provider system130accesses a check-in log associated with the location. If the user101is currently logged as checked in at the location, the service provider system communicates with an issuer system140to process a transaction using data associated with the user101maintained in an account by the service provider system130. In this example, if the user101is not currently logged as checked in at the location, the service provider system transmits a message to the POS device160that the transaction cannot be processed.

Conventional applications for maintaining a check-in status of a user computing device at a location do not enable the user computing device to send check-in status signals via an application operating in the background of the user computing device via periodically receiving a subsequent hardware identifier from the same beacon device at the location. By using and relying on the methods and systems described herein, the service provider system130, the beacon device120, and the user computing device110enable repeat detection of a beacon device120at a location by a payment application113operating in the background of an operating system of a user computing device110via periodically changing a code broadcast by the beacon device120.

Example System Architecture

Turning now to the drawings, in which like numerals indicate like (but not necessarily identical) elements throughout the figures, examples are described in detail.

FIG. 1is a block diagram depicting a system100to enable repeat detection of a beacon device120at a location by a service application113of a user computing device110via periodically changing a hardware identifier of the beacon device120, in accordance with certain examples. As depicted inFIG. 1, the system100includes network computing devices110,120,130,140,150, and160that are configured to communicate with one another via one or more networks170. In some embodiments, a user associated with a device must install an application and/or make a feature selection to obtain the benefits of the techniques described herein.

In examples, the network170can include a local area network (“LAN”), a wide area network (“WAN”), an intranet, an Internet, a storage area network (“SAN”), a personal area network (“PAN”), a metropolitan area network (“MAN”), a wireless local area network (“WLAN”), a virtual private network (“VPN”), a cellular or other mobile communication network, Wi-Fi, Bluetooth, Bluetooth low energy (“BLE”), NFC, or any combination thereof or any other appropriate architecture or system that facilitates the communication of signals, data, and/or messages. Throughout the discussion of examples, it should be understood that the terms “data” and “information” are used interchangeably herein to refer to text, images, audio, video, or any other form of information that can exist in a computer-based environment.

Each network computing device110,120,130,140,150, and160includes a device having a communication module capable of transmitting and receiving data over the network170. For example, each network computing device110,130,140,150, and160can include a server, desktop computer, laptop computer, tablet computer, a television with one or more processors embedded therein and/or coupled thereto, smart phone, handheld computer, personal digital assistant (“PDA”), a beacon device, or any other wired or wireless, processor-driven device. In the example depicted inFIG. 1, the network computing devices110,120,130,140,150, and160are operated by users101, beacon device120operators, service provider system130operators, issuer system140operators, camera device150operators, point of sale (“POS”) device160operators, and payment processing system160operators, respectively.

In the example depicted inFIG. 1, the network computing device110is embodied as a user computing device110. An example user computing device110comprises an antenna111, a Bluetooth low energy (“BLE”) controller112, a service application113, a user interface115, a data storage unit116, a web browser118, and a communication application119.

In an example, the antenna111is a hardware device for communication between the user computing device110and a beacon device120, and with the network170. In an example, a BLE controller112outputs through the antenna111a signal, or receives signals from the beacon device120over a BLE network180or other local wireless network at the location. In another example a Bluetooth controller or a near field communication (“NFC”) controller is used.

In an example, the BLE controller112is capable of sending and receiving data, performing authentication and ciphering functions, directing how the user computing device110will listen for and receive transmissions from the beacon device120, or configuring the user computing device110into various power-save modes according to BLE-specified procedures. In another example, the user computing device110comprises a Bluetooth controller, Wi-Fi controller, or an NFC controller capable of performing similar functions. An example BLE controller112communicates with the service application113and is capable of sending and receiving data over the wireless, BLE network180. In another example, a Bluetooth controller112or NFC controller112performs similar functions as the BLE controller112using Bluetooth or NFC protocols. In an example, the BLE controller112activates the antenna111to create a wireless communication channel, such as a BLE communication channel, between the user computing device110and the beacon device120. The user computing device110communicates with the beacon device120via the antenna111. In an example, when the user computing device110has been activated, the BLE controller112polls through the antenna111a signal, or listens for and receives signals from the beacon device120.

In an example, the service application113is a program, function, routine, applet, or similar entity that exists on and performs its operations on the user computing device110, executing in an operating system of the user computing device110. In certain examples, the user101must install the service application113and/or make a feature selection on the user computing device110to obtain the benefits of the techniques described herein. In an example, the user101may access the service application113on the user computing device110via the user interface115. In an example, the service application113may be associated with the service provider system130. In another example, the service application113may be associated with a merchant system associated with a beacon device120, a point of sale device150, and/or a camera device150at the location.

In an example, the user interface115enables the user101to interact with the service application113and/or web browser118. For example, the user interface115may be a touch screen, a voice-based interface, or any other interface that allows the user101to provide input and receive output from an application or module on the user computing device110. In an example, the user101interacts via the user interface115with the service application113and/or web browser118to configure user101accounts on the service provider system130. In another example, the user101interacts via the user interface115with the service application113and/or the web browser118to enable services provided by the service provider system130, such as hands-free payments, if needed.

In an example, the data storage unit116comprises a local or remote data storage structure accessible to the user computing device110suitable for storing information.

In an example, the user101can use a communication application119, such as a web browser118application or a stand-alone application, to view, download, upload, or otherwise access documents or web pages via the network170.

In an example, the web browser118can enable the user101to interact with web pages using the user computing device110. In an example, the user101may access the user's101account maintained by the service provider system130via the web browser118. In another example, the user101may access a service provider system website139via the web browser118. In certain examples described herein, one or more functions performed by the service application113may also be performed by a web browser118application associated with the service provider system130.

In an example, the communication application119can interact with web servers or other computing devices connected to the network170, including the user computing device110and a web server138of the service provider system130.

In certain examples, one or more functions herein described as performed by the service application113may also be performed by a web browser118application, for example, a web browser118application associated with a service provider system130website139or associated with the service provider system130. In certain examples, one or more functions herein described as performed by the service application113may also be performed by the user computing device110operating system. In certain examples, one or more functions herein described as performed via the web browser118may also be performed via the service application113.

In the example depicted inFIG. 1, the network computing device120is embodied as a beacon device120. An example beacon device120comprises an antenna121, a BLE controller122, and a random number generator123. The example beacon device120is programmed to broadcast, emit, or otherwise transmit a particular merchant beacon device120hardware identifier and other data associated with the beacon device120over a BLE network180or other local wireless network to any user computing devices110within communication range of the beacon device120. In another example, the BLE network180may instead comprise Bluetooth network, an NFC network, or any other appropriate local wireless network, and the beacon device120may correspondingly comprise a Bluetooth network controller, an NFC network controller, or any other appropriate local wireless network controller.

In an example, the antenna121is a hardware component for communication between the user computing device110and the beacon device120installed at the location. In an example, the BLE controller122outputs through the antenna121a signal, or listens for and receives signals from the user computing device110. In another example, a Bluetooth controller or a near field communication (“NFC”) controller is used.

In an example, the BLE controller122is capable of sending and receiving data, performing authentication and ciphering functions, and directing how the beacon device120will listen for transmissions from the user computing device110or configuring the beacon device120into various power-save modes according to BLE-specified procedures. In another example, the beacon device120comprises a Bluetooth controller or an NFC controller capable of performing similar functions. An example BLE controller122communicates with the service application113and is capable of sending and receiving data over a wireless, BLE communication channel. In another example, a Bluetooth controller or NFC controller performs similar functions as the BLE controller122using Bluetooth or NFC protocols. In an example, the BLE controller122activates the antenna121to create a wireless communication channel between the user computing device110and the beacon device120. The beacon device120communicates with the user computing device110via the antenna121. In an example, when the beacon device120has been activated, the BLE controller122polls through the antenna121a signal, or listens for and receives signals from the user computing device110.

An example random number generator123generates beacon device120hardware identifiers. An example beacon device120hardware identifier comprises a media access control (“MAC”) address. In an example, the random number generator123generates a subsequent MAC address or other hardware identifier at periodic time intervals, for example, every five minutes. In an example, the random number generator123communicates the subsequently generated hardware identifier to the BLE controller122, and the BLE controller122ceases broadcasting a previous beacon device120hardware identifier and broadcasts the subsequently generated beacon device120hardware identifier via the BLE network180at the location.

In the example depicted inFIG. 1, the network computing device130is embodied as a service provider system130. An example service provider system130comprises an account management module131, a data storage unit136, a transaction processing module137, a server138, and a website139.

In an example, the account management module131manages one or more user101accounts. In an example, a user101account may comprise a digital wallet account, an email account, a social networking account, or any other appropriate account associated with the service provider system130. In an example, the account management module131communicates with the service application113operating on a user computing device110associated with a user101having a user101account with the service provider system130. In an example, the user101enters data, such as payment account information, into the user101account via the service application113, and the account management module131receives the data over the network170and associates the received data with the user101account.

In an example, the data storage unit136comprises a local or remote data storage structure accessible to the service provider system130suitable for storing information.

In an example, the processing module137receives data from a merchant point of sale (“POS”) device160or from another device at the location and a request to initiate a transaction or to provide a service. In an example, the processing module137receives the transaction request or service request and accesses a log comprising a list of user computing devices110currently checked in at the location associated with the beacon device120. In an example, the processing module137extracts account information from the user101account in response to determining that the user computing device110is checked in at the location. In another example, the processing module137determines that the user computing device110is not checked in at the location. In an example, if the user computing device110is checked in at the location, the transaction processing module137transmits an authorization request to a third party system, such as an issuer system140or other appropriate system. For example, an example payment authorization request may comprise merchant system payment account information, user101payment account information, and a total amount of the transaction. In this example, after the issuer system140or other appropriate system processes the payment authorization request or service request, the processing module137receives an approval or denial of the payment authorization request or service request from the issuer system140or other appropriate system over the network170. In this example, the processing module137transmits a receipt to the merchant POS device160and/or the user computing device110comprising a summary of the transaction or service request.

In the example depicted inFIG. 1, the network computing device140is embodied as an issuer system140. An example issuer system140approves or denies a payment authorization request received from the service provider system130. In an example, the issuer system140communicates with the service provider system130over the network170. In an example, the issuer system140communicates with an acquirer system (not depicted) to approve a credit authorization and to make payment to the service provider system130and/or merchant system. For example, the acquirer system is a third party payment processing company.

In the example depicted inFIG. 1, the network computing device150is embodied as a camera device150. An example camera device150comprises a processor, a data storage unit, a camera module, and a communication application (not depicted). In an example, the camera device150is installed at a location proximate to the beacon device120. For example, the camera device150and the beacon device120are installed at a common merchant system store location. In an example, the camera processor performs one or more functions described herein as being performed by the merchant camera device150. In an example, the data storage unit of the camera device150comprises a local or remote data storage structure accessible to the camera device150suitable for storing information. In an example, the camera module of the camera device150may be any module or function of the camera device150that captures a video input or captures a digital image of an external environment of the camera device150. The camera module may be resident on the camera device150or in any manner logically connected to the camera device150. For example, the camera module may be connected to the camera device150via the network170. The camera module may be capable of obtaining individual images or a video scan. Any other suitable image capturing device may be represented by the camera module of the camera device150. In an example, the communication application of the camera device150enables the merchant camera device150to communicate with a server138of the service provider system130.

In the example depicted inFIG. 1, the network computing device160is embodied as a point of sale device160. An example point of sale device160comprises a payment application163, a user interface165, a data storage unit166, and a communication application169.

In an example, the payment application163is a program, function, routine, applet, or similar entity that exists on and performs its operations on the point of sale device160. In certain examples, the point of sale (“POS”) device operator102or other merchant system operator must install the payment application163and/or make a feature selection on the point of sale device160to obtain the benefits of the techniques described herein. In an example, the POS device operator102may access the payment application163on the POS device160via the user interface165. In an example, the payment application163may be associated with the service provider system130. In another example, the payment application163may be associated with a merchant system associated with the beacon device120and the camera device150installed at the location.

In an example, the user interface165enables the POS device operator102to interact with the POS device160. For example, the user interface165may be a touch screen, a voice-based interface, or any other interface that allows the POS device operator102to provide input and receive output from an application or module on the POS device160. In an example, the POS device operator102interacts via the user interface165with the payment application163.

In an example, the data storage unit166comprises a local or remote data storage structure accessible to the merchant POS device160suitable for storing information.

In an example, the communication application169, such as a web browser application or a stand-alone application, enables an operator of the POS device160to view, download, upload, or otherwise access documents or web pages via a distributed network170. For example, the communication application169may enable communication over the network170with the payment processing system160.

It will be appreciated that the network connections shown are examples and other means of establishing a communications link between the computers and devices can be used. Moreover, those having ordinary skill in the art having the benefit of the present disclosure will appreciate that the user computing device110, the beacon device120, the service provider system130, the issuer system140, the camera device150, and the point of sale device160illustrated inFIG. 1can have any of several other suitable computer system configurations. For example, a user computing device110embodied as a mobile phone or handheld computer may or may not include all the components described above.

In examples, the network computing devices and any other computing machines associated with the technology presented herein may be any type of computing machine such as, but not limited to, those discussed in more detail with respect toFIG. 2. Furthermore, any functions, applications, or components associated with any of these computing machines, such as those described herein or any other others (for example, scripts, web content, software, firmware, hardware, or modules) associated with the technology presented herein may by any of the components discussed in more detail with respect toFIG. 2. The computing machines discussed herein may communicate with one another, as well as with other computing machines or communication systems over one or more networks, such as networks170and180. The networks170and180may include any type of data or communications network, including any of the network technology discussed with respect toFIG. 2.

Example Processes

The example methods illustrated inFIGS. 2-9are described hereinafter with respect to the components of the example operating environment100. The example methods ofFIGS. 2-9may also be performed with other systems and in other environments.

FIG. 2is a block diagram depicting a method200for enabling repeat detection of a beacon device120at a location by a payment application113operating in the background of a user computing device110operating system via periodically changing a hardware identifier of the beacon device, in accordance with certain examples. The method200is described with reference to the components illustrated inFIG. 1.

In block210, the user101registers for an account with the account management system130. The method for registering, by a user101, for an account with an account management system130is described in more detail hereinafter with reference to the method described inFIG. 3.

FIG. 3is a block diagram depicting a method210for registering, by a user101, with an account management system130. The method210is described with reference to the components illustrated inFIG. 1.

In block310, the user101accesses an account management system130website139via the user computing device110. For example, the user101accesses the account management system website139via the web browser118of the user computing device110. In another example, the user101may otherwise contact the account management system130to register for a user101account.

In block320, the user101registers with the account management system130. The user101may obtain a user101account number, receive the appropriate applications and software to install on the user computing device110, request authorization to participate in hands-free payment processing, or perform any action required by the account management system130. The user101may utilize the functions of the user computing device110, such as the user interface111and the web browser118, to register and configure a user101account. In an example, the user101may enter payment account information associated with one or more user101accounts, for example, one or more credit accounts, one or more bank accounts, one or more stored value accounts, and/or other appropriate accounts into the user101account maintained by the account management system130.

In block330, the user101downloads a payment application113onto the user computing device110. In an example, the payment application113operating on the user computing device110is able to communicate with the account management system130over the network170.

In block340, the user101enters payment account information into the account via the payment application113. In an example, the user101may configure user101account settings or add, delete, or edit payment account information via the payment application113. In an example, the user101may select an option to enable or disable the permission of the account management system130to process hands free transactions. For example, a hands free transaction comprises a transaction wherein the user101does not need to interact with the user computing device110or requires minimal user101interaction with the user computing device110to initiate a transaction with the merchant system.

From block340, the method210proceeds to block220inFIG. 2.

Returning toFIG. 2, in block220, the merchant system registers for an account with the account management system130and installs hardware at the merchant system location. The method for registering, by a merchant system, with an account management system130and installing hardware at a merchant system location is described in more detail hereinafter with reference to the method described inFIG. 4.

FIG. 4is a block diagram depicting a method220for registering, by a merchant system, with an account management system130and installing hardware at a merchant system location, in accordance with certain examples. The method220is described with reference to the components illustrated inFIG. 1.

In the examples described herein, the merchant system does not need to install hardware, for example, one or more beacon devices120and one or more point of sale (“POS”) devices160, at the example merchant system location in any particular order. The method220describes one example method of installing hardware at the merchant location. However, the merchant system or other system installing the merchant hardware does not need to install the one or more merchant POS devices160or the one or more beacon devices120in the order described herein.

In block410, a merchant system registers with the account management system130. In an example, an agent of the merchant system accesses an account management system website139and registers for a merchant system account with the account management system130via the website139. In an example, the merchant system adds payment account information associated with a merchant system payment account to the merchant account managed by the account management system130. In an example, the merchant system comprises one or more merchant system locations. For example, the merchant system may comprise one or more physical store locations. An example merchant location comprises one or more merchant point of sale (“POS”) devices160. In an example, one or more merchant POS device160operators operate the one or more merchant POS devices160at the merchant system location.

In block420, a merchant system operator installs the payment application163on the merchant point of sale device160. In another example, the merchant system operator purchases a merchant POS device160from the account management system130with the payment application163pre-installed on the merchant POS device160. In an example, the merchant POS device160is able to communicate with the account management system130over a network170to receive the payment application113. In an example, the merchant POS device160communicates with the account management system130via the payment application163over the network170. For example, the merchant POS device160may be able to transmit transaction details to the account management system130via the payment application163over the network170to enable the account management system130to process a transaction. In another example, the merchant POS device160may be able to receive a receipt from the account management system130that notifies a merchant POS device160operator whether a transaction was successful or not.

In block430, the merchant system operator installs a beacon device120at the merchant system location to correspond to the merchant POS device160. In an example, the merchant system operator installs each beacon device120in proximity to an associated merchant POS device160. An example merchant beacon device120is programmed to broadcast, emit, or otherwise transmit a particular merchant beacon device120code over a wireless network170to any user computing devices110within a threshold, predefined, or specified distance required to maintain the wireless network170.

In an example, the account management system130receives the merchant point of sale device160identifier and associates it with a corresponding beacon device120code of a beacon device120. In another example, the account management system130associates the merchant point of sale device160identifier with a merchant system location identifier corresponding to the merchant system location at which the merchant point of sale device160is installed. In an example, each installed beacon device120is associated by an account management system130with a particular merchant point of sale device160installed at the merchant system location. For example, the account management system130may comprise a database that correlates beacon device120codes with merchant point of sale device160identifiers and/or merchant system location identifiers for associated merchant point of sale devices160and/or merchant system locations. For example, a merchant point of sale device160identifier may comprise hardware identifier specific to the device such as a serial number or a MAC ID. In another example, a beacon device120code may comprise a hardware identifier specific to the beacon device or an identifier generated by the account management system130and stored in the beacon device120. An example merchant system location identifier comprises an identifier uniquely identifying a particular merchant system location.

In block440, the beacon device120broadcasts the beacon device code via a wireless communication network170at the location of the merchant system. In an example, the beacon device120broadcasts a beacon device code received from the account management system130via a local wireless network170at the merchant system location until receiving a new beacon device code from the account management system130. In this example, in response to receiving the new beacon device code from the account management system130via the network170, the beacon device120broadcasts the new beacon device code at the merchant system location via the local wireless network170until receiving a subsequent new beacon device code from the account management system130.

In an example, the beacon device120broadcasts the merchant beacon code over a wireless network170medium, wherein one or more user computing devices110located within a threshold proximity to the beacon device120are able to receive the beacon device code over the local wireless network170. In an example, only user computing devices110and/or devices located at the merchant system location are able to establish a predefined proximity to the beacon device120to enable communication with the beacon device120over the local wireless network170. For example, the threshold proximity required to establish the local wireless network170connection depends on the network120communication protocol utilized by the beacon device120. For example, the beacon device120may broadcast, emit, or otherwise transmit data comprising the beacon device code via Wi-Fi, Bluetooth, Bluetooth low energy (“BLE”), near field communication (“NFC”), or other appropriate communication protocol to one or more user computing devices110located at the merchant system location within a threshold proximity to the beacon device120. In some examples, the beacon device120, at a time before transmitting the beacon device code, is operable to establish a network170connection between the beacon device120and one or more user computing devices110and/or merchant POS devices160located at the merchant system location within a threshold, predefined, or specified proximity to the beacon device120.

In certain examples, the beacon device120is a component of the merchant POS device160or is wirelessly or physically connected to the merchant POS device160and controlled by one or more processors of the merchant POS device160. In certain examples, one or more functionalities performed by the beacon device120may also be performed by the merchant POS device160.

From block440, the method220proceeds to block230ofFIG. 2.

Returning toFIG. 2, in block230, the user101registers with the payment processing system150. The method for registering, by a user101, with a payment processing system150is described in more detail hereinafter with reference to the method220described inFIG. 4.

FIG. 4is a block diagram depicting a method220for registering, by a user101, with a payment processing system150, in accordance with certain examples. The method220is described with reference to the components illustrated inFIG. 1.

Returning toFIG. 2, in block230, the user101signs in to the payment application113via the user computing device110and enters the merchant system location. In an example, the user signs into the payment application113before entering the merchant system location. In another example, the user101signs in to the payment application113at the same time or after the user101enters the merchant system location. In an example, to sign in to payment application113, the user101may enter a username and password associated with the user's101account management system account and select an object on the user interface111that reads “sign in.” In this example, the payment application113communicates the username and password to the account management system130via the network170. In this example, the account management system130validates the username and password for the user101account. In this example, if the username and password are correct, the account management system130establishes communication with the payment application113on the user computing device110via the network170.

In block240, the user computing device110receives the beacon device120code broadcast by a beacon device120and transmits a checkin signal to the account management system130. The method for receiving, by a user computing device110, a beacon device code120broadcast by a beacon device120and transmitting a checkin signal to an account management system130is described in more detail hereinafter with reference to the method240described inFIG. 5.

FIG. 5is a block diagram depicting a method240for receiving, by a user computing device110, a beacon device code120broadcast by a beacon device120and transmitting a checkin signal to an account management system130, in accordance with certain examples. The method240is described with reference to the components illustrated inFIG. 1.

In block510, the user101carries the user computing device110within a threshold distance of the beacon device120at the merchant system location. In an example, the threshold distance comprises a maximum distance between the beacon device120and the user computing device110necessary for the user computing device110to receive data from the beacon device120over a local wireless network170at the merchant system location. For example, the user101approaches the merchant POS device160with the user computing device110.

In block520, the user computing device110receives the beacon device120code broadcasted by the beacon device120. In an example, the beacon device120continuously or periodically broadcasts the beacon device120code. For example, the beacon device120broadcasts the beacon device120code every five seconds. In an example, the user computing device110periodically receives the beacon device120code according to the frequency that the beacon device120transmits the code over the local wireless network170. In an example, when the user101signs into the payment application113, the payment application113operates in a foreground of the operating system of the user computing device110. In this example, if the user101selects another application on the user computing device110, the payment application113ceases to operate in the foreground and begins operating in a background of the operating system while the other, selected application operates in the foreground of the operating system of the user computing device110. In another example, the user computing device110operates in a sleep mode or other power-saving mode wherein the user interface111of the user computing device is deactivated and wherein the payment application113operates in the background of the operating system of the user computing device.110. In an example, only one application on the user computing device110may run in the foreground at any time. In this example, applications operating in the background have limited processing capabilities whereas an application operating in the foreground is able to freely execute on the user computing device110. More specifically, the payment application113executing in the background of the operating system may not continue to detect a particular beacon device120when the particular beacon device120broadcasts the same beacon device120code. The payment application113initially detects the particular beacon device120based on the broadcast beacon device120code. In an example, the beacon device120code comprises a media access control (“MAC”) address or hardware identifier associated with the beacon device120. Thereafter, the payment application113only detects beacon device120codes for beacon devices that are different from the beacon device120code for the particular beacon device. In an example, the beacon device120at the location, broadcasts a first beacon device120code at the location via the Bluetooth Low-Energy (“BLE”) network170or other wireless network at the location. In an example, the beacon device120broadcasts the beacon device120code and other data at the location via another type of local wireless network, for example, a Bluetooth network, a Wi-Fi network, an audio network, or near field communication (“NFC”) network. In an example, the other data comprises a beacon device120name, a network170connection name, or other data. In an example, the payment application113operating in the background or foreground of the user computing device110operating system receives the first beacon device120code and the other data from the beacon device120via the BLE network170or other wireless network at the location.

In block530, the user computing device110transmits a checkin signal and user101account identifier to the account management system130. In an example, in response to receiving the beacon device120code, the payment application113logs a check in status of the user101and transmits a check-in status signal and the user101account identifier associated with the user101account to the account management system130via the network170. In an example, in response to receiving the beacon device120code, the user computing device110logs location data of the user computing device110and transmits a checkin signal comprising the location data, a hardware identifier associated with the beacon device120, and the user101account identifier to the account management system130via the network170.

In block540, the account management system130receives the checkin signal and user101account identifier. In an example, the account management system130receives the checkin signal and user101account identifier via the network170.

In block550, the account management system130logs receipt of the checkin signal and user101account identifier and designates the user101account as checked in. In an example, the account management system130maintains a log of current user computing devices110currently checked in at the location associated with the beacon device120. In an example, the log of current user computing devices110currently checked in at the location associated with the beacon device120is associated with a hardware identifier of the beacon device120. In this example, as part of the checkin signal, the account management system130receives the hardware identifier of the beacon device120and identifies the log of current user computing devices110currently checked in at the location associated with the beacon device120based on the received hardware identifier. In another example, the log of current user computing devices110currently checked in at the location associated with the beacon device120is associated with location data. In this example, as part of the checkin signal, the account management system130receives location data logged by the user computing device110and identifies the log of current user computing devices110currently checked in at the location associated with the beacon device120based on the received location data. For example, the account management system130determines that the logged location data received from the user computing device110as part of the checkin signal is within a threshold distance from a location associated with the log of current user computing devices110currently checked in at the location associated with the beacon device120. In an example, the account management system130logs the subsequent checkin signal in a memory or data storage unit136. In an example, the account management system130maintains the log of current user computing devices110currently checked in at the location associated with the beacon device120in a data storage unit136. In an example, the account management system130logs a current time stamp at the time of receipt of the checkin signal and associates the logged timestamp with the received checkin signal in the log of current user computing devices110currently checked in at the location associated with the beacon device120. For example the logged timestamp comprises a time comprising a date, month, year, hour, minute, second, and/or other designation that identifies the time associated with the logged current timestamp.

From block550, the method240proceeds to block250inFIG. 2.

Returning toFIG. 2, in block250, the user computing device110receives a subsequent beacon device120code while the payment application113operates in the background of the user computing device110operating system and transmits a subsequent checkin signal to the account management system130. The method for receiving, by a user computing device110, a subsequent beacon device code120broadcast by a beacon device120while a payment application113is operating in a background of a user computing device110operating system and transmitting a subsequent checkin signal to an account management system130is described in more detail hereinafter with reference to the method250described inFIG. 6.

FIG. 6is a block diagram depicting a method250for receiving, by a user computing device110, a subsequent beacon device code120broadcast by a beacon device120while a payment application113is operating in a background of a user computing device110operating system and transmitting a subsequent checkin signal to an account management system130, in accordance with certain examples. The method250is described with reference to the components illustrated inFIG. 1.

In block610, the payment application113operates in the background of the user computing device110operating system. In an example, when the user101signs into the payment application113, the payment application113operates in a foreground of the operating system of the user computing device110. In this example, if the user101selects another application on the user computing device110, the payment application113ceases to operate in the foreground and begins operating in a background of the operating system while the other, selected application operates in the foreground of the operating system of the user computing device110. In this example, in response to the user101selecting or interacting with the payment application113while the payment application113is operating in the background on the user computing device110, the payment application113begins to operate in the foreground of the user computing device110. In this example, in response to the user101selecting or interacting with another application other than the payment application113on the user computing device110, the payment application113operating in the foreground begins to operate in the background of the user computing device110. In another example, the user computing device110operates in a sleep mode or other power-saving mode wherein the user interface111of the user computing device is deactivated and wherein the payment application113operates in the background of the operating system of the user computing device.110. In an example, only one application on the user computing device110may run in the foreground at any time. In this example, applications operating in the background have limited processing capabilities whereas an application operating in the foreground is able to freely execute on the user computing device110. More specifically, the payment application113executing in the background of the operating system may not continue to detect a particular beacon device120when the particular beacon device120broadcasts the same beacon device120code. The payment application113initially detects the particular beacon device120based on the broadcast beacon device120code. In an example, the beacon device120code comprises a media access control (“MAC”) address or hardware identifier associated with the beacon device120. Thereafter, the payment application113only detects beacon device120codes for beacon devices that are different from the beacon device120code for the particular beacon device.

In block620, the beacon device120stops broadcasting the beacon device120code and generates a subsequent beacon device120code. In an example, the beacon device120broadcasts the beacon device120code for a specified length of time at specified intervals. For example, the beacon device120broadcasts the beacon device120code for five minutes at five second intervals. In another example, the beacon device120broadcasts the beacon device120code continuously for a specified length of time. In an example, the beacon device120generates a subsequent beacon device120code via a random number generator123. The subsequent beacon device120code may comprise alphanumeric and/or symbolic characters generated by the random number generator123. In an example, the initial beacon device120code comprises a hardware identifier or MAC address of the beacon device120and the subsequent beacon device120code comprises a code generated by the random number generator123different from the hardware identifier or MAC address.

In block630, the beacon device120broadcasts the subsequent beacon device120code. In an example, the beacon device120broadcasts the subsequent beacon device120code and a hardware identifier associated with the beacon device120for a specified length of time at specified intervals. For example, the beacon device120broadcasts the subsequent beacon device120code for five minutes at five second intervals. In another example, the beacon device120broadcasts the subsequent beacon device120code continuously for a specified length of time. In an example, the beacon device120further generates successive beacon device120codes subsequent to the subsequent beacon device120code via a random number generator123. In an example, the beacon device120, after broadcasting the subsequent beacon device120code for the specified length of time, broadcasts each of the successive beacon device120codes for a specified length of time at specified intervals or continuously for the specified length of time. For example, every five minutes, the beacon device120broadcasts a new beacon device120code that is different from the previous beacon device120broadcast by the beacon device120. In an example, the beacon device120broadcasts the subsequent beacon device120code along with the other data at the merchant location via the BLE network170or other local wireless network170.

In block640, the user computing device110receives the subsequent beacon device120code broadcast by the beacon device120. In an example, the user computing device110receives the subsequent beacon device120code broadcast by the beacon device120via the BLE network170or other wireless network at the merchant system location. In an example, the user computing device110payment application113is operating in the background on the operating system of the user computing device110. In an example, because the subsequent beacon device120code is different than the beacon device120code previously received by the user computing device110, the payment application113detects the subsequent beacon device120code.

In block650, the user computing device110transmits a subsequent checkin signal and the user101account identifier to the account management system130. In an example, in response to detecting the subsequent beacon device120code, the payment application113transmits, via the network170, the subsequent checkin signal and the user101account identifier associated with the user101account to the account management system130. In an example, in response to receiving the subsequent beacon device120code, the user computing device110logs subsequent location data of the user computing device110and transmits a subsequent checkin signal comprising the subsequent location data, a hardware identifier associated with the beacon device120, and the user101account identifier to the account management system130via the network170.

In block660, the account management system130receives the subsequent checkin signal and the user101account identifier. For example, the account management system130receives the checkin signal, the user101account identifier, the hardware identifier of the beacon device120, and/or location data from the user computing device110via the network170. In an example, the log of current user computing devices110currently checked in at the location associated with the beacon device120is associated with a hardware identifier of the beacon device120. In this example, as part of the subsequent checkin signal, the account management system130receives the hardware identifier of the beacon device120and identifies the log of current user computing devices110currently checked in at the location associated with the beacon device120based on the received hardware identifier. In another example, the log of current user computing devices110currently checked in at the location associated with the beacon device120is associated with location data. In this example, as part of the subsequent checkin signal, the account management system130receives subsequent location data logged by the user computing device110and identifies the log of current user computing devices110currently checked in at the location associated with the beacon device120based on the received subsequent location data. For example, the account management system130determines that the logged subsequent location data received from the user computing device110as part of the checkin signal is within a threshold distance from a location associated with the log of current user computing devices110currently checked in at the location associated with the beacon device120

In block670, the account management system130logs receipt of the subsequent checkin signal and user101account identifier and maintains the user101account designation as checked in. In an example embodiment, the account management system130identifies the user101account based on the received user101account identifier and logs the subsequent checkin signal as associated with the identified user101account. In an example, the account management system130logs the subsequent checkin signal in a memory or data storage unit136. In an example, the account management system130monitors the log of current user computing devices110currently checked in at the location associated with the beacon device120in a data storage unit136and logs the subsequent checkin signal in the log of current user computing devices110currently checked in at the location associated with the beacon device120. In an example, the account management system130logs a current time stamp at the time of receipt of the subsequent checkin signal and associates the logged timestamp with the received subsequent checkin signal in the log of current user computing devices110currently checked in at the location associated with the beacon device120. For example the logged timestamp comprises a time comprising a date, month, year, hour, minute, second, and/or other designation that identifies the time associated with the logged current timestamp.

From block670, the method250proceeds to block260inFIG. 2.

Returning toFIG. 2, in block260, the account management system130monitors a checkin status for the user101account. For example, the account management system130monitors a log of current user computing devices110currently checked in at the location associated with the beacon device120. In this example, the account management system130adds and deletes user101account identifiers associated with user computing devices110based on one or more checkin signals or subsequent checkin signals received from the user computing devices110. The method for monitoring, by an account management system130, a checkin status of a user101account is described in more detail hereinafter with reference to the method260described inFIG. 7.

FIG. 7is a block diagram depicting a method260for monitoring, by an account management system130, a checkin status of a user101account, in accordance with certain examples. The method260is described with reference to the components illustrated inFIG. 1.

In block710, the account management system130logs a checkin status of a user101account in a current user101account checkin status log for the merchant location in response to receiving a checkin signal. For example, the current user101account checkin status log for the merchant location comprises the log of current user computing devices110currently checked in at the location associated with the beacon device120. For example, the method for logging a checkin status of a user101account in a current user101account checkin status log for the merchant location is described in blocks510-550herein.

In block720, the account management system130determines, after a specified time period, if a subsequent checkin signal has been received. For example, the account management system130logged an initial checkin signal received from the user computing device110for the user101account and the subsequent checkin signal is received at a time after receiving the initial checkin signal. In an example embodiment, the specified time period comprises thirty seconds, two minutes, five minutes, ten minutes, or other appropriate length of time.

If the account management system130does not receive a subsequent checkin signal after the specified period of time from time associated with the initial checkin signal, the method260proceeds to block740. For example, the initial checkin signal for the user101account was received at 3:50:15 from the user computing device110over the network170. In this example, the account management system130determines that the initial checkin signal for the user101account was received at 3:50:15 based on the timestamp associated with the logged checkin signal. In this example, at 3:56:30, the account management system130detects that no subsequent checkin signal has been received over the network170from the user computing device110and the specified period of time is five minutes. In this example, the account management system130determines that the account management system130has not received a subsequent checkin signal within the specified period of time from the user computing device110over the network170.

In block740, the account management system removes the user101account identifier from the current user101account checkin status log for the merchant location. For example, in response to determining that the account management system130has not received a subsequent checkin signal within the specified period of time from the user computing device110over the network170, the account management system removes the user101account identifier from the current user101account checkin status log for the merchant location. In an example, at a time after removing the user101account identifier from the current user101account checkin status log for the merchant location, the account management system130may add the user101account identifier again to the current user101account checkin status log for the merchant location if the account management system130receives a subsequent checkin signal from the user computing device110over the network170. For example, the example method for adding a user101account identifier to the current user101account checkin status log for the merchant location is described herein inFIG. 5.

From block740, the method260proceeds to block270inFIG. 2.

Returning to block720, if the account management system130receives a subsequent checkin signal after the specified period of time from logging the initial checkin signal, the method260proceeds to block730. For example, the initial checkin signal for the user101account was received at 3:50:15 from the user computing device110over the network170. In this example, at 3:53:30, the account management system130receives a subsequent checkin signal or otherwise detects that a subsequent checkin signal has been received over the network170from the user computing device110and the specified period of time is five minutes. In this example, the account management system130determines that the account management system130has received a subsequent checkin signal within the specified period of time from the user computing device110over the network170.

In block730, the account management system maintains the checkin status of the user101account in the user101account checkin status log for the merchant location. In an example embodiment, in response to determining that the account management system130has received a subsequent checkin signal within the specified period of time from the user computing device110over the network170, the account management system130logs a subsequent timestamp and associates the subsequent timestamp with the logged subsequent checkin signal. In this example, the account management system deletes the checkin signal and the logged timestamp associated with the checkin signal and adds the subsequent checkin signal and the subsequent ogged timestamp associated with the subsequent checkin signal to the current user101account checkin status log for the merchant location.

From block730, the method260proceeds to block270inFIG. 2.

Returning toFIG. 2, in block270, the user101initiates a transaction at the merchant system point of sale device160. The method for initiating, by a user101, a transaction at a merchant point of sale device130is described in more detail hereinafter with reference to the method270described inFIG. 8. In the examples described herein, the user101initiates a “hands free transaction” at the merchant POS device160. An example hands free transaction does not require any interaction with the user computing device110on the part of the user101. In another example, a hands free transaction requires only minimal interaction with the user computing device110by the user101.

FIG. 8is a block diagram depicting a method270for initiating, by a user101, a transaction at a merchant point of sale device160, in accordance with certain examples. The method270is described with reference to the components illustrated inFIG. 1.

In block810, the user101approaches the merchant point of sale device160. In an example, at a time prior to approaching the merchant POS device160, the user101browses the merchant system location and selects one or more items to purchase. In this example, the user101may collect the one or more items and carry, or otherwise transport via physical basket or shopping cart, the one or more items to the merchant POS device160.

In block820, the merchant point of sale device160operator totals the items of the user101for purchase. In an example, the merchant POS device160operator scans barcodes attached to the one or more items or otherwise enters descriptions and prices associated with the one or more items into the merchant POS device160. In an example, after scanning or manually entering the items into the merchant POS device160, the merchant POS device operator actuates an object on the user interface165of the merchant POS device160via the payment application163to direct the merchant POS device160to total the items. In an example, the merchant POS device160displays, via the user interface165, the total to the user101. In an example, the merchant point of sale device160operator asks the user101to select a payment option. In an example, the merchant POS device160displays one or more payment options that the user101may select to use in a transaction. Example payment options may comprise payment via a payment application113associated with the account management system130, payment by cash, payment by check, payment by credit card, payment by debit card, and/or any other means of payment that the merchant system can or is willing to accept for payment from the user101. In an example, the one or more payment options are displayed as objects on the user interface165and are selectable by the merchant POS device160operator in response to the user101directing the merchant POS device160operator to make a selection. In an example, the user101directs the merchant point of sale device160operator to initiate a transaction via the payment application113. In an example, in response to receiving a verbal request from the user101to select the payment application113as a payment option, the merchant POS device160operator actuates an object on the user interface165of the merchant POS device160corresponding to the payment application113payment option.

In block830, the merchant point of sale device160operator selects an option on the merchant point of sale device160to initiate a transaction using the payment application113. In an example, the merchant POS device160displays a confirmation screen after the merchant POS device160operator selects an option to initiate a transaction using the payment application113. An example confirmation screen may display information summarizing the potential transaction and comprising one or more of a transaction total, a description of the one or more items being purchased by the user101, and a indication that the user101selected the payment application113as the method of payment for the transaction. An example confirmation screen may further display options to confirm the transaction or cancel the transaction. In an example, the user101reviews the confirmation screen, determines that the information displayed on the confirmation screen is correct, determines to continue with the transaction, and directs the merchant POS device160operator to select the option to confirm the transaction via the user interface165.

In another example, the user101decides to abandon the transaction because the information is incorrect or because the user101changed his mind and decided not to purchase the items. In yet another example, the confirmation screen further comprises an option to edit the transaction details. In this example, the merchant POS device160operator, upon direction of the user101, may select the option to edit the transaction details and may then edit, add, or delete one or more of the items in the transaction or edit payment details or payment methods for the transaction.

In block840, the merchant point of sale device160transmits a request to process a transaction to the account management system130. In an example, the merchant point of sale device160transmits a request to process a transaction to the account management system130comprising a point of sale device160username and password via the network170. In an example, when the merchant system registers with the account management system130, the merchant system establishes a separate username and password associated with each merchant POS device160at a merchant system location. In an example, the merchant POS device160operator configures the username and password associated with the merchant POS device160via the payment application163of the merchant POS device160. In this example, the account management system130maintains a database comprising a merchant POS device160identifier for each merchant POS device160at a merchant system location. For example, the merchant POS device160identifier may comprise a media access control (“MAC”) address or an internet protocol (“IP”) address.

In block850, the account management system130receives the request to process the transaction. In an example, the account management system130receives the request to process the transaction and the point of sale device130username and password via the network170. In an example, the account management system130identifies the merchant POS device130and the merchant system location based on the received username and password associated with the merchant POS device160.

In block860, the account management system130transmits the current customer log to the merchant point of sale device160and the merchant point of sale device160displays the current customer log. In an example, the account management system130identifies retrieves the current customer log for the identified merchant system location. For example, embodiment, the current customer log comprises the log of current user computing devices110currently checked in at the location associated with the beacon device120. In an example, the log of current user computing devices110currently checked in at the location comprises a list of user computing devices110for which checkin signals and/or subsequent checkin signals have been received within a specified length of time. In an example embodiment, the account management system130transmits the current customer log along with user101facial images, challenges and/or responses associated with each user101account, or other identification data associated with each user computing device110or user101account listed on the log of current user computing devices110currently checked in at the location associated with the beacon device120.

In block870, the merchant POS device160operator determines whether the user101account is listed in the current customer log. In certain examples, the merchant POS device160operator identifies the user101via a challenge and a response. For example, the merchant POS device160operator102issues a challenge to the user101. In an example, the merchant POS device160operator asks the user101for the initials of the user101. In another example, the merchant POS device160operator asks the user101for the last four digits of a phone number of the user101. In another example, the merchant POS device160operator asks the user101for a configured password. Any suitable challenge may be issued by the merchant POS device160operator. In an example, the response to the challenge does not provide any secure or private information. In this example, the user101provides a challenge response. As described in the example challenges, the responses may be the initials of the user101, the last four digits of the phone number of the user101, a configured password, or any other data associated with the user101. Any configured challenge response may be utilized. In certain embodiments, the response may be a spoken response, a hand gesture, a keypad entry, a display of an identification card, or any suitable response. In an example, the point of sale device130operator inputs the response into the merchant point of sale device160. The merchant POS device160operator inputs the challenge response of the user101. In an example, if the user101indicates that the initials of the user101are “AC,” then the merchant POS device operator inputs “AC” into the payment application163of the merchant POS device160. In an example, the user interface165of the merchant POS device160displays a request for an entry of the response of the user101. The merchant POS device operator enters the response via a virtual or physical keyboard, voice dictation, or in any suitable manner. In an alternate example, the user101enters the response into the user interface165of the merchant POS device160. In this example, the merchant point of sale device130displays potential users101based on the challenge response. The merchant POS device160displays potential users101based on the challenge response. A list of users101that are associated with the challenge response are displayed on the merchant POS device160to the merchant POS device160operator. For example, if ten customers are in the vicinity of the associated merchant beacon device120and the user computing devices110associated with each of the ten customers transmitted a checkin signal or subsequent checkin signal to the account management system130, then the merchant POS device160may have received from the account management system130a challenge response associated with each of user101accounts of the respective ten customers along with the current customer log. When the merchant POS device160receives the challenge response input, only the potential users101that are associated with the challenge response are displayed from the current customer log to the merchant POS device160operator via the user interface165.

The payment application163may display a picture of the potential user101accounts that are presented to the merchant POS device160operator. For example, each user101may associate a picture with a user101account. When the merchant POS device160presents the one or more potential user101accounts to the merchant POS device operator, the merchant POS device operator may select the appropriate user101account based on the picture matching the user101conducting the transaction. Other identifying information may be presented instead of, or in addition to, a picture. For example, the name of the user101may be displayed and the merchant POS device operator102may identify the potential user101with that name. Any other suitable identifying information may be presented.

If the merchant POS device160operator determines that the user101account is not listed in the current customer log, the method270proceeds to block880. For example, the current customer log does not comprise information associated with the user101desiring to conduct the transaction and/or the merchant POS device160operator is unable to identify the user101based on information in the current customer log and/or information provided by the user101during checkout.

In block880, the merchant POS device160operator cancels the transaction. For example, none of the facial images, account information, or other identifying information in the displayed current customer log match any of the information of the user101desiring to conduct the transaction. In an example, the merchant POS device160operator may cancel the transaction by actuating an object on the user interface165of the merchant POS device160, notify the user101of the discrepancy, or perform any other suitable action. In another example, the merchant POS device160interacts with the user interface165to instruct the merchant POS device160to request an alternative payment method from the user101for use in the transaction.

Returning to block870, if the merchant POS device160operator determines that the user101account is listed in the current customer log, the method270proceeds to block890.

In block890, the merchant POS device160operator selects the user101account corresponding to the user101from the current customer log. For example, the merchant point of sale device operator selects the user101account for use in a transaction. After identifying the displayed picture of the user101, the merchant POS device160operator may input a selection of the user101by actuating a user interface165control associated with the picture, or by inputting the selection in any suitable manner.

In an example, only a single user101account is presented in the list of potential users101. If only a single user101account is identified, then the method may proceed after the merchant POS device160operator verifies that the displayed picture matches the user101. If the picture doesn't match, then the merchant POS device160operator may cancel the transaction, notify the user101of the discrepancy, or perform any other suitable action. In certain examples, the merchant POS device160operator may take further steps to verify the identity of the user101before proceeding with selecting the user101identifier for the transaction, for example, by requesting to view an identity document of the user101

From block890, the method270proceeds to block280inFIG. 2.

Returning toFIG. 2, in block280, the account management system130processes the transaction initiated at the merchant system location. The method280for processing, by an account management system130, a transaction is described in more detail hereinafter with reference to the method280described inFIG. 9.

FIG. 9is a block diagram depicting a method280for processing, by an account management system130, a transaction, in accordance with certain examples. The method280is described with reference to the components illustrated inFIG. 1.

In block910, the account management system130receives a request to process a transaction from the merchant POS device160comprising the user101identifier. For example, in response to the merchant point of sale device operator selecting the user101account for use in a transaction, the merchant POS device160transmits the user101account identifier associated with the selected user101account or otherwise transmits an indication of the selection of the user101account to the account management system130via the network170along with a request to process the transaction. In an example, the account management system130further transmits transaction details to the account management system130via the network170comprising a merchant system payment account identifier, a total amount of the transaction, a description of one or more items being purchased in the transaction, and other relevant transaction details. The transaction details may comprise information necessary to the account management system130to process a transaction, such as an expiration date associated with the merchant system payment account or an address of the merchant system. In an example, the account management system130already comprises some or all of the transaction details in an account associated with the merchant system.

In block920, the account management system130transmits account information of the selected user101account to the merchant point of sale device160. For example, the user101account with the account management system130comprises payment account information associated with one or more payment accounts of the user101. An example payment account of the user101comprises a credit account, bank account, stored value account, gift card, merchant system charge account, or other relevant user101account. In an example, the merchant POS device130does not receive complete payment information for one or more of the user101payment accounts. For example, the payment information may be obfuscated, occluded, or truncated. For example, the merchant POS device160may only receive abbreviated payment information sufficient for a user101to identify a payment account via the user interface165.

In block930, the merchant point of sale device160displays accounts of the selected user101. In an example, the merchant POS device160does not display complete account information of the user101on the user interface165. For example, for a credit card account, the merchant POS device user interface165may display only the name associated with the credit card, last four digits of the credit card number, and the expiration date.

In block940, the merchant point of sale device160operator selects a user101account for transaction and confirms the transaction with permission of the user101. For example, the user101views the account options directly displayed on the user interface165or listens to the merchant POS device160operator read the user101payment account options to the user101. In an example, the user101selects a payment account option to use in the transaction. For example, the user101decides to use a credit card account. In an example, the user101communicates a selection of a payment account for use in the transaction to the merchant POS device160operator. In an example, in response to receiving the user's101indication of the payment account, the merchant POS device160operator selects the payment account indicated by the user101on the merchant POS device user interface165.

In block950, the merchant point of sale device160transmits transaction details and an indication of the selected particular payment account to the account management system130. For example, the merchant POS device160transmits transaction details comprising a transaction total, an account identifier of the merchant system, and the selection of the user101account payment option. In an example, the account management system130receives the transaction details over the network170. In an example, the account management system130extracts payment account information from the user101account corresponding to the received selection of the user101payment account.

In block960, the account management system130transmits a transaction authorization request to an issuer system140. In an example, the account management system130generates a transaction authorization request comprising user101payment account information, merchant system payment account information, and a total amount of the transaction. In an example, the account management system130receives the transaction authorization request from the account management system130via the network170.

In block970, the issuer system140approves the transaction authorization request and transmits a transaction authorization approval to the payment processing system150. In an example, the issuer system140subtracts the user's101current account balance from the user's101credit limit associated with the user's101credit account. In an example, if the different between the credit limit and the credit balance is a positive number greater than the total amount of the transaction, the issuer system140approves the transaction authorization. For example, the user101will not exceed his credit limit if the transaction were to be approved, therefore the issuer system140approves the transaction authorization request. In an example, the payment processing system150receives the transaction authorization approval from the issuer system140. In another example, the payment processing system150receives a denial of the transaction authorization request in response to the issuer system140declining the transaction authorization request. In an example, if the issuer system140approves the transaction authorization request, the issuer system140credits the merchant system account and adds a charge to the user101credit account statement, bank account statement, or other appropriate statement.

In block980, the account management system130transmits a transaction receipt to the merchant point of sale device160. For example, the account management system130transmits a confirmation of the approval of the transaction or a notice of a declined transaction to the merchant POS device160over the network170. In an example, the merchant POS device160prints a receipt comprising a summary of a successful or unsuccessful transaction via a printer device that is a component of or otherwise communicatively coupled to the merchant POS device160. In another example, the account management system130may transmit a transaction receipt to the user computing device110to be displayed on the user computing device. In yet another example, the merchant POS device160transmits a transaction receipt to the user computing device110to be displayed on the user computing device.

Other Examples

FIG. 2depicts a computing machine2000and a module2050in accordance with certain examples. The computing machine2000may correspond to any of the various computers, servers, mobile devices, embedded systems, or computing systems presented herein. The module2050may comprise one or more hardware or software elements configured to facilitate the computing machine2000in performing the various methods and processing functions presented herein. The computing machine2000may include various internal or attached components such as a processor2010, system bus2020, system memory2030, storage media2040, input/output interface2060, and a network interface2070for communicating with a network2080.

The computing machine2000may be implemented as a conventional computer system, an embedded controller, a laptop, a server, a mobile device, a smartphone, a set-top box, a kiosk, a vehicular information system, one more processors associated with a television, a customized machine, any other hardware platform, or any combination or multiplicity thereof. The computing machine2000may be a distributed system configured to function using multiple computing machines interconnected via a data network or bus system.

The processor2010may be configured to execute code or instructions to perform the operations and functionality described herein, manage request flow and address mappings, and to perform calculations and generate commands. The processor2010may be configured to monitor and control the operation of the components in the computing machine2000. The processor2010may be a general purpose processor, a processor core, a multiprocessor, a reconfigurable processor, a microcontroller, a digital signal processor (“DSP”), an application specific integrated circuit (“ASIC”), a graphics processing unit (“GPU”), a field programmable gate array (“FPGA”), a programmable logic device (“PLD”), a controller, a state machine, gated logic, discrete hardware components, any other processing unit, or any combination or multiplicity thereof. The processor2010may be a single processing unit, multiple processing units, a single processing core, multiple processing cores, special purpose processing cores, co-processors, or any combination thereof. According to certain embodiments, the processor2010along with other components of the computing machine2000may be a virtualized computing machine executing within one or more other computing machines.

The system memory2030may include non-volatile memories such as read-only memory (“ROM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), flash memory, or any other device capable of storing program instructions or data with or without applied power. The system memory2030may also include volatile memories such as random access memory (“RAM”), static random access memory (“SRAM”), dynamic random access memory (“DRAM”), and synchronous dynamic random access memory (“SDRAM”). Other types of RAM also may be used to implement the system memory2030. The system memory2030may be implemented using a single memory module or multiple memory modules. While the system memory2030is depicted as being part of the computing machine2000, one skilled in the art will recognize that the system memory2030may be separate from the computing machine2000without departing from the scope of the subject technology. It should also be appreciated that the system memory2030may include, or operate in conjunction with, a non-volatile storage device such as the storage media2040.

The storage media2040may include a hard disk, a floppy disk, a compact disc read only memory (“CD-ROM”), a digital versatile disc (“DVD”), a Blu-ray disc, a magnetic tape, a flash memory, other non-volatile memory device, a solid state drive (“SSD”), any magnetic storage device, any optical storage device, any electrical storage device, any semiconductor storage device, any physical-based storage device, any other data storage device, or any combination or multiplicity thereof. The storage media2040may store one or more operating systems, application programs and program modules such as module2050, data, or any other information. The storage media2040may be part of, or connected to, the computing machine2000. The storage media2040may also be part of one or more other computing machines that are in communication with the computing machine2000such as servers, database servers, cloud storage, network attached storage, and so forth.

The computing machine2000may operate in a networked environment using logical connections through the network interface2070to one or more other systems or computing machines across the network2080. The network2080may include wide area networks (WAN), local area networks (LAN), intranets, the Internet, wireless access networks, wired networks, mobile networks, telephone networks, optical networks, or combinations thereof. The network2080may be packet switched, circuit switched, of any topology, and may use any communication protocol. Communication links within the network2080may involve various digital or an analog communication media such as fiber optic cables, free-space optics, waveguides, electrical conductors, wireless links, antennas, radio-frequency communications, and so forth.

The processor2010may be connected to the other elements of the computing machine2000or the various peripherals discussed herein through the system bus2020. It should be appreciated that the system bus2020may be within the processor2010, outside the processor2010, or both. According to some embodiments, any of the processor2010, the other elements of the computing machine2000, or the various peripherals discussed herein may be integrated into a single device such as a system on chip (“SOC”), system on package (“SOP”), or ASIC device.

The example systems, methods, and acts described in the embodiments presented previously are illustrative, and, in alternative embodiments, certain acts can be performed in a different order, in parallel with one another, omitted entirely, and/or combined between different examples, and/or certain additional acts can be performed, without departing from the scope and spirit of various embodiments. Accordingly, such alternative embodiments are included in the scope of the following claims, which are to be accorded the broadest interpretation so as to encompass such alternate embodiments.