INVOICE PAYMENT SYSTEM AND METHOD

A code scanner (106) scans a quick response (QR) code that encodes a merchant identification codes assigned to a merchant that generates an invoice. The first invoice comprises invoice data. The code scanner decodes the QR code to recover the merchant identification code encoded within the QR code. The code scanner can display the invoice data and one or more selectable payment instruments. The code scanner selects a first payment instrument to pay the first invoice. The code scanner transmits, to an application server (102) for attempting to pay the invoice, the merchant identification code, data pertaining to the selected payment instrument, and at least a portion of the invoice data. The application server can attempt to pay the invoice and notify the code scanner whether the attempt to pay the invoice was successful. The code scanner can display notification that indicates whether attempt to pay the invoice was successful.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
PRIORITY CLAIMS

This application claims the benefit of GB Application No. 1119375.2, filed Nov. 10, 2011, and claims the benefit of U.S. Provisional Application No. 61/587,416, filed Jan. 17, 2012. GB Application 1119375.2 and U.S. Provisional Application No. 61/587,416 are incorporated herein by reference for all purposes.

BACKGROUND

Unless otherwise indicated herein, the elements described in this section are not prior art to the claims and are not admitted to be prior art by inclusion in this section.

Payment of invoices from service providers such as utility companies, doctors, dentists and the like can be tedious and time-consuming. For example, when a customer receives an invoice from a utility company, the customer may pay the invoice by issuing and posting a cheque, by means of an online banking transaction, or through use of a credit or debit card on the utility company's website.

Payment by cheque requires the customer to write out the cheque, address an envelope and mail the cheque together with a remittance slip that reflects the relevant invoice details. On the other hand, payment of the invoice by means of an online banking transaction requires the customer to set up the invoice issuer as a beneficiary on the user's banking account. If the customer later wishes to use a different banking account from which to pay, it will be necessary for the customer to again set up the invoice issuer as a beneficiary on the different banking account. Lastly, in order to pay the invoice by means of a credit or debit card, the customer may be required to furnish the relevant card particulars to the invoice issuer's website for storage on the invoice issuer's server, which is risky as such particulars may be misappropriated.

The applicant has appreciated the desirability of a simpler process for paying invoices than that described above.

OVERVIEW

Example embodiments are described herein. In one respect, an example embodiment takes the form of a method comprising (i) scanning, using a code scanner, a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (ii) decoding, using the code scanner, the first QR code to recover the merchant identification code encoded within the first QR code, (iii) selecting, using the code scanner, a first payment instrument to pay the first invoice, (iv) transmitting, from the code scanner to an application server for an initial attempt of paying the first invoice, the merchant identification code encoded in the first QR code, data pertaining to the first payment instrument, and at least a portion of the first invoice data, and (v) receiving, at the code scanner from the application server, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

In another respect, an example embodiment takes the form of a code scanner comprising (i) a processor, (ii) a scanner configured to scan a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (iii) a data storage device that stores a computer-readable scanner application executable by the processor to decode the first QR code to recover the merchant identification code encoded within the first QR code, (iv) a user interface configured to select a first payment instrument to pay the first invoice, and (v) a network interface. The network interface is configured to transmit, to an application server for an initial attempt of paying the first invoice, the merchant identification code encoded in the first QR code. data pertaining to the first payment instrument, and at least a portion of the first invoice data. The network interface is configured to receive, from the application server, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

In yet another respect, an example embodiment takes the form of a method comprising (i) receiving, at an application server from a first code scanner, a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (ii) receiving, at the application server from the first code scanner, data pertaining to a first payment instrument selected for an initial attempt of paying the first invoice, (iii) receiving, at the application server from the first code scanner, at least a portion of the first invoice data, (iv) determining, at the application server, whether processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data results in successful or unsuccessful payment of the first invoice, and (v) transmitting, from the application server to the first code scanner, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

In yet another respect, an example embodiment takes the form of an application server comprising (i) a processor, (ii) a data storage device comprising computer-readable program instructions, (iii) a network interface to receive, from a first code scanner, (a) a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (b) data pertaining to a first payment instrument selected for an initial attempt of paying the first invoice, and (c) at least a portion of the first invoice data. The program instructions are executable by the processor to determine whether processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data results in successful or unsuccessful payment of the first invoice. The program instructions are executable by the processor to cause the network interface to transmit first status data to the first code scanner. The first status data indicates whether the initial attempt of paying the first invoice was successful or unsuccessful.

In yet another respect, an example embodiment takes the form of a method comprising (i) receiving, at a merchant server, a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (ii) providing, from the merchant server to a code scanner user, the first invoice and the first QR code, and (iii) receiving, at the merchant server from an application server that processes payments of invoices, a message indicating a payment towards the first invoice was successfully made.

In still yet another respect, an example embodiment takes the form of a merchant server comprising (i) a processor, (ii) a data storage device comprising computer readable program instructions, and (iii) a network interface that (a) receives a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (b) transmits the first invoice and the first QR code to a code scanner; and (c) receives, from an application server that processes payments of invoices, a message indicating a payment towards the first invoice was successfully made.

These as well as other aspects and advantages will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. Further, it should be understood that the embodiments described in this overview and elsewhere are intended to be examples only and do not necessarily limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments are described herein with reference to the drawings, in which:

FIG. 1 is a schematic representation of a system for the payment of invoices;

FIG. 2 is a representation of a webpage of a merchant portal website hosted on an application server in the system of FIG. 1;

FIG. 3 illustrates an example quick response (QR) code;

FIG. 4 is a block diagram of a code scanner in accordance with at least one of the example embodiments;

FIG. 5 is a block diagram of an application server in accordance with at least one of the example embodiments;

FIG. 6 is a flow chart of functions to carry out payment of an invoice in accordance with a first embodiment of the system of FIG. 1;

FIG. 7 is a flow chart of functions to carry out payment of an invoice in accordance with a second embodiment of the system of FIG. 1; and

FIG. 8 is a block diagram of a merchant server in accordance with at least one of the example embodiments.

DETAILED DESCRIPTION I. Introduction

This description describes, among other things, example embodiments with respect to paying an invoice. In this description the terms ‘user’ and ‘customer’ can be used interchangeably depending on the context, as can the terms “invoice issuer” and “merchant,” and the terms “invoice” and “bill.”

In this description, the articles “a” or “an” are used to introduce elements of the example embodiments. The intent of using those articles is that there is one or more of the elements. The intent of using the conjunction “or” within a described list of at least 2 terms is to indicate that any of the listed terms or any combination of the listed terms. The use of ordinal numbers such as “first,” “second,” “third” and so on is to distinguish respective elements rather than to denote a particular order of those elements.

The following abbreviations or acronyms are used in the description:

CVC—Card Verification Code; FIG.—Figure; FIGs.—Figures; Inc.—Incorporated; PIN—Personal Identification Number; QR—Quick Response; Scanner App—Scanner Application Program; and

SMS—Short message service.

II. Example Architecture

FIG. 1 depicts a schematic representation of a system 100 for payment of invoices in accordance with example embodiments described herein. The system 100 includes an application server 102, a merchant server 104 and a code scanner 106 device configured to scan and decode Quick Response (QR) codes which are well known and widely used. The code scanner 106 can take the form of a conventional smartphone handset provisioned with software for scanning QR codes, a web browser, and a wireless connection to the internet. The code scanner 106 can be referred to as a “mobile wireless communication device,” a “mobile smartphone handset” or, more simply, a “mobile smartphone” or “smartphone.” As an example, the mobile wireless communication device can be a personal digital assistant or a cellular telephone. As another example, the mobile wireless communication device can be an iPhone, such as the iPhone5, or an iPad sold by Apple Inc., Cupertino, Calif., United States. The code scanner 106 does not need to be a mobile device, but can be a device that remains attached to a stationary internet-enabled device.

The application server 102, the merchant server 104 and the code scanner 106 can communicate with each other using a communication network 108. The communication network 108 can comprise a wide-area network, such as the internet.

Communication between the application server 102 and the code scanner 106 can be facilitated by using a server-hosted program (not shown) and a scanner application program (a ‘scanner app’) that is installed and executed on the code scanner 106. In another respect, communication between the application server 102 and code scanner 106 can occur using network interface 152 (shown in FIG. 4) and network interface 184 (shown in FIG. 5).

A user can download a copy of the scanner app 164 from a download repository (for example, data storage device 188 in FIG. 5) and install the scanner app 164 on the code scanner 106. On, during, or after installation, the scanner app 164 creates a user-profile 110 on the code scanner 106 and prompts the user to manually provide personal attributes such as, the user's first name, the user's last name, an e-mail address, a physical address and particulars of one or more payment instruments such as credit cards, debit cards, e-wallets and the like. In accordance with at least some example embodiments, the user-profile 110 (for example, the data in the user-profile 110) is stored locally on the code scanner 106 and is not passed to the application server 102 for storage at application server 102.

The application server 102 hosts a merchant portal web site 120 that enables merchants to register and create individual merchant profiles that are maintained by the application server 102 in a merchant database 112. The merchant portal website 120 can be referred to as a “portal website.” Merchant registration and creation of a merchant profile in the merchant database 112 can be performed online by the merchant portal website 120. A merchant can use a merchant computing device 130 including a display for displaying websites to display merchant portal websites and an input device for selecting or entering data onto the merchant portal websites.

FIG. 2 shows an example webpage 200 of the merchant portal website 120. The webpage 200 can display a registration form 201 that a merchant can complete in order to register with the merchant portal website 120. Registering with the merchant portal website 120 can be referred to as registering with application server 102. The webpage 200 can be a homepage of the merchant portal website 120. As an example, the registration form 201 can include the following fields: a merchant's business name 202, a merchant's business address 204, and a description of the merchant's business 206. As an example, the business description can be a utility company, an internet service provider, a doctor, a dentist, or some other business description. As another example, the form 201 can include a field for the merchant to enter data indicating an account identifier of an account to which invoice payments are to be made. An account identifier can identify the merchant's bank account number. Other examples of fields on the registration form 201 are possible.

Entering data into the registration form 201 can occur, for example, by typing data or selecting data from a list of predetermined data. Selecting a “sign up” selector or some other selector on registration form 201 can cause the merchant computing device 130, displaying the webpage 200, to transmit data entered into form 201 to the application server 102 for subsequent storage as a merchant profile within merchant profiles 142.

A merchant can, in this manner, arrange for the merchant to use QR-based invoice payment. The application server 102 can assign a unique merchant identification code to each merchant business configured in this manner and the merchant identification code is stored in the merchant's profile in the merchant database 112. Additionally or alternatively, each merchant identification code can be provided to and stored with a QR source that serves QR codes to the merchant server 104. For the sake of being brief, a merchant identification code can be referred to as an “identification code.” A merchant identification code can, for example, be a unique numeric code, a unique alphanumeric code, or a unique business name. A business name entered using registration form 201 can be appended with a prefix or suffix, by the application server 102, to change the entered business name into a unique business name if a merchant with a similar business name has already registered with application server 102.

FIG. 3 illustrates an example QR code 999. QR code 999 can be encoded as a payment QR code. The example embodiments may use any of a variety of example QR codes. In one respect, QR code 999 can be configured as a static QR code. As an example, a static QR code comprises data common to multiple invoices a merchant produces, but does not include differing data that differs between 2 or more invoices. The common data can, for example, comprise a merchant identification code the merchant uses on each of its invoices. The differing data can, for example, comprise an invoice number or amount due.

In another respect, QR code 999 can be configured as a dynamic QR code. A dynamic QR code can include data fields that a merchant can select the data to encode into one or more of the data fields. As an example, the data fields of a dynamic QR code can comprise, but is not limited to, one or more of the following data fields: a name and address of the merchant, a name and address of the customer, an invoice identifier, a due date for paying the invoice, a date indicating when the invoice was generated, a description and a corresponding cost of each line items that appears on the invoice, a tax amount, a total amount due, a penalty amount if the invoice is paid after the due date, and a penalty amount if payment is attempted by cheque with insufficient funds. Other examples of data fields a merchant can populate to when generating an invoice are also possible. A dynamic QR code can include a merchant identification code of the merchant generating the dynamic QR code.

Next, FIG. 4 is a block diagram depicting an example embodiment of code scanner 106. As shown in FIG. 4, code scanner 106 includes (i) a processor 150, (ii) a network interface 152 for transmitting data to and receiving data from communication network 108, (iii) a user interface 154, (iv) a scanner 156 configured to scan (for example, capture) QR codes, and (v) a data storage device 158, all of which can be linked together via a system bus or other connection mechanism 160. Data storage device 158 includes computer-readable program instructions (CRPI) 162, the scanner app 164, and a user-profile 110. CRPI 162 can include the scanner app 164. Data storage device 158 can comprise a non-transitory computer-readable storage medium readable by processor 150. Each computer-readable storage medium described herein can comprise volatile and/or non-volatile storage components, such as optical, magnetic, organic or other memory or disc storage, which can be integrated in whole or in part with a processor.

Each processor described herein can comprise one or more general purpose processors (for example, INTEL single core microprocessors or INTEL multicore microprocessors) or one or more special purpose processors (for example, application specific integrated circuits (ASICs) or digital signal processors (DSPs)). Processor 150 is configured to execute CRPI 162.

Each user interface described herein can comprise (i) one or more output elements to present information (for example, data or a form) to a user of the device comprising the user interface, and (ii) one or more input elements to input user data (for example, a user selection or form field data). The output elements can, for example, comprise a display to visually present information or a loud speaker to audibly present information. The input elements can, for example, comprise a computer mouse, a keyboard, a touchscreen, or a microphone.

FIG. 5 is a block diagram depicting an example embodiment of application server 102. As shown in FIG. 5, application server 102 can include (i) a processor 182, (ii) a network interface 184 for transmitting data to and receiving data from communication network 108, (iii) a user interface 186, and (iv) a data storage device 188, all of which can be linked together via a system bus or other connection mechanism 190. Data storage device 188 can include (for example, store) (i) CRPI 192, (ii) the scanner app 194 for downloading to code scanners, (iii) user-profiles 198, (iv) merchant website identification codes 140 for merchant businesses, and (v) merchant database 112 including merchant profiles 142. CRPI 192 can include the scanner app 194. Data storage device 188 can comprise a non-transitory computer-readable storage medium readable by processor 182. Processor 182 is configured to execute CRPI 192.

FIG. 8 is a block diagram depicting an example embodiment of merchant server 104. As shown in FIG. 8, merchant server 104 can include (i) a processor 800, (ii) a network interface 802 for transmitting data to and receiving data from communication network 108, (iii) a user interface 804, (iv) a printer 806, and a data storage device 808, all of which can be linked together via a system bus or other connection mechanism 810.

Network interface 802 can interface to merchant computing device 130 using communication link 108. Alternatively, network interface 802 can link to user interface 804 using connection mechanism 810. In accordance with that latter arrangement, user interface 804 can comprise merchant computing device 130. Network interface 802 can receive QR codes from a QR source, transmit QR codes to electronic display device 132. Network interface 802 can receive invoices from the merchant's accounting system.

Printer 806 can comprise a device configured to print or otherwise generate hardcopies of invoices or QR codes. Alternatively or additionally, printer 806 can comprise an interface connectable to the device configured to print or otherwise generate hardcopies of invoices or QR codes.

Data storage device 808 can include (for example, store) CRPI 812, customer data 814, and QR codes 816. CRPI 812 can comprise program instructions that are executable to generate and transmit, to a QR source, requests for QR codes. CRPI 812 can comprise program instructions for receiving invoices from the merchant's accounting system, and for sending the received invoices to printer 804. CRPI 812 can comprise program instructions to process payments carried out at application server 102.

III. Example Operation A

The system 100 can be used to pay a merchant invoice by use of the code scanner 106. The following example describes an application of the system 100 by a user who wishes to pay an invoice from a utility company. In addition to this particular example, the system 100 is also applicable to payment of other types of invoices such as, for example, invoices from telecommunication providers, hospitals, and the like. The merchant (in this example, the utility company) will have already registered on the portal website 120 and created a merchant profile 142 in the merchant database 112. The merchant profile 142 includes a merchant website identification code 140 assigned by the application server 102.

FIG. 6 is a flow chart depicting a set of functions 650 that can be carried out in accordance with one or more example embodiments. The set of functions 650 can be performed to pay the utility company invoice. The utility company can operate merchant server 104. A customer of the utility company can operate code scanner 106 to pay the invoice. The customer can be referred to as a user. The set of functions 650 are shown within blocks 600 through 630. A description of those blocks now follows.

The utility company can provide the user with an invoice that contains, for example, a name and address of the merchant, a name and address of the customer, an invoice number, a date, a description and a corresponding cost of each line item that appears on the invoice, any tax due such as such as sales tax or value-added tax included in the invoice and a total amount due. The invoice can be prepared by the merchant's accounting system.

At block 600, the merchant server 104 provides a payment QR code that encodes the merchant identification code 140 in the merchant profile 142 and all the details contained in the invoice. The payment QR code may be generated by the merchant server 104 or can be served to the merchant server by an external source of QR codes (not shown). The invoice and the payment QR code can be provided, individually or in combination, to the user. For example, the merchant server 104 or printer 804 can print a hardcopy of the invoice that contains the payment QR code and that is then mailed to the user, or can print the QR code separately from the hardcopy of the bill.

At block 602, the user can use the scanner app 164 and the scanner 156 to scan the payment QR code on the hardcopy of the invoice. At block 604, the scanner app 164 decodes the scanned payment QR code to recover the encoded data that it contains namely, the merchant identification code and the invoice details. At block 606 the scanner app 164 displays a page (not shown) on the user interface 154 with all the invoice details.

At block 608, the user can review the invoice details displayed on the page by the scanner app 164 and amend the displayed invoice data, if necessary. After reviewing and amending, if necessary, the invoice data, the user can select, at block 610, a payment instrument to pay the bill.

At block 612, the user can accept the invoice for payment. Accepting the invoice can occur by entering a selection using user interface 154. The scanner app 164 then transmits to the application server 102, at block 614, the merchant identification code, the invoice number, the amount to be paid and the details of a payment instrument to be used for payment (for example, a credit or debit card number, a cardholders name, a card expiry date, a CVC, a PIN, or a mailing code associated with the cardholder's billing address, as stored in the user-profile 110). The mailing code, for example, can include a mailing code, such as a ZIP code, associated assigned to the cardholder's billing address or residence.

Once the details of the selected payment instrument have been received at the application server 102, the particulars of the financial transaction (for example, the amount to be paid, and the merchant and payment details) are sent to a payment processor (not shown) for processing (at block 616).

At block 618, the application server 102 or processor 182, executing CRPI 192, can determine whether the payment was successful or unsuccessful. The payment processor can generate and return a payment status indicator, for example, either successful or unsuccessful. If the payment status is successful, the application server 102 notifies the scanner app 164, at block 620, that payment has been successful and the displayed page refreshes to indicate that the merchant's invoice has been paid (block 622). If, on the other hand, the payment status is unsuccessful, the application server 102 notifies the scanner app 164, at block 624, that payment has been unsuccessful and the page displayed by the scanner app 164 refreshes to request the user to select a different payment instrument and re-attempt payment (block 626).

Re-attempting payment can include the code scanner 106 transmitting payment data, associated with the different payment instrument, to the application server 102 for processing payment of the invoice. If the merchant accepts payments less than the total amount due on the invoice, such as a minimum payment amount, re-attempting payment of the invoice can include using the same payment instrument (or the different payment instrument) with an amount less than the total amount due. Such re-attempt to pay the invoice may be successful if the amount less than the total amount due does not deplete the funds in an account associated with the payment instrument or does not cause a credit limit of the payment to be exceeded.

At block 628, if the payment status indicator is successful, the application server 102 or the network interface 184 can transmit the invoice number and the amount paid by the user to the merchant server 104. Processor 182 can execute CRPI 192 to generate a message (for example, one or more messages) that contains the invoice number and the amount paid. Block 628 can include transmitting that message to merchant server 104.

At block 630, merchant server 104 or processor 800, executing CRPI 810, can process the invoice number and the amount paid according to the merchant's accounting procedures. Processing the invoice number and the amount paid can include receiving the message transmitted block 628. After processing the invoice number and the amount paid, merchant server 104 can transmit, to electronic display device 132 or code scanner 106, a payment receipt showing the amount paid at block 616.

IV. Example Operation B

FIG. 7 is a flow chart depicting a set of functions 750 that can be carried out in accordance with an alternative embodiment. The set of functions 750 can be performed to pay the utility company's invoice or some other invoice. The set of functions 750 are shown within blocks 700 through 730. A description of those blocks now follows.

The utility company can provide the user with an invoice that contains, for example, a name and address of the merchant, a name and address of the customer, an invoice identifier (such as an invoice number), a date, a description and a corresponding cost of each line item that appears on the invoice, any tax due such as such as sales tax or value-added tax included in the invoice and a total amount due. The invoice can be prepared by the merchant's accounting system. The merchant server 104, using printer 804, can print a hardcopy of the invoice.

At block 700, the merchant can affix a sticker bearing a QR code onto the hardcopy of the invoice that is then mailed to the user. Alternatively the merchant server can print the payment QR code as part of the hardcopy invoice. The payment QR code is a static QR code that encodes the merchant identification code 140 in the merchant profile 142. Other examples of ways in which the merchant can provide a static QR code are also possible.

At block 702, the user can use the scanner app 164 and the scanner 156 to scan the payment QR code on the hardcopy of the invoice. At block 704, the scanner app 164 decodes the scanned payment QR code to recover the encoded data that it contains, namely the merchant identification code.

Block 706 includes displaying a data entry form. As an example, the scanner app 164 displays a page (not shown) on the user interface 154 that contains the merchant identification code and a form in which the user can enter the invoice number and an amount to be paid on the invoice. In an alternative arrangement, the scanner app 164 can cause the user interface 154 to display the data entry form without the merchant identification code. In that alternative arrangement, the scanner app 164 can cause the user interface 154 to display a merchant name associated with the merchant identification code. The user of the code scanner 106 may recognize the merchant name but not the merchant identification code. The data storage device 158 can include data that the scanner app 164 can refer to identify the merchant name from the merchant identification code. Additionally or alternatively, the scanner app 164 can request, from the application server 102, the merchant name that is associated with the merchant identification code. Still further, the merchant name can be encoded within the static QR code and decoded by the scanner app 164. In accordance with one or more of the example embodiments, the merchant identification code can be or comprise a business name entered via webpage 200.

At block 708, the user can review and amend the amount to be paid. After reviewing and amending, if necessary, the invoice data, the user can select, at block 710, a payment instrument with which to pay the invoice.

At block 712 the user can accept the invoice for payment. Accepting the invoice can occur by entering a selection using user interface 154. The scanner app 164 then transmits to the application server, at block 714, the merchant identification code, the invoice number, the amount to be paid and the details of the selected payment instrument. Once the details of the selected payment instrument have been received at the application server 102, the particulars of the financial transaction (for example, the amount to be paid, and the merchant and payment details) are sent to a payment processor (not shown) for processing (at block 716).

At block 718, the application server 102 or processor 182, executing CRPI 192, can determine whether the payment was successful. The payment processor can generated and return a payment status indicator, for example, either successful or unsuccessful. If the payment status is successful, the application server 102 notifies the scanner app 164, at block 720, that payment has been successful and the displayed page refreshes to indicate that the merchant's invoice has been paid (block 722). If, on the other hand, the payment status is unsuccessful, the application server 102 notifies the scanner app 164, at block 724, that payment has been unsuccessful and the page displayed by the scanner app 164 refreshes to request the user to select a different payment instrument and re-attempt payment (block 726). Re-attempting payment at block 726 can include re-attempting payment with an amount less than the total amount due, as described above.

At block 728, if the payment status indicator is successful, the application server 102 or network interface 184 can transmit the invoice number and the amount paid by the user to the merchant server 104. Processor 182 can execute CRPI 192 to generate a message (for example, one or more messages) that contains the invoice number and the amount paid. Block 728 can include transmitting that message to merchant server 104.

At block 730, merchant server 104 or processor 800, executing CRPI 810, can process the invoice number and the amount paid according to the merchant's accounting procedures. Processing the invoice number and the amount paid can include receiving the message transmitted block 728. After processing the invoice number and the amount paid, merchant server 104 can transmit, to electronic display device 132 or code scanner 106, a payment receipt showing the amount paid at block 716.

V. Variations and Benefits of Example Embodiments

Clearly, numerous variations and permutations are possible to the embodiments without departing from the scope of this disclosure: Some of these variations and permutations are described below.

1. In accordance with one or more of the disclosed embodiments, the merchant invoice and the payment QR code can be presented to the user in electronic form instead of in hardcopy form. For example, the invoice and the payment QR code can be provided to the user as a digital image. The user of code scanner 106 can then print a hardcopy of the image from which to scan the payment QR code as described, or can display the digital image on an electronic display device 132 and scan the payment QR code directly from the electronic display device 132 in order to initiate payment of the invoice.

With respect to the example embodiment shown in FIG. 6, the QR code provided at block 600 can comprise providing (for example, transmitting) the electronic QR code to electronic display device 132. Similarly, with respect to the example embodiment shown in FIG. 7, the QR code provided at block 700 can comprise providing (for example, transmitting) the electronic QR code to electronic display device 132. Merchant server 104 can receive, from electronic display device 132, a request for an invoice or QR codes prior to providing the electronic QR code at block 600 or block 700. Blocks 600 or 700 can include providing (for example, transmitting) an electronic form of the invoice to electronic display device 132.

2. In accordance with one or more of the disclosed embodiments, instead of the user-profile 110 being stored only on the code scanner 106, the user-profile 110 can be replicated and stored on the application server 102 as a user-profile within user-profiles 198. In this embodiment, the scanner app 164 on the code scanner 106 synchronises changes to the user-profile 110 with the copy of the user-profile on the application server 102 as the changes occur, or periodically, or explicitly under user command. The copy of the user-profile on the application server 102 can then be imported to a different code scanner, for example when the user changes smartphones or in the event the user loses or damages her code scanner 106.

3. In accordance with one or more of the disclosed embodiments, in order to improve security of the system 100, transmission of data from the user-profile 110 to the application server 102 by the scanner app 164 can be encrypted. Similarly, portions of the user-profile 110 transmitted to the application server 102 to modify a user-profile stored within user-profiles 198 can be encrypted for that transmission.

4. In accordance with one or more of the disclosed embodiments, instead of the application server 102 sending the particulars of the financial transaction (for example, the amount due and the payment details) to a payment processor (not shown) for processing, the application server 102 can process the payment itself.

5. In accordance with one or more of the disclosed embodiments, the user-profile 110 on the code scanner 106 can include the user's mobile phone number in addition to the user's e-mail address. In embodiments in which the user-profile 110 is replicated and stored on the application server 102 as well as on the code scanner 106, the application server 102 may notify the user of the success or failure of an invoice payment by one or more of SMS and e-mail messages in addition, or as an alternative, to notification by means of a page refresh by the scanner app 164 on the code scanner 106.

6. The use of Quick Response technology (QR codes), as described in the example embodiments, can enable user interactions in connection with payment at a merchant establishment to be conducted more efficiently than is possible by means of known prior art methods. In accordance with at least one of those example embodiments, once a user has established a user-profile 110, the user need only scan, by means of the code scanner 106, a QR code displayed on a merchant bill website or a hardcopy of the bill in order to effect payment of the bill. The user is spared the tedium of having to tender cash or a physical payment instrument such as a credit or debit card for payment. It is anticipated that the use of QR codes for bill payment in this manner will reduce the tedium of bill payment.

7. In accordance with at least one example embodiment, after establishing the user-profile 110 and scanning the QR code on an invoice, the only user action required to effect payment of the invoice is entering a selection to accept invoice for payment.

8. In accordance with at least one example embodiment, after establishing the user-profile 110 and scanning the QR code on an invoice, the only user action required to effect payment of the invoice is selecting a payment instrument from the user-profile 110 or otherwise entering information regarding the payment instrument.

9. In accordance with at least one example embodiment, after establishing the user-profile 110 and scanning the QR code on an invoice, the only user actions required to effect payment of the invoice is selecting a payment instrument from the user-profile 110 or otherwise entering information regarding the payment instrument, and entering a selection to accept invoice for payment.

10. Data in the user-profile 110 is stored locally in the code scanner 106. This means that sensitive user data such as particulars of payment instruments like credit or debit cards need not be handed over to other persons such as, for example, a waiter or a merchant, thus reducing the possibility of such particulars being misappropriated.

VI. Additional Example Embodiments

The following clauses are offered as further description of the disclosed inventions.

Clause 1—A method comprising:

scanning, using a code scanner, a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data;

decoding, using the code scanner, the first QR code to recover the merchant identification code encoded within the first QR code;

selecting, using the code scanner, a first payment instrument to pay the first invoice;

transmitting, from the code scanner to an application server for an initial attempt of paying the first invoice, the merchant identification code encoded in the first QR code, data pertaining to the first payment instrument, and at least a portion of the first invoice data; and

receiving, at the code scanner from the application server, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

Clause 2—The method of clause 1,

wherein the first QR code encodes the first invoice data of the first invoice, and

wherein decoding the first QR code includes the code scanner recovering the first invoice data encoded within the first QR code,

the method further comprising:

displaying, using the code scanner, the first invoice data recovered from the first QR code.

Clause 3—The method of as in one of clauses 1-2,

wherein at least one of the merchant identification code and the first invoice data encoded within the first QR code is encrypted, and

wherein decoding the first QR code includes the code scanner using an encryption key to decrypt the at least one of the merchant identification code and the first invoice data.

Clause 4—The method as in one of clauses 1-3, further comprising:

amending, using the code scanner, a portion of the first invoice data,

wherein the at least a portion of the first invoice data transmitted to the application server comprises the amended portion of the first invoice data.

Clause 5—The method of clause 4, wherein the amended portion of the first invoice data comprises at least one of a payment amount and a billing address associated with a user of the code scanner.

Clause 6—The method as in one of clauses 1-2, further comprising:

scanning, using the code scanner, a second QR code that encodes a merchant identification code assigned to a merchant that generates a second invoice, wherein the second invoice comprises second invoice data;

decoding, using the code scanner, the second QR code to recover the merchant identification code encoded within the second QR code;

selecting, using the code scanner, a first payment instrument to pay the second invoice;

transmitting, from the code scanner to the application server for an initial attempt of paying the second invoice, the merchant identification code encoded in the second QR code, data pertaining to the first payment instrument selected to pay the second invoice, and at least a portion of the second invoice data;

receiving, at the code scanner from the application server, second status data indicating whether the initial attempt of paying the second invoice was successful or unsuccessful; and

if the second status data indicates the initial attempt of paying the second invoice was successful, then displaying, using the code scanner, a notification that payment of the second invoice was successful, otherwise, if the second status data indicates the initial attempt of paying the second invoice was unsuccessful, then displaying, using the code scanner, a notification that payment of the second invoice was unsuccessful.

Clause 7—The method of clause 6,

wherein the merchant that generates the first invoice is the merchant that generates the second invoice,

wherein the merchant identification code encoded in the first QR code is identical to the merchant identification code encoded in the second QR code.

Clause 8—The method of clause 6,

wherein the merchant that generates the first invoice is different than the merchant that generates the second invoice,

wherein the merchant identification code encoded in the first QR code differs from the merchant identification code encoded in the second QR code.

Clause 9—The method as in one of clauses 6-8, wherein the payment instrument selected to pay the second invoice is the first payment instrument.

Clause 10—The method as in one of clauses 6-8, wherein the payment instrument selected to pay the second invoice is a payment instrument other than the first payment instrument.

Clause 11—The method as in one of clauses 6-10,

wherein the second status data indicates the initial attempt of paying the second invoice was unsuccessful,

the method further comprising:

transmitting, from the code scanner to the application server, data for performing at least one additional attempt of paying the second invoice;

receiving, at the code scanner from the application server, data indicating that an additional attempt of paying the second invoice was successful and then displaying, using the code scanner, a notification that the additional attempt of paying the second invoice was successful.

Clause 12—The method of clause 11, further comprising:

selecting, using the code scanner, a second payment instrument to pay the second invoice,

wherein the data for performing the at least one additional attempt of paying the second invoice comprises data pertaining to the second payment instrument selected to pay the second invoice.

Clause 13—The method of clause 11, further comprising:

selecting, using the code scanner, a partial payment amount that is less than a total amount due on the second invoice;

wherein the data for performing the at least one additional attempt of paying the second invoice comprises the partial payment amount that is less than a total amount due on the second invoice, and

wherein successful payment of the second invoice occurs by paying the partial payment amount that is less than a total amount due on the second invoice.

Clause 14—The method of clause 13, wherein the notification that the additional attempt of paying the second invoice was successful indicates a remaining balance due to a merchant.

Clause 15—The method of clause 1,

wherein the first status data indicates the initial attempt of paying the first invoice was unsuccessful,

the method further comprising:

transmitting, from the code scanner to the application server, data for performing at least one additional attempt of paying the first invoice;

receiving, at the code scanner from the application server, data indicating that an additional attempt of paying the first invoice was successful and then displaying, using the code scanner, a notification that the additional attempt of paying the first invoice was successful.

Clause 16—The method of clause 15, further comprising:

selecting, using the code scanner, a second payment instrument to pay the first invoice,

wherein the data for performing the at least one additional attempt of paying the first invoice comprises data pertaining to the second payment instrument.

Clause 17—The method of clause 15, further comprising:

selecting, using the code scanner, a partial payment amount that is less than a total amount due on the first invoice;

wherein the data for performing the at least one additional attempt of paying the first invoice comprises the partial payment amount, and

wherein successful payment of the first invoice occurs by paying the partial payment amount that is less than a total amount due on the first invoice.

Clause 18—The method as in one of clauses 15-17, wherein the notification that the additional attempt of paying the first invoice was successful indicates a remaining balance due to a merchant.

Clause 19—The method as in one of clauses 1-18, wherein scanning the first QR code comprises scanning the first QR code from a paper copy of the first invoice.

Clause 20—The method as in one of clauses 1-19, wherein scanning the first QR code comprises scanning the first QR code from the first invoice displayed on a QR code display device.

Clause 21—The method as in one of clauses 1-20, wherein the data pertaining to the first payment instrument comprises at least one of a credit card number, a debit card number, a cardholder name, a card expiry date, a card verification code, a personal identification number, and a mailing code associated with the cardholder.

Clause 22—The method as in one of clauses 1-21, wherein if the first status data indicates the initial attempt of paying the first invoice was successful, then displaying, using the code scanner, a notification that payment of the first invoice was successful, otherwise, if the first status data indicates the initial attempt of paying the first invoice was unsuccessful, then displaying, using the code scanner, a notification that payment of the first invoice was unsuccessful.

Clause 23—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructions executable by the processor to carry out a method of any one of clauses 1 through 22.

Clause 24—A computer-readable data storage device comprising computer-readable program instructions executable by a processor to carry out a method of any one of clauses 1 through 22.

Clause 25—The computer-readable data storage device of clause 24, wherein the computer-readable data storage device is a non-transitory computer-readable data storage device.

Clause 26—A computer data signal embodied in a carrier wave, the computer data signal comprising computer-readable program instructions for performing a method of any one of clauses 1 through 22.

Clause 27—A reproducible computer-readable signal carrying computer-readable program instructions for performing a method of any one of clauses 1 through 22.

Clause 28—A computer software product for registering a user of a data processing system with a merchant server, the software product comprising instructions, that when executed by a processor of the data processing system will cause the data processing system to carry out the functions of any one clauses 1 through 22.

Clause 29—A code scanner comprising:

a processor;

a scanner configured to scan a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data;

a data storage device that stores a computer-readable scanner application executable by the processor to decode the first QR code to recover the merchant identification code encoded within the first QR code;

a user interface configured to select a first payment instrument to pay the first invoice;

a network interface,

wherein the network interface is configured to transmit, to an application server for an initial attempt of paying the first invoice, the merchant identification code encoded in the first QR code, data pertaining to the first payment instrument, and at least a portion of the first invoice data, and

wherein the network interface is configured to receive, from the application server, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

Clause 30—The code scanner of clause 29, wherein, if the first status data indicates the initial attempt of paying the first invoice was successful, then the user interface displays a notification that payment of the first invoice was successful, otherwise, if the first status data indicates the initial attempt of paying the first invoice was unsuccessful, then the user interface displays a notification that payment of the first invoice was unsuccessful.

Clause 31—The code scanner as in one of clauses 28-29,

wherein the first QR code encodes the first invoice data of the first invoice,

wherein decoding the first QR code includes the processor recovering the first invoice data encoded within the first QR code, and

wherein the user interface comprises a display device that displays the first invoice data recovered from the first QR code.

Clause 32—The code scanner of clause 31,

wherein at least one of the merchant identification code and the first invoice data encoded within the first QR code is encrypted, and

wherein decoding the first QR code includes the processor using an encryption key to decrypt the at least one of the merchant identification code and the first invoice data.

Clause 33—The code scanner as in one of clauses 31-32,

wherein the processor amends a portion of the first invoice data, and

wherein the at least a portion of the first invoice data transmitted to the application server comprises the amended portion of the first invoice data.

Clause 34—The code scanner of clause 33, wherein the amended portion of the first invoice data comprises at least one of a payment amount and a billing address associated with a user of the code scanner.

Clause 35—The code scanner as in one of clauses 31-34,

wherein the scanner is configured to scan a second QR code that encodes a merchant identification code assigned to a merchant that generates a second invoice, wherein the second invoice comprises second invoice data,

wherein the processor decodes the second QR code to recover the merchant identification code encoded within the second QR code,

wherein the user interface is configured to select a first payment instrument to pay the second invoice;

wherein the network interface is configured to transmit, to the application server for an initial attempt of paying the second invoice, the merchant identification code encoded in the second QR code, data pertaining to the first payment instrument selected to pay the second invoice, and at least a portion of the second invoice data, and

wherein the network interface is configured to receive, from the application server, second status data indicating whether the initial attempt of paying the second invoice was successful or unsuccessful, and

wherein, if the second status data indicates the initial attempt of paying the second invoice was successful, then displaying, using the code scanner, a notification that payment of the second invoice was successful, otherwise, if the second status data indicates the initial attempt of paying the second invoice was unsuccessful, then displaying, using the code scanner, a notification that payment of the second invoice was unsuccessful.

Clause 36—The code scanner of clause 35,

wherein the merchant that generates the first invoice is the merchant that generates the second invoice, and

wherein the merchant identification code encoded in the first QR code is identical to the merchant identification code encoded in the second QR code.

Clause 37—The code scanner of clause 35,

wherein the merchant that generates the first invoice is different than the merchant that generates the second invoice, and

wherein the merchant identification code encoded in the first QR code differs from the merchant identification code encoded in the second QR code.

Clause 38—The code scanner as in one of clauses 35-37, wherein the payment instrument selected to pay the second invoice is the first payment instrument.

Clause 39—The code scanner as in one of clauses 35-37, wherein the payment instrument selected to pay the second invoice is a payment instrument other than the first payment instrument.

Clause 40—The code scanner as in one of clauses 35-39,

wherein the second status data indicates the initial attempt of paying the second invoice was unsuccessful,

wherein the network interface is configured to transmit, to the application server, data for performing at least one additional attempt of paying the second invoice,

wherein the network interface is configured to receive, from the application server, data indicating that an additional attempt of paying the second invoice was successful,

wherein the user interface displays a notification that the additional attempt of paying the second invoice was successful.

Clause 41—The code scanner of clause 40,

wherein the user interface is configured to select a second payment instrument to pay the second invoice, and

wherein the data for performing the at least one additional attempt of paying the second invoice comprises data pertaining to the second payment instrument selected to pay the second invoice.

Clause 42—The code scanner of clause 40,

wherein the user interface is configured to select a partial payment amount that is less than a total amount due on the second invoice,

wherein the data for performing the at least one additional attempt of paying the second invoice comprises the partial payment amount that is less than a total amount due on the second invoice, and

wherein successful payment of the second invoice occurs by paying the partial payment amount that is less than a total amount due on the second invoice.

Clause 43—The code scanner of clause 42, wherein the notification that the additional attempt of paying the second invoice was successful indicates a remaining balance due to a merchant.

Clause 44—The code scanner of clause 29,

wherein the first status data indicates the initial attempt of paying the first invoice was unsuccessful,

wherein the network interface is configured to transmit, to the application server, data for performing at least one additional attempt of paying the first invoice;

wherein the network interface is configured to receive, from the application server, data indicating that an additional attempt of paying the first invoice was successful,

wherein the user interface displays a notification that the additional attempt of paying the first invoice was successful.

Clause 45—The code scanner of clause 44,

wherein the user interface is configured to select a second payment instrument to pay the first invoice, and

wherein the data for performing the at least one additional attempt of paying the first invoice comprises data pertaining to the second payment instrument.

Clause 46—The code scanner as in one of clauses 44-45,

wherein the user interface is configured to select a partial payment amount that is less than a total amount due on the first invoice,

wherein the data for performing the at least one additional attempt of paying the first invoice comprises the partial payment amount, and

wherein successful payment of the first invoice occurs by paying the partial payment amount that is less than a total amount due on the first invoice.

Clause 47—The code scanner of clause 46, wherein the notification that the additional attempt of paying the first invoice was successful indicates a remaining balance due to a merchant.

Clause 48—The code scanner as in one of clauses 29-47, wherein scanning the first QR code comprises scanning the first QR code from a paper copy of the first invoice.

Clause 49—The code scanner as in one of clauses 29-47, wherein scanning the first QR code comprises scanning the first QR code from the first invoice displayed on a QR code display device.

Clause 50—The code scanner as in one of clauses 29-49, wherein the data pertaining to the first payment instrument comprises at least one of a credit card number, a debit card number, a cardholder name, a card expiry date, a card verification code, a personal identification number, and a mailing code associated with the cardholder.

Clause 51—A method comprising:

receiving, at an application server from a first code scanner, a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data;

receiving, at the application server from the first code scanner, data pertaining to a first payment instrument selected for an initial attempt of paying the first invoice;

receiving, at the application server from the first code scanner, at least a portion of the first invoice data;

determining, at the application server, whether processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data results in successful or unsuccessful payment of the first invoice; and

transmitting, from the application server to the first code scanner, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

Clause 52—The method of clause 51, further comprising:

transmitting, from the application server to a merchant server, an identifier of the first invoice and an amount paid towards the first invoice.

Clause 53—The method as in one of clauses 51-52, further comprising:

storing, within a data storage device of the application server, a user-profile associated with a user of the first code scanner;

receiving, at the application server, a request to transmit the user-profile to a second code scanner; and

transmitting the user-profile from the application server to the second code scanner.

Clause 54—The method of clause 53,

wherein user-profile comprises security data for authorizing transmission of the user-profile from the application server to a code scanner,

wherein the request to transmit the user-profile comprises the security data and the application server determines the security data in the request matches the security data in the user-profile prior to transmitting the user-profile to the second code scanner.

Clause 55—The method as in one of clauses 53-54, further comprising:

storing, within the data storage device of the application server, at least one other user-profile associated with at least one other user of another code scanner,

wherein each of the at least one other user profile comprises data for paying invoices for the user associated with that user profile.

Clause 56—The method as in one of clauses 53-55, further comprising:

receiving, at the application server, data to modify the user-profile associated with the user of the first code scanner,

modifying, at the data storage device, the user-profile to comprise the data to modify the user-profile; and

storing, at the data storage device, the modified user-profile.

Clause 57—The method as in one of clauses 51-56, further comprising:

transmitting the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data to a payment processor,

wherein processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data occurs at the payment processor.

Clause 58—The method of clause 57, wherein the payment processor is remote from application server.

Clause 59—The method of clause 57, wherein the payment processor is within the application server.

Clause 60—The method as in one of clauses 51-59, further comprising:

transmitting, from the application server to the first code scanner, a scanner application for decoding a quick response (QR) code on an invoice,

wherein the merchant identification code is encoded within a QR code on the first invoice.

Clause 61—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructions executable by the processor to carry out a method of any one of clauses 51 through 60.

Clause 62—A computer-readable data storage device comprising computer-readable program instructions executable by a processor to carry out a method of any one of clauses 51 through 60.

Clause 63—The computer-readable data storage device of clause 62, wherein the computer-readable data storage device is a non-transitory computer-readable data storage device.

Clause 64—A computer data signal embodied in a carrier wave, the computer data signal comprising computer-readable program instructions for performing a method of any one of clauses 51 through 60.

Clause 65—A reproducible computer-readable signal carrying computer-readable program instructions for performing a method of any one of clauses 51 through 60.

Clause 66—A computer software product for registering a user of a data processing system with a merchant server, the software product comprising instructions, that when executed by a processor of the data processing system will cause the data processing system to carry out the functions of any one clauses 51 through 60.

Clause 67—An application server comprising:

a processor;

a data storage device comprising computer-readable program instructions;

a network interface to receive, from a first code scanner, (i) a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (ii) data pertaining to a first payment instrument selected for an initial attempt of paying the first invoice, and (iii) at least a portion of the first invoice data;

wherein the program instructions are executable by the processor to determine whether processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data results in successful or unsuccessful payment of the first invoice;

wherein the program instructions are executable by the processor to cause the network interface to transmit first status data to the first code scanner, and

wherein the first status data indicates whether the initial attempt of paying the first invoice was successful or unsuccessful.

Clause 68—The application server of clause 67, wherein the network interface transmits, to a merchant server, an identifier of the first invoice and an amount paid towards the first invoice.

Clause 69—The application server as in one of clauses 67-68,

wherein the data storage device stores a user-profile associated with a user of the first code scanner,

wherein the network interface receives, a request to transmit the user-profile to a second code scanner, and

wherein the network interface transmits the user-profile to the second code scanner.

Clause 70—The application server of clause 69,

wherein user-profile comprises security data for authorizing transmission of the user-profile from the application server to a code scanner,

wherein the request to transmit the user-profile comprises the security data and the application server determines the security data in the request matches the security data in the user-profile prior to transmitting the user-profile to the second code scanner.

Clause 71—The application server as in one of clauses 69-70,

wherein the data storage device stores at least one other user-profile associated with at least one other user of another code scanner, and

wherein each of the at least one other user profile comprises data for paying invoices for the user associated with that user profile.

Clause 72—The application server as in one of clauses 69-71,

wherein the network interface receives data to modify the user-profile associated with the user of the first code scanner,

wherein the processor modifies the user-profile with the data to modify the user-profile; and

wherein the data storage device stores the modified user-profile.

Clause 73—The application server as in one of clauses 67-72,

wherein the network interface transmits the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data to a payment processor,

wherein processing the merchant identification code, the data pertaining to the first payment instrument, and the at least a portion of the first invoice data occurs at the payment processor.

Clause 74—The application server of clause 73, wherein the payment processor is remote from application server.

Clause 75—The application server of clause 73, wherein the payment processor is within the application server.

Clause 76—The application server as in one of clauses 67-75,

wherein the network interface transmits, to the first code scanner, a scanner application for decoding a quick response (QR) code on an invoice,

wherein the merchant identification code is encoded within a QR code on the first invoice.

Clause 77—A method comprising:

receiving, at a merchant server, a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data;

providing, from the merchant server to a code scanner user, the first invoice and the first QR code; and

receiving, at the merchant server from an application server that processes payments of invoices, a message indicating a payment towards the first invoice was successfully made.

Clause 78—The method of clause 77, further comprising:

displaying, on a merchant computing device, a merchant portal website configured for entering data to register a first merchant with an application server that processes invoice payments for merchants;

transmitting, to the application sever from the merchant computing device, data entered onto the merchant portal website; and

receiving, at the merchant server from the application server, a notification indicating the merchant is registered with the application server for processing invoice payments for the first merchant.

Clause 79—The method of clause 78,

wherein the merchant portal web site comprises a plurality of fields for entering the data, and

wherein the plurality of fields includes a field selected from the group consisting of a business name field, a business street address field, a business city field, a business state field, a business mailing code field, a business country field, a business type field, and an account identifier field.

Clause 80—The method of clause 79, wherein entering data into at least one field of the plurality of fields can occur by selecting the data from predetermined field data.

Clause 81—The method as in one of clauses 78-80,

wherein the data entered to register the first merchant comprise a plurality of data items, and

wherein the plurality of data items includes a data item selected from the group consisting of a business name, a business street address, a business city, a business state, a business mailing code, a business country, a business type, and an account identifier.

Clause 82—The method as in one of clauses 77-81, further comprising:

printing, using a printer of the merchant server, a hardcopy of the first invoice and the first QR code,

wherein providing the first invoice and the first QR code comprises providing the hardcopy of the first invoice and the first QR code to the code scanner user.

Clause 83—The method of clause 82,

wherein printing the first QR code comprises printing an adhesive sticker showing the first QR code, and

wherein the adhesive sticker is adhered to the hardcopy of the first invoice.

Clause 84—The method as in one of clauses 77-81, wherein providing the first invoice and the first QR code to the code scanner user comprising transmitting, from the merchant server to a code scanner, an electronic version of the first invoice and the first QR code.

Clause 85—The method as in one of clauses 77-84, wherein the first QR code is a static

QR code that encodes the merchant identification code but does not encode any of the first invoice data.

Clause 86—The method of clause 85, wherein the merchant identification code is a unique numeric code assigned to the merchant by the application server.

Clause 87—The method of clause 85, wherein the merchant identification code is a unique alphanumeric code assigned to the merchant by the application server.

Clause 88—The method of clause 85, wherein the merchant identification code is a unique business name associated with the merchant.

Clause 89—The method as in one of clauses 77-88, wherein the first QR code further encodes the first invoice data.

Clause 90—The method as in one of clauses 77-89, wherein the first invoice data comprises one of more of the following invoice elements: a merchant name, a merchant address, a customer name, a customer address, an invoice identifier, a date, a description and a corresponding cost of each line item that appears on the first invoice, a tax amount, and a total amount due.

Clause 91—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructions executable by the processor to carry out a method of any one of clauses 77 through 90.

Clause 92—A computer-readable data storage device comprising computer-readable program instructions executable by a processor to carry out a method of any one of clauses 77 through 90.

Clause 93—The computer-readable data storage device of clause 92, wherein the computer-readable data storage device is a non-transitory computer-readable data storage device.

Clause 94—A computer data signal embodied in a carrier wave, the computer data signal comprising computer-readable program instructions for performing a method of any one of clauses 77 through 90.

Clause 95—A reproducible computer-readable signal carrying computer-readable program instructions for performing a method of any one of clauses 77 through 90.

Clause 96—A computer software product for registering a user of a data processing system with a merchant server, the software product comprising instructions, that when executed by a processor of the data processing system will cause the data processing system to carry out the functions of any one clauses 77 through 90.

Clause 97—A merchant server comprising:

a processor;

a data storage device comprising computer readable program instructions; and

a network interface that (i) receives a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data, (ii) transmits the first invoice and the first QR code; and (iii) receives, from an application server that processes payments of invoices, a message indicating a payment towards the first invoice was successfully made.

Clause 98—The merchant server of clause 97, further comprising:

a merchant computing device that displays a merchant portal website configured for entering data to register a first merchant with an application server that processes invoice payments for merchants,

wherein the network interface is configured to transmit, to the application sever from the merchant computing device, data entered onto the merchant portal website, and

wherein the network interface is configured to receive, from the application server, a notification indicating the merchant is registered with the application server for processing invoice payments for the first merchant.

Clause 99—The merchant server as in one of clauses 97-98,

wherein the merchant portal website comprises a plurality of fields for entering the data, and

wherein the plurality of fields includes a field selected from the group consisting of a business name field, a business street address field, a business city field, a business state field, a business mailing code field, a business country field, a business type field, and an account identifier field.

Clause 100—The merchant server of clause 99, wherein entering data into at least one field of the plurality of fields can occur by selecting the data from predetermined field data.

Clause 101—The merchant server as in one of clauses 98-100, wherein the data entered to register the first merchant comprise a plurality of data items, and

wherein the plurality of data items includes a data item selected from the group consisting of a business name, a business street address, a business city, a business state, a business mailing code, a business country, a business type, and an account identifier.

Clause 102—The merchant server as in one of clauses 97-101, further comprising:

a printer that prints a hardcopy of the first invoice and the first QR code,

wherein the network interface transmits the first invoice and the first QR code to the printer,

wherein the printer prints a hardcopy of the first invoice and the first QR code, and

wherein payment of the first invoice occurs after a code scanner scans the hardcopy of the first invoice and the first QR code.

Clause 103—The merchant server of clause 102,

wherein printing the first QR code comprises printing an adhesive sticker showing the first QR code, and

wherein the adhesive sticker is adhered to the hardcopy of the first invoice.

Clause 104—The merchant server of clause 97, wherein transmitting the first invoice and the first QR code comprises the network interface transmitting an electronic version of the first invoice and the first QR code to a code scanner.

Clause 105—The merchant server as in one of clauses 97-104, wherein the first QR code is a static QR code that encodes the merchant identification code but does not encode any of the first invoice data.

Clause 106—The merchant server of clause 105, wherein the merchant identification code is a unique numeric code assigned to the merchant by the application server.

Clause 107—The merchant server of clause 105, wherein the merchant identification code is a unique alphanumeric code assigned to the merchant by the application server.

Clause 108—The merchant server of clause 105, wherein the merchant identification code is a unique business name associated with the merchant.

Clause 109—The merchant server as in one of clauses 97-108, wherein the first QR code further encodes the first invoice data.

Clause 110—The merchant server as in one of clauses 97-109, wherein the first invoice data comprises one of more of the following invoice elements: a merchant name, a merchant address, a customer name, a customer address, an invoice identifier, a date, a description and a corresponding cost of each line item that appears on the first invoice, a tax amount, and a total amount due.

Clause 111—A method carried out by a data processing system for transferring funds from a first party with a first party device to a second party with a second party device, using a financial server which has a first party wallet for storing funds of the first party and a second party wallet for storing funds of the second party, wherein there is generated a unique identifier for a transaction in which funds will be transferred from the first party to the second party; using the unique identifier the first party authorises the financial server to transfer funds stored in the first party wallet to the second party; the financial server transfers funds from the first party wallet to the second party wallet in accordance with the authorisation received from the first party; and the financial server notifies the second party that the transaction has taken place.

Clause 112—The method of clause 111, wherein the first party is a client and the second party is a merchant and the financial transaction is for the client to pay a bill from the merchant, the method comprising the following steps carried out on the first party device:

scanning an encoding of the bill;

in response to scanning the encoding of the bill, transmitting the encoding of the bill to the financial server;

receiving, from the financial server, content of the bill, wherein the content of the bill includes at least an itemized list of purchases;

in response to receiving the content of the bill, prompting selection of a service charge from a list of service charges;

receiving a selected service charge enumerated in the list of service charges; and

in response to receiving the selected service charge, adding the selected service charge to the bill and transmitting authorization, to the financial server, to transfer a total amount from the first party wallet to the second party wallet, wherein the total amount includes charges associated with the itemized list of purchases and the selected service charge.

VII. Conclusion

Example embodiments have been described above. Those skilled in the art will understand that changes and modifications can be made to the described embodiments without departing from the true scope and spirit of the present invention, which is defined by the claims.

This detailed description describes various features and functions of the disclosed systems, devices, and methods with reference to the accompanying figures. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, figures, and claims are not meant to be limiting. Other embodiments can be used, and other changes can be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.

With respect to any or all of the message flow diagrams, scenarios, and flow charts in the figures and as discussed herein, each step, block and/or communication can represent a processing of information and/or a transmission of information in accordance with example embodiments. Alternative embodiments are included within the scope of these example embodiments. In these alternative embodiments, for example, functions described as steps, blocks, transmissions, communications, requests, responses, and/or messages can be executed out of order from that shown or discussed, including in substantially concurrent or in reverse order, depending on the functionality involved. Further, more or fewer steps, blocks and/or functions can be used with any of the message flow diagrams, scenarios, and flow charts discussed herein, and these message flow diagrams, scenarios, and flow charts can be combined with one another, in part or in whole.

A step or block that represents a processing of information can correspond to circuitry that can be configured to perform the specific logical functions of a herein-described method or technique. Alternatively or additionally, a step or block that represents a processing of information can correspond to a module, a segment, or a portion of program code (including related data). The program code can include one or more instructions executable by a processor for implementing specific logical functions or actions in the method or technique. The program code and/or related data can be stored on any type of computer-readable medium such as a storage device including a disk or hard drive or other storage media.

The computer-readable medium can include non-transitory computer-readable media such as computer-readable media that stores data for short periods of time like register memory, processor cache, and/or random access memory (RAM). The computer-readable media can include non-transitory computer-readable media that stores program code and/or data for longer periods of time, such as secondary or persistent long term storage, like read only memory (ROM), optical or magnetic disks, and/or compact-disc read only memory (CD-ROM), for example. The computer-readable media can be any other volatile or non-volatile storage systems. A computer-readable medium can be considered a computer-readable storage medium, for example, or a tangible storage device. Any data identified as being stored within a data storage device or transmitted to a device for storage within a data storage device can comprise a computer data signal embodied in a carrier wave.

Moreover, a step or block that represents one or more information transmissions can correspond to information transmissions between software and/or hardware modules in the same physical device. However, other information transmissions can be between software modules and/or hardware modules in different physical devices.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting.

Claims

1. A method comprising:

scanning, using a code scanner, a first quick response (QR) code that encodes a merchant identification code assigned to a merchant that generates a first invoice, wherein the first invoice comprises first invoice data;
decoding, using the code scanner, the first QR code to recover the merchant identification code encoded within the first QR code;
selecting, using the code scanner, a first payment instrument to pay the first invoice;
transmitting, from the code scanner to an application server for an initial attempt of paying the first invoice, the merchant identification code encoded in the first QR code, data pertaining to the first payment instrument, and at least a portion of the first invoice data; and
receiving, at the code scanner from the application server, first status data indicating whether the initial attempt of paying the first invoice was successful or unsuccessful.

2. The method of claim 1,

wherein the first QR code encodes the first invoice data of the first invoice, and
wherein decoding the first QR code includes the code scanner recovering the first invoice data encoded within the first QR code,
the method further comprising:
displaying, using the code scanner, the first invoice data recovered from the first QR code.

3. The method of claim 2,

wherein at least one of the merchant identification code and the first invoice data encoded within the first QR code is encrypted, and
wherein decoding the first QR code includes the code scanner using an encryption key to decrypt the at least one of the merchant identification code and the first invoice data.

4. The method of claim 2, further comprising:

amending, using the code scanner, a portion of the first invoice data,
wherein the at least a portion of the first invoice data transmitted to the application server comprises the amended portion of the first invoice data.

5. The method of claim 4, wherein the amended portion of the first invoice data comprises at least one of a payment amount and a billing address associated with a user of the code scanner.

6. The method of claim 2, further comprising:

scanning, using the code scanner, a second QR code that encodes a merchant identification code assigned to a merchant that generates a second invoice, wherein the second invoice comprises second invoice data;
decoding, using the code scanner, the second QR code to recover the merchant identification code encoded within the second QR code;
selecting, using the code scanner, a first payment instrument to pay the second invoice;
transmitting, from the code scanner to the application server for an initial attempt of paying the second invoice, the merchant identification code encoded in the second QR code, data pertaining to the first payment instrument selected to pay the second invoice, and at least a portion of the second invoice data;
receiving, at the code scanner from the application server, second status data indicating whether the initial attempt of paying the second invoice was successful or unsuccessful; and
if the second status data indicates the initial attempt of paying the second invoice was successful, then displaying, using the code scanner, a notification that payment of the second invoice was successful, otherwise, if the second status data indicates the initial attempt of paying the second invoice was unsuccessful, then displaying, using the code scanner, a notification that payment of the second invoice was unsuccessful.

7. The method of claim 6,

wherein the merchant that generates the first invoice is the merchant that generates the second invoice,
wherein the merchant identification code encoded in the first QR code is identical to the merchant identification code encoded in the second QR code.

8. The method of claim 6,

wherein the merchant that generates the first invoice is different than the merchant that generates the second invoice,
wherein the merchant identification code encoded in the first QR code differs from the merchant identification code encoded in the second QR code.

9. The method of claim 6, wherein the payment instrument selected to pay the second invoice is the first payment instrument.

10. The method of claim 6, wherein the payment instrument selected to pay the second invoice is a payment instrument other than the first payment instrument.

11. The method of claim 6,

wherein the second status data indicates the initial attempt of paying the second invoice was unsuccessful,
the method further comprising:
transmitting, from the code scanner to the application server, data for performing at least one additional attempt of paying the second invoice;
receiving, at the code scanner from the application server, data indicating that an additional attempt of paying the second invoice was successful and then displaying, using the code scanner, a notification that the additional attempt of paying the second invoice was successful.

12. The method of claim 11, further comprising:

selecting, using the code scanner, a second payment instrument to pay the second invoice,
wherein the data for performing the at least one additional attempt of paying the second invoice comprises data pertaining to the second payment instrument selected to pay the second invoice.

13. The method of claim 11, further comprising:

selecting, using the code scanner, a partial payment amount that is less than a total amount due on the second invoice;
wherein the data for performing the at least one additional attempt of paying the second invoice comprises the partial payment amount that is less than a total amount due on the second invoice, and
wherein successful payment of the second invoice occurs by paying the partial payment amount that is less than a total amount due on the second invoice.

14. The method of claim 13, wherein the notification that the additional attempt of paying the second invoice was successful indicates a remaining balance due to a merchant.

15. The method of claim 1,

wherein the first status data indicates the initial attempt of paying the first invoice was unsuccessful,
the method further comprising:
transmitting, from the code scanner to the application server, data for performing at least one additional attempt of paying the first invoice;
receiving, at the code scanner from the application server, data indicating that an additional attempt of paying the first invoice was successful and then displaying, using the code scanner, a notification that the additional attempt of paying the first invoice was successful.

16. The method of claim 15, further comprising:

selecting, using the code scanner, a second payment instrument to pay the first invoice,
wherein the data for performing the at least one additional attempt of paying the first invoice comprises data pertaining to the second payment instrument.

17. The method of claim 15, further comprising:

selecting, using the code scanner, a partial payment amount that is less than a total amount due on the first invoice;
wherein the data for performing the at least one additional attempt of paying the first invoice comprises the partial payment amount, and
wherein successful payment of the first invoice occurs by paying the partial payment amount that is less than a total amount due on the first invoice.

18. The method of claim 17, wherein the notification that the additional attempt of paying the first invoice was successful indicates a remaining balance due to a merchant.

19. The method of claim 1, wherein scanning the first QR code comprises scanning the first QR code from a paper copy of the first invoice.

20. The method of claim 1, wherein scanning the first QR code comprises scanning the first QR code from the first invoice displayed on a QR code display device.

21-110. (canceled)

Patent History
Publication number: 20140289107
Type: Application
Filed: Nov 12, 2012
Publication Date: Sep 25, 2014
Inventor: Martin Paul Moshal (Queens Way Quay)
Application Number: 14/356,568
Classifications
Current U.S. Class: Bill Distribution Or Payment (705/40)
International Classification: G06Q 20/10 (20060101);