Scannable check management service

A server may receive data identifying a requesting user and data identifying a scanned code from a client device. A processor of the server may analyze the data identifying the scanned code to identify a memo associated with the scanned code. The memo may be associated with a creating user. The processor may determine whether the requesting user is the creating user by analyzing the data identifying the requesting user. In response to determining that the requesting user is the creating user, the processor may permit the client device to access a private account associated with the creating user. In response to determining that the requesting user is not the creating user, the processor may cause the client device to display a message associated with the memo.

BACKGROUND

Checks typically include space for indicating a recipient who may cash the check, an amount of money to be transferred from an associated checking account upon cashing, a signature, and a memo. The space for entering the memo is typically a single line in a lower-left portion of the check. This is a small space that is capable of holding only a few words of text in most cases. Furthermore, the memo line is visible to anyone inspecting the face of the check, so it is not an appropriate place for private messages from the payor to the payee.

SUMMARY OF THE DISCLOSURE

Disclosed embodiments may utilize checks with scannable codes in place of or in addition to a memo line. For example, a method of providing data access may include receiving, at a server, data identifying a requesting user and data identifying a scanned code from a client device. The method may include analyzing, by a processor of the server, the data identifying the scanned code to identify a memo associated with the scanned code, the memo being associated with a creating user. The method may include determining, by the processor, whether the requesting user is the creating user by analyzing the data identifying the requesting user. The method may include, in response to determining that the requesting user is the creating user, permitting, by the processor, the client device to access a private account associated with the creating user. The method may include, in response to determining that the requesting user is not the creating user, causing, by the processor, the client device to display a message associated with the memo.

In some embodiments, the method may include analyzing, by the processor, the data identifying the scanned code to determine that the memo has expired. The message associated with the memo may indicate that the memo has expired. In some embodiments, the analyzing of the data identifying the scanned code to determine that the memo has expired may include comparing a time at which the data identifying the scanned code was received with an expiration time for the memo.

In some embodiments, the method may further include advancing, by the processor, a counter in response to receiving the data identifying the scanned code from the client device. The method may include comparing, by the processor, a value of the counter with a maximum view count for the memo to determine that the memo has expired. The message associated with the memo may indicate that the memo has expired.

In some embodiments, the method may further include recording, by the processor, an association of the scanned code with the creating user in a memory. In some embodiments, the determining may include retrieving the association from the memory.

In some embodiments, the method may further include receiving, at the server, data defining the message associated with the memo from the client device permitted to access the private account associated with the creating user. The method may include generating, by the processor, the message according to the data defining the message. The method may include storing, by the processor, the message in a memory. In some embodiments, the method may further include receiving, at the server, data identifying a second requesting user and data identifying the scanned code from a second client device. The method may include analyzing, by the processor, the data identifying the scanned code from the second client device to identify the memo. The method may include determining, by the processor, that the second requesting user is not the creating user by analyzing the data identifying the second requesting user. The method may include retrieving, by the processor, the message from the memory. The method may include causing, by the processor, the second client device to display the message retrieved from the memory.

In another example, a data access system may include a plurality of physical checks each including a unique scannable code, a processor, and a non-transitory memory in communication with the processor. The memory may be configured to store a plurality of associations. Each association may relate one of the unique scannable codes with a user to whom the physical check including the unique scannable code is issued. The memory may be configured to store a plurality of instructions that, when executed by the processor, cause the processor to receive data identifying a requesting user and data identifying one of the unique scannable codes from a client device. The instructions may cause the processor to analyze the data identifying the unique scannable code to identify a memo associated with the unique scannable code, the memo being associated with a creating user. The instructions may cause the processor to determine whether the requesting user is the creating user by comparing the data identifying the requesting user with the association related to the unique scannable code. The instructions may cause the processor to, in response to determining that the requesting user is the creating user, permit the client device to access a private account associated with the creating user. The instructions may cause the processor to, in response to determining that the requesting user is not the creating user, cause the client device to display a message associated with the memo.

In some embodiments, the instructions may further cause the processor to analyze the data identifying the unique scannable code to determine that the memo has expired. The message associated with the memo may indicate that the memo has expired. In some embodiments, the analyzing of the data identifying the unique scannable code to determine that the memo has expired may include comparing a time at which the data identifying the unique scannable code was received with an expiration time for the memo stored in the memory.

In some embodiments, the instructions may further cause the processor to advance a counter in response to receiving the data identifying the unique scannable code from the client device. The instructions may cause the processor to compare a value of the counter with a maximum view count for the memo stored in the memory to determine that the memo has expired. The message associated with the memo may indicate that the memo has expired.

In some embodiments, the instructions may further cause the processor to record the association of the unique scannable code with the creating user in the memory. In some embodiments, the determining may include retrieving the association from the memory.

In some embodiments, the instructions may further cause the processor to receive data defining the message associated with the memo from the client device permitted to access the private account associated with the creating user. The instructions may cause the processor to generate the message according to the data defining the message. The instructions may cause the processor to store the message in the memory. In some embodiments, the instructions may further cause the processor to receive data identifying a second requesting user and data identifying the unique scannable code from a second client device. The instructions may cause the processor to analyze the data identifying the unique scannable code from the second client device to identify the memo. The instructions may cause the processor to determine that the second requesting user is not the creating user by comparing the data identifying the second requesting user with the association related to the unique scannable code. The instructions may cause the processor to retrieve the message from the memory. The instructions may cause the processor to cause the second client device to display the message retrieved from the memory.

In another example, a user device may include an input element configured to receive a user input, a scanning element configured to scan a scannable code, a processor in communication with the input element and the scanning element, and a non-transitory memory in communication with the processor. The memory may be configured to store a plurality of instructions that, when executed by the processor, cause the processor to receive account login data as the user input from the input element. The instructions may cause the processor to receive a scan of the scannable code from the scanning element. The instructions may cause the processor to send at least one message including data identifying a requesting user associated with the account login and data identifying the scannable code. The instructions may cause the processor to receive a response to the at least one message comprising data access instructions. The instructions may cause the processor to process the data access instructions to access a private account in response to the data access instructions being based on an association between the requesting user and the scannable code and access a message associated with the scannable code in response to the data access instructions being based on a lack of the association between the requesting user and the scannable code.

In some embodiments, accessing the private account may include providing a user interface (UI) including functionality that creates the message associated with the scannable code.

In some embodiments, the message may include a digital memo for a physical check.

In some embodiments, the message may include an indication that a digital memo for a physical check has expired.

DETAILED DESCRIPTION OF SEVERAL EMBODIMENTS

Disclosed embodiments may utilize checks with scannable codes in place of or in addition to a memo line. For example, in some embodiments, user devices may be configured to scan checks and generate requests to access memo information. Servers may be configured to respond to the requests, for example by granting access, denying access, and/or granting access to memo creation functionality for some users. Some embodiments may enable enhanced memo functionality, such as providing significantly more data than can be contained on a traditional check memo line (e.g., including long sections of text and/or multimedia elements). Some embodiments may provide enhanced memo security, for example by permitting memo data access to authorized users (e.g., check account holder and/or intended recipient), restricting memo data access to unauthorized users, and/or restricting memo data access to certain times.

FIGS. 1A-1Bshow a network100according to an embodiment of the present disclosure. Network100may include any public and/or private network, such as the Internet. User device112and server device102may communicate with one another using network100.

User device112may include scanning element114. For example, scanning element114may include a camera or other sensor. User device112may be configured to scan codes with scanning element114. For example, check150may have code152printed on a surface thereof. In the embodiment illustrated inFIG. 1, code152is a QR code, but those of ordinary skill in the art will appreciate that any scannable code may be used (e.g., a bar code, a machine-readable text code, etc.). As described in detail below, user device112may use scanning element114to scan code152and communicate with server device102to access data associated with code152. For example, code152may be provided in place of or in addition to a memo line on check150. By scanning code152and communicating with server device102, a user may view and/or edit a message (e.g., enhanced memo160) associated with check150.

A single user device112is depicted for ease of illustration, but those of ordinary skill in the art will appreciate that a plurality of user devices112configured to scan checks and/or communicate with server device102may be present on network100. Furthermore, user device112may be embodied in different forms for different implementations. For example, user device112may be embodied as a separate computing device and scanning element114in communication with one another.

Server device102may be configured to provide access to messages associated with checks150. For example, server device102may include memo/account service104, which may be configured to process memo access requests from user device112. Server device102may include account database106, which may be configured to store account data that may be used to determine whether the requesting user has message access and/or message editing privileges. Server device102may include memo database108, which may store messages associated with checks150. For example, memo database108may store enhanced memo160. If permitted, server device102may send enhanced memo160data to user device112, which may display and/or allow editing of enhanced memo160. Examples of processing that may be performed by memo/account service104to facilitate creation of and/or access to messages are described in detail below.

Server device102is depicted as a single server including a single memo/account service104, account database106, and memo database108for ease of illustration, but those of ordinary skill in the art will appreciate that server device102may be embodied in different forms for different implementations. For example, server device102may include a plurality of servers.

FIG. 2shows a client device, such as user device112, according to an embodiment of the present disclosure. For example, user device112may scan memos, create memo data such as messages, and/or access the memo data as described herein. User device112may include a memory interface202, one or more data processors, image processors, and/or central processing units204, and a peripherals interface206. The memory interface202, the one or more processors204, and/or the peripherals interface206may be separate components or may be integrated in one or more integrated circuits. The various components in user device112may be coupled by one or more communication buses or signal lines.

Sensors, devices, and subsystems may be coupled to the peripherals interface206to facilitate multiple functionalities. For example, a motion sensor210, a light sensor212, and a proximity sensor214may be coupled to the peripherals interface206to facilitate orientation, lighting, and proximity functions. Other sensors216may also be connected to the peripherals interface206, such as a global navigation satellite system (GNSS) (e.g., GPS receiver), a temperature sensor, a biometric sensor, magnetometer, or other sensing device, to facilitate related functionalities.

A camera subsystem220and an optical sensor222, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, may be utilized to facilitate camera functions, such as recording photographs and video clips. The camera subsystem220and the optical sensor222may be used to collect images of a user to be used during authentication of a user, e.g., by performing facial recognition analysis.

Communication functions may be facilitated through one or more wireless communication subsystems224, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. For example, the BTLE and/or WiFi communications described above may be handled by wireless communication subsystems224. The specific design and implementation of the communication subsystems224may depend on the communication network(s) over which user device112is intended to operate. For example, user device112may include communication subsystems224designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a Bluetooth™ network. For example, the wireless communication subsystems224may include hosting protocols such that user device112can be configured as a base station for other wireless devices and/or to provide a WiFi service.

An audio subsystem226may be coupled to a speaker228and a microphone530to facilitate voice-enabled functions, such as speaker recognition, voice replication, digital recording, and telephony functions. The audio subsystem226may be configured to facilitate processing voice commands, voiceprinting, and voice authentication, for example.

The I/O subsystem240may include a touch-surface controller242and/or other input controller(s)244. The touch-surface controller242may be coupled to a touch surface246. The touch surface246and touch-surface controller242may, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface246.

The other input controller(s)244may be coupled to other input/control devices248, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) may include an up/down button for volume control of the speaker228and/or the microphone230.

In some implementations, a pressing of the button for a first duration may disengage a lock of the touch surface246; and a pressing of the button for a second duration that is longer than the first duration may turn power to user device112on or off. Pressing the button for a third duration may activate a voice control, or voice command, module that enables the user to speak commands into the microphone230to cause the device to execute the spoken command. The user may customize a functionality of one or more of the buttons. The touch surface246can, for example, also be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, user device112may present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, user device112may include the functionality of an MP3 player, such as an iPod™. User device112may, therefore, include a 36-pin connector and/or 8-pin connector that is compatible with the iPod. Other input/output and control devices may also be used.

The memory interface202may be coupled to memory250. The memory250may include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory250may store an operating system252, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks.

The operating system252may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, the operating system252may be a kernel (e.g., UNIX kernel). In some implementations, the operating system252may include instructions for performing voice authentication.

The memory250may store communication instructions254to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. The memory250may include graphical user interface instructions256to facilitate graphic user interface processing; sensor processing instructions258to facilitate sensor-related processing and functions; phone instructions260to facilitate phone-related processes and functions; electronic messaging instructions262to facilitate electronic-messaging related processes and functions; web browsing instructions264to facilitate web browsing-related processes and functions; media processing instructions266to facilitate media processing-related processes and functions; GNSS/Navigation instructions268to facilitate GNSS and navigation-related processes and instructions; and/or camera instructions270to facilitate camera-related processes and functions.

The memory250may store reader instructions272to facilitate other processes and functions, such as the memo scanning features described herein.

The memory250may also store other software instructions274, such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, the media processing instructions266may be divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively.

Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described herein. These instructions need not be implemented as separate software programs, procedures, or modules. The memory250may include additional instructions or fewer instructions. Furthermore, various functions of user device112may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.

FIG. 3is a block diagram of a server device, such as server device102, according to an embodiment of the present disclosure. Server device102may be implemented on any electronic device that runs software applications derived from compiled instructions, including without limitation personal computers, servers, smart phones, media players, electronic tablets, game consoles, email devices, etc. In some implementations, server device102may include one or more processors302, one or more input devices304, one or more display devices306, one or more network interfaces308, and one or more computer-readable mediums310. Each of these components may be coupled by bus312.

Display device306may be any known display technology, including but not limited to display devices using Liquid Crystal Display (LCD) or Light Emitting Diode (LED) technology. Processor(s)302may use any known processor technology, including but not limited to graphics processors and multi-core processors. Input device304may be any known input device technology, including but not limited to a keyboard (including a virtual keyboard), mouse, track ball, and touch-sensitive pad or display. Bus312may be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA or FireWire. Computer-readable medium310may be any medium that participates in providing instructions to processor(s)302for execution, including without limitation, non-volatile storage media (e.g., optical disks, magnetic disks, flash drives, etc.), or volatile media (e.g., SDRAM, ROM, etc.).

Computer-readable medium310may include various instructions314for implementing an operating system (e.g., Mac OS®, Windows®, Linux). The operating system may be multi-user, multiprocessing, multitasking, multithreading, real-time, and the like. The operating system may perform basic tasks, including but not limited to: recognizing input from input device304; sending output to display device306; keeping track of files and directories on computer-readable medium310; controlling peripheral devices (e.g., disk drives, printers, etc.) which can be controlled directly or through an I/O controller; and managing traffic on bus312. Network communications instructions316may establish and maintain network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, telephony, etc.).

Memo/account service instructions318may include instructions that create, edit, and/or deliver memo data, such as messages, as described herein. Memo/account service instructions318may include instructions that process requests for memo access differently depending on an identity and/or status of the requesting party as described herein. Memo/account service instructions318may also perform other processing tasks handled by server device102as described herein.

Application(s)320may be an application that uses or implements the processes described herein and/or other processes. The processes may also be implemented in operating system314.

To provide for interaction with a user, the features may be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.

FIG. 4shows a check scanning and memo display process400according to an embodiment of the present disclosure. User device112may perform process400to access enhanced memo160in response to scanning code152, if permitted.

At402, user device112may receive login data. For example, user device112may present a UI to a user, allowing the user to login to an account. In some embodiments, the UI may be provided within an app, such as specialized app for scanning checks, for example. In other embodiments, the UI may be provided by a webpage sent from server device102or another source. The user may attempt to log into an account. The account may be a checking account and/or may be associated with a checking account. In some embodiments, user device112may process the login and allow access to additional functionality (e.g., check scanning and/or account access functionality). In other embodiments, user device112may communicate and/or coordinate with server device102to process the login.

At404, user device112may scan a check. User device112may include scanning element114, which may sense code152. For example, scanning element114may be a camera. The user may position the camera so that code152is imaged by the camera. User device112may process the image to detect code152. Code152may be uniquely assigned to a specific check150. For example, checks150may be distinguished by a combination of routing number, account number, and/or check number. Code152may be specific to a check number of a specific user account (e.g., indicated by routing and account number).

At406, user device112may generate a memo access request. For example, the memo access request may include data encoded in code152. In some embodiments, the memo access request may include at least one of the routing number, account number, and check number of check150on which scanned code152is printed. User device112may send the request to server device102through network100.

At408, user device112may receive a response to the request. For example, server device102may process the request according to process500described below. The response may indicate whether the user is allowed to access enhanced memo160associated with code152and/or the combination of routing number, account number, and/or check number. For example, the response may indicate that the user is not permitted to access enhanced memo160, the user is permitted to view enhanced memo160, or the user is permitted to create and/or edit enhanced memo160.

At410, user device112may display data, such as a memo message and/or a user interface, in accordance with the response. For example, based on the response received at408, user device112may or may not present a UI for viewing and/or a UI for editing enhanced memo160. The user may be forbidden from accessing enhanced memo160if the user is not a permitted recipient (e.g., a person to whom check150is written) and/or if enhanced memo160has expired. The user may be permitted to view enhanced memo160if the user is a permitted recipient and/or if enhanced memo160has not expired. The user may be permitted to create and/or edit enhanced memo160if the user is the account holder from which check150is drawn.

If the user is permitted to create and/or edit enhanced memo160, user device112may present a UI including settings for editing content of the memo (e.g., entering text, audio, graphics, video, etc.) and/or settings of the memo (e.g., designating permitted recipients and/or expiration times/dates, etc.). User device112may send the settings to server device102, where memo/account service104may store enhanced memo160in memo database108according to the settings.

FIG. 5shows a code evaluation process500according to an embodiment of the present disclosure. Server device102may perform process500. For example, memo/account service104may perform process500to evaluate whether to allow access to an enhanced memo160in memo database108based at least in part on data in account database106.

At502, server device102may receive a memo access request. The memo access request may have been generated by and sent from user device112according to process400as described above. For example, the memo access request may include data encoded in code152. In some embodiments, the memo access request may include at least one of the routing number, account number, and check number of check150on which scanned code152is printed. Memo/account service104may receive the request from user device112through network100.

At504, server device102may identify memo data corresponding to the request. For example, scanned code152may identify the specific check150on which it is printed and a specific enhanced memo160associated with the specific check150. Memo/account service104may check memo database108to determine whether the specific enhanced memo160has been created. If enhanced memo160has not been created, memo database108may store only an indication of which account and/or specific check150is associated with the specific enhanced memo160. If enhanced memo160has been created, memo database108may store message data (e.g., text data, audio data, graphic data, video data, etc.), the identity of one or more recipients permitted to access the message data (e.g., account identifiers and/or names of check150recipients), and/or parameters indicating when and/or whether enhanced memo160has expired or will expire (e.g., a count of times enhanced memo160has been accessed if enhanced memo160has an access count limit and/or a time and/or date of expiration for enhanced memo160).

At506, server device102may determine a status of the user from which the request was received and/or a status of the memo itself (e.g., whether it has been created yet and/or an expiration status). For example, based on the data from memo database108, memo/account service104may determine whether an access count for enhanced memo160has been exceeded and/or whether a current date and/or time is past an expiration date and/or time for enhanced memo160. In some embodiments, memo/account service104may check account database106and/or memo database108to determine whether the user device112from which the request was received is associated with an account permitted to access enhanced memo160(e.g., an account associated with check150holder as indicated by account database106or an account indicated as a permitted recipient in memo database108). In other embodiments, memo/account service104may permit access to enhanced memo160to any device scanning the check150(e.g., assuming any applicable access count or time has not been exceeded).

At508, server device102may generate a response to the request, such as a link to a memo message and/or a UI. If the user is not permitted to access enhanced memo160due to identity, expiration, and/or unavailability (e.g., enhanced memo160has not been created yet, and the user is not the account holder associated with check150), memo/account service104may generate a response indicating the memo is unavailable. If the user is permitted to access enhanced memo160and enhanced memo160has been created, memo/account service104may generate a response including a link that, when opened on user device112, may cause user device112to display enhanced memo160(note that if a counter-based expiration is active, clicking on the link may cause user device112to send data to server device102causing an advance of the counter for this enhanced memo160in memo database108). If enhanced memo160has not been created yet, and the user is the account holder associated with check150, memo/account service104may generate a response including a link that, when opened on user device112, may cause user device112to provide a UI for creating enhanced memo160. If enhanced memo160been created, and the user is the account holder associated with check150, memo/account service104may generate a response including a link that, when opened on user device112, may cause user device112to provide a UI for editing and/or viewing enhanced memo160. Note that in either case if the user is the account holder, the UI may show additional data such as time and/or access count to expiration, identity of accessing parties, whether check150has been cleared, the amount of check150, other checks available to the account holder (e.g., indicated by check number) and/or memo information for the other checks similar to the memo information for the current check150, and/or other information.

At510, server device102may send the response. For example, memo/account service104may send the response to user device112through network100using any messaging technology, such as by a text message, an email, a push notification, etc. In some embodiments, memo/account service104may also generate and send a message to a device associated with an account holder when user device112is associated with a party other than the account holder who is accessing the memo.