US20170364936A1 - Computer-implemented electronic coupon system and methods using a blockchain - Google Patents
Computer-implemented electronic coupon system and methods using a blockchain Download PDFInfo
- Publication number
- US20170364936A1 US20170364936A1 US15/617,352 US201715617352A US2017364936A1 US 20170364936 A1 US20170364936 A1 US 20170364936A1 US 201715617352 A US201715617352 A US 201715617352A US 2017364936 A1 US2017364936 A1 US 2017364936A1
- Authority
- US
- United States
- Prior art keywords
- smartcoupon
- data
- blockchain
- transaction record
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0222—During e-commerce, i.e. online transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/204—Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/387—Payment using discounts or coupons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0238—Discounts or incentives, e.g. coupons or rebates at point-of-sale [POS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Definitions
- This patent specification relates to the field of a coupon processing system and method. More particularly, the present patent specification relates to an electronic coupon processing system and methods for generating and processing of electronic coupons.
- Coupons are promotional tools designed to motivate one or more desired consumer behaviors such as new product trial or switching from another competing product.
- a coupon gives the holder the right to receive a discount under the certain conditions (business rules) as they are defined in the coupon. Historically these rules are printed on the coupon and/or embedded in the barcode included as part of the coupon.
- a computer implemented electronic coupon system using a blockchain may include: a client device having a display screen and an input interface for receiving input from a user; a retailer POS terminal having a display screen and an input interface for receiving input; a computing platform having a processor, a memory in communication with the processor; issuing logic stored in the memory, executable by the processor; and blockchain logic stored in the memory, executable by the processor.
- the issuing logic may be configured to create a smart coupon transaction record having data which includes a smartcoupon token, and the issuing logic may be configured to provide the smart coupon transaction record to a blockchain database.
- the blockchain logic may be configured to determine if the smart coupon transaction record is valid, and the blockchain logic may be configured to publish the smart coupon transaction record to the blockchain database, the smartcoupon transaction record including an issuer public key for the issuer that published the smartcoupon transaction record.
- the system may include redemption logic stored in the memory, executable by the processor.
- the redemption logic may be configured to receive transaction data describing the details of a retail transaction and to provide smartcoupon identification data to the blockchain logic.
- the blockchain logic may be configured to retrieve a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database.
- the redemption logic may also be configured to compare business rules of smartcoupon token to transaction information to determine if smartcoupon is valid and configured to apply the unit value of valid smart coupon to the retail transaction.
- the transaction data describing a product may include a universal product code (upc) and the product identification code of the transaction data describing a product is required to match the product identification code from the retrieved smartcoupon token in order for the smartcoupon to be determined valid.
- upc universal product code
- the redemption logic may be configured to create a redemption token which includes the smartcoupon identification data of smartcoupon applied to the retail transaction.
- the redemption logic may also be configured to store the redemption token in smartcoupon transaction record and configured to provide this smartcoupon transaction record to a blockchain database.
- the blockchain logic may be configured to determine if the smart coupon transaction record is valid and to publish the smart coupon transaction record to the blockchain database.
- a computer implemented method for providing an electronic coupon system using a blockchain may include the steps of: creating a smart coupon transaction record having data which includes a smartcoupon token; providing the smart coupon transaction record to a blockchain database; determining if the smart coupon transaction record is valid; and publishing the smart coupon transaction record to the blockchain database.
- the method may include the steps of: receiving transaction data describing a product of a retail transaction; receiving smartcoupon identification data; retrieving a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database; comparing business rules of smartcoupon token to transaction information to determine if smartcoupon is valid; and applying the unit value of valid smart coupon to the retail transaction.
- the method may include the steps of: receiving smartcoupon identification data of smartcoupon applied to the retail transaction; creating a redemption token; storing the redemption token in smart coupon transaction record; providing the smart coupon transaction record to a blockchain database; determining if the smart coupon transaction record is valid; and publishing the smart coupon transaction record to the blockchain database.
- FIG. 1 depicts an illustrative example of some of the components and computer implemented methods which may be found in an electronic coupon system using a blockchain according to various embodiments described herein.
- FIG. 2 illustrates a block diagram showing an example of a server which may be used by the system as described in various embodiments herein.
- FIG. 3 shows a block diagram illustrating an example of a client device which may be used by the system as described in various embodiments herein.
- FIG. 4 depicts a block diagram illustrating some software rules engines and components of an electronic coupon system according to various embodiments described herein.
- FIG. 5 illustrates a block diagram illustrating an example of a smart coupon transaction record according to various embodiments described herein.
- FIG. 6 shows a block diagram illustrating an example of a smartcoupon token according to various embodiments described herein.
- FIG. 7 depicts a block diagram illustrating an example of a redemption token according to various embodiments described herein.
- FIG. 8 illustrates a block diagram of an example of a method for adding a block of smartcoupons to a blockchain database according to various embodiments described herein.
- FIG. 9 shows a block diagram of a method for enabling a consumer to hold an offer on the blockchain until it is redeemed according to various embodiments described herein.
- FIG. 10 shows a block diagram of an example of a computer implemented method for associating a smartcoupon with a retail transaction according to various embodiments described herein.
- FIG. 11 depicts a block diagram of an example of a computer implemented method for validating a smartcoupon according to various embodiments described herein.
- FIG. 12 illustrates a block diagram of an example of a computer implemented method for redeeming a smartcoupon according to various embodiments described herein.
- first”, “second”, etc. are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element.
- the first element may be designated as the second element, and the second element may be likewise designated as the first element without departing from the scope of the invention.
- the term “computer” refers to a machine, apparatus, or device that is capable of accepting and performing logic operations from software code.
- application means of accepting and performing logic operations from software code.
- application means of accepting and performing logic operations from software code.
- application means of accepting and performing logic operations from software code.
- application means of accepting and performing logic operations from software code.
- application means of executing instructions
- software means of executing instructions
- computer software refers to any set of instructions operable to cause a computer to perform an operation.
- Software code may be operated on by a “rules engine” or processor.
- the methods and systems of the present invention may be performed by a computer or computing device having a processor based on instructions received by computer applications and software.
- client device is a type of computer or computing device comprising circuitry and configured to generally perform functions such as recording audio, photos, and videos; displaying or reproducing audio, photos, and videos; storing, retrieving, or manipulation of electronic data; providing electrical communications and network connectivity; or any other similar function.
- electronic devices include: personal computers (PCs), workstations, laptops, tablet PCs including the iPad, cell phones including iOS phones made by Apple Inc., Android OS phones, Microsoft OS phones, Blackberry phones, digital music players, or any electronic device capable of running computer software and displaying information to a user, memory cards, other memory storage devices, digital cameras, external battery packs, external charging devices, and the like.
- portable electronic devices which are portable and easily carried by a person from one location to another may sometimes be referred to as a “portable electronic device” or “portable device”.
- portable devices include: cell phones, smartphones, tablet computers, laptop computers, wearable computers such as Apple Watch, other smartwatches, Fitbit, other wearable fitness trackers, Google Glasses, and the like.
- Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk or the removable media drive.
- Volatile media includes dynamic memory, such as the main memory.
- Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
- data network or “network” shall mean an infrastructure capable of connecting two or more computers such as client devices either using wires or wirelessly allowing them to transmit and receive data.
- data networks may include the internet or wireless networks or (i.e. a “wireless network”) which may include Wifi and cellular networks.
- a network may include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a mobile relay network, a metropolitan area network (MAN), an ad hoc network, a telephone network (e.g., a Public Switched Telephone Network (PSTN)), a cellular network, or a voice-over-IP (VoIP) network.
- LAN local area network
- WAN wide area network
- MAN metropolitan area network
- MAN metropolitan area network
- VoIP voice-over-IP
- database shall generally mean a digital collection of data or information.
- the present invention uses novel methods and processes to store, link, and modify information such digital images and videos and user profile information.
- a database may be stored on a remote server and accessed by a client device through the internet (i.e., the database is in the cloud) or alternatively in some embodiments the database may be stored on the client device or remote computer itself (i.e., local storage).
- a “data store” as used herein may contain or comprise a database (i.e. information and data from a database may be recorded into a medium on a data store).
- blockchain shall generally mean a distributed database that maintains a continuously growing ledger or list of records, called blocks, secured from tampering and revision. Every time a smartcoupon transaction record 120 may be published to the blockchain database 109 the smart coupon transaction record 120 may be published as a new block. Each block includes a timestamp and a link to a previous block.
- a blockchain database is managed autonomously. Blockchains are an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.
- Consensus ensures that the shared ledgers are exact copies, and lowers the risk of fraudulent transactions, because tampering would have to occur across many places at exactly the same time.
- Cryptographic hashes such as the SHA256 computational algorithm, ensure that any alteration to transaction input results in a different hash value being computed, which indicates potentially compromised transaction input.
- Digital signatures ensure that transactions originated from senders (signed with private keys) and not imposters.
- a blockchain system records the chronological order of transactions with all nodes agreeing to the validity of transactions using the chosen consensus model. The result is transactions that are irreversible and agreed to by all members in the network.
- the present invention will now be described by example and through referencing the appended figures representing preferred and alternative embodiments.
- the system 100 is configured to facilitate the transfer of data and information between one or more access points 103 , client devices 400 , and servers 300 over a data network 105 .
- Each client device 400 and server 300 may send data to and receive data from the data network 105 through a network connection 104 with an access point 103 .
- a data store 308 accessible by the server 300 may contain one or more databases.
- the data may comprise any information pertinent to the generation and processing of electronic coupons including information on or describing one or more users 101 , information on or describing one or more electronic coupons, or any other information which may be used to enable a user 101 to receive a product, such as goods and services, at a free or reduced price.
- the electronic coupons of the system 100 may be referred to as smartcoupons 102 .
- a smartcoupon 102 may be represented in a digital format by data contained within a smart coupon transaction record 120 and optionally represented in a physical format such as by having some of the smart coupon transaction record 120 data printed as a physical hard copy or displayed on a display screen 404 A of a client device 400 .
- the system 100 comprises at least one client device 400 (but preferably more than two client devices 400 ) configured to be operated by one or more users 101 .
- Client devices 400 can be any type of mobile computing device, such as laptops, portable retailer Point of Sale terminals 400 A, tablet computers, personal digital assistants, smart phones, and the like, that are equipped with a wireless network interface capable of sending data to one or more servers 300 with access to one or more data stores 308 over a network 105 such as a wireless local area network (WLAN).
- WLAN wireless local area network
- client devices 400 can be fixed devices, such as desktops, workstations, non-movable retailer Point of Sale terminals 400 A, and the like, that are equipped with a wireless or wired network interface capable of sending data to one or more servers 300 with access to one or more data stores 308 over a wireless or wired local area network 105 .
- a retailer Point of Sale (POS) terminal 400 A may comprise a client device 400 , such as a cash register, check-out shopping cart on an ecommerce site, or a smartphone having a credit card reader, used to process payment for transactions at retail locations.
- the present invention may be implemented on at least one client device 400 and/or server 300 programmed to perform one or more of the steps described herein. In some embodiments, more than one client device 400 and/or server 300 may be used, with each being programmed to carry out one or more steps of a method or process described herein.
- the system 100 may be configured to facilitate the communication of information to and from one or more users 101 , through their respective client devices 400 and servers 300 .
- Users 101 of the system 100 may include one or more consumers 101 A, retailers 101 B, and issuers 101 C.
- a consumer 101 A may be any individual or entity that desires to enter into a transaction in order to receive a product.
- a retailer 101 B may be any individual or entity that desires to enter into a transaction in order to receive compensation for providing a product to a consumer 101 A.
- An issuer 101 C may be any individual or entity that desires to reduce the amount of compensation that a consumer 101 A needs to provide to a retailer 101 B in order to receive a product through a transaction.
- data describing a smartcoupon 120 maybe be received by the retailer 101 B and the system 100 may validate the smartcoupon 120 and allow the smartcoupon 120 to be redeemed for compensation to be provided to the retailer 101 B.
- the system 100 may include a blockchain network 111 , having one or more nodes 112 , which may be in communication with one or more servers 300 and/or client devices 400 of the system 100 .
- a node 112 may be a server 300 , a client device 400 , or any other suitable networked computing platform.
- the blockchain network 111 may manage a distributed blockchain database 109 containing data describing smartcoupons 120 of the system 100 .
- the data describing smartcoupons 120 may be maintained as a continuously growing ledger or list of smart coupon transaction records 120 , which may be referred to as blocks, secured from tampering and revision. Each block includes a timestamp and a link to a previous block.
- a blockchain database 109 may be managed autonomously. Consensus ensures that the shared ledgers are exact copies, and lowers the risk of fraudulent transactions, because tampering would have to occur across many places at exactly the same time.
- Cryptographic hashes such as the SHA256 computational algorithm, ensure that any alteration to transaction data input results in a different hash value being computed, which indicates potentially compromised transaction input.
- Digital signatures ensure that data entry transactions (data added to the blockchain database 109 ) originated from senders (signed with private keys) and not imposters.
- a blockchain database 109 may record the chronological order of data entry transactions with all nodes 112 agreeing to the validity of entry transactions using the chosen consensus model. The result is data entry transactions that are irreversible and agreed to by all members in the blockchain network 111 .
- FIG. 2 a block diagram illustrates a server 300 of which one or more may be used in the system 100 or standalone and which may be a type of computing platform.
- the server 300 may be a digital computer that, in terms of hardware architecture, generally includes a processor 302 , input/output (I/O) interfaces 304 , a network interface 306 , a data store 308 , and memory 310 .
- I/O input/output
- FIG. 2 depicts the server 300 in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein.
- the components ( 302 , 304 , 306 , 308 , and 310 ) are communicatively coupled via a local interface 312 .
- the local interface 312 may be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art.
- the local interface 312 may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, among many others, to enable communications. Further, the local interface 312 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
- the processor 302 is a hardware device for executing software instructions.
- the processor 302 may be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the server 300 , a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions.
- the processor 302 is configured to execute software stored within the memory 310 , to communicate data to and from the memory 310 , and to generally control operations of the server 300 pursuant to the software instructions.
- the I/O interfaces 304 may be used to receive user input from and/or for providing system output to one or more devices or components.
- I/O interfaces 304 may include, for example, a serial port, a parallel port, a small computer system interface (SCSI), a serial ATA (SATA), a fibre channel, Infiniband, iSCSI, a PCI Express interface (PCI-x), an infrared (IR) interface, a radio frequency (RF) interface, and/or a universal serial bus (USB) interface.
- SCSI small computer system interface
- SATA serial ATA
- PCI-x PCI Express interface
- IR infrared
- RF radio frequency
- USB universal serial bus
- the network interface 306 may be used to enable the server 300 to communicate on a network, such as the Internet, the data network 105 , the enterprise, and the like, etc.
- the network interface 306 may include, for example, an Ethernet card or adapter (e.g., 10BaseT, Fast Ethernet, Gigabit Ethernet, 10 GbE) or a wireless local area network (WLAN) card or adapter (e.g., 802.11a/b/g/n).
- the network interface 306 may include address, control, and/or data connections to enable appropriate communications on the network.
- a data store 308 may be used to store data.
- the data store 308 is a type of memory and may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof. Moreover, the data store 308 may incorporate electronic, magnetic, optical, and/or other types of storage media. In one example, the data store 308 may be located internal to the server 300 such as, for example, an internal hard drive connected to the local interface 312 in the server 300 .
- the data store 308 may be located external to the server 300 such as, for example, an external hard drive connected to the I/O interfaces 304 (e.g., SCSI or USB connection).
- the data store 308 may be connected to the server 300 through a network, such as, for example, a network attached file server.
- the memory 310 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.), and combinations thereof. Moreover, the memory 310 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 310 may have a distributed architecture, where various components are situated remotely from one another, but can be accessed by the processor 302 .
- the software in memory 310 may include one or more software programs, each of which includes an ordered listing of executable instructions for implementing logical functions.
- the software in the memory 310 may include a suitable operating system (O/S) 314 and one or more programs 320 .
- O/S operating system
- the operating system 314 essentially controls the execution of other computer programs, such as the one or more programs 320 , and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
- the operating system 314 may be, for example Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows Server 2003/2008 (all available from Microsoft, Corp. of Redmond, Wash.), Solaris (available from Sun Microsystems, Inc. of Palo Alto, Calif.), LINUX (or another UNIX variant) (available from Red Hat of Raleigh, N.C. and various other vendors), Android and variants thereof (available from Google, Inc. of Mountain View, Calif.), Apple OS X and variants thereof (available from Apple, Inc. of Cupertino, Calif.), or the like.
- the one or more programs 320 may include an issuing engine 191 and a blockchain engine 192 and the programs 320 may be configured to implement the various processes, algorithms, methods, techniques, etc. described herein.
- a block diagram illustrates a client device 400 , such as a retailer POS terminal 400 A, of which one or more may be used in the system 100 or the like and which may be a type of computing platform.
- the client device 400 can be a digital device that, in terms of hardware architecture, generally includes a processor 402 , input/output (I/O) interfaces 404 , a radio 406 , a data store 408 , and memory 410 .
- I/O input/output
- FIG. 3 depicts the client device 400 in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein.
- the components ( 402 , 404 , 406 , 408 , and 410 ) are communicatively coupled via a local interface 412 .
- the local interface 412 can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art.
- the local interface 412 can have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, among many others, to enable communications. Further, the local interface 412 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
- the processor 402 is a hardware device for executing software instructions.
- the processor 402 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the client device 400 , a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions.
- the processor 402 is configured to execute software stored within the memory 410 , to communicate data to and from the memory 410 , and to generally control operations of the client device 400 pursuant to the software instructions.
- the processor 402 may include a mobile optimized processor such as optimized for power consumption and mobile applications.
- the I/O interfaces 404 can be used to receive data and user input and/or for providing system output.
- User 101 input can be provided via a plurality of I/O interfaces 404 , such as a keypad, a touch screen, a camera, a microphone, a scroll ball, a scroll bar, buttons, bar code scanner, voice recognition, eye gesture, and the like.
- System output can be provided via a display screen 404 A such as a liquid crystal display (LCD), touch screen, and the like.
- LCD liquid crystal display
- the I/O interfaces 404 can also include, for example, a global positioning service (GPS) radio, a serial port, a parallel port, a small computer system interface (SCSI), an infrared (IR) interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, and the like.
- the I/O interfaces 404 can include a graphical user interface (GUI) that enables a user to interact with the client device 400 .
- GUI graphical user interface
- a type of client device 400 may include a scanner or barcode reader, typically having a light source, a lens and a light sensor for translating optical impulses into electrical ones, and/or a keypad or other manual data entry device.
- the optional radio 406 enables wireless communication to an external access device or network. Any number of suitable wireless data communication protocols, techniques, or methodologies can be supported by the radio 406 , including, without limitation: RF; IrDA (infrared); Bluetooth; ZigBee (and other variants of the IEEE 802.15 protocol); IEEE 802.11 (any variation); IEEE 802.16 (WiMAX or any other variation); Direct Sequence Spread Spectrum; Frequency Hopping Spread Spectrum; Long Term Evolution (LTE); cellular/wireless/cordless telecommunication protocols (e.g.
- wireless home network communication protocols wireless home network communication protocols
- paging network protocols magnetic induction
- satellite data communication protocols wireless hospital or health care facility network protocols such as those operating in the WMTS bands
- GPRS proprietary wireless data communication protocols
- variants of Wireless USB any other protocols for wireless communication.
- the data store 408 may be used to store data and is therefore a type of memory.
- the data store 408 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof.
- RAM random access memory
- nonvolatile memory elements e.g., ROM, hard drive, tape, CDROM, and the like
- the data store 408 may incorporate electronic, magnetic, optical, and/or other types of storage media.
- the memory 410 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, etc.), and combinations thereof. Moreover, the memory 410 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 410 may have a distributed architecture, where various components are situated remotely from one another, but can be accessed by the processor 402 .
- the software in memory 410 can include one or more software programs 420 , each of which includes an ordered listing of executable instructions for implementing logical functions. In the example of FIG. 3 , the software in the memory system 410 includes a suitable operating system (O/S) 414 and programs 420 .
- O/S operating system
- the operating system 414 essentially controls the execution of other computer programs, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
- the operating system 414 may be, for example, LINUX (or another UNIX variant), Android (available from Google), Symbian OS, Microsoft Windows CE, Microsoft Windows 7 Mobile, Microsoft Windows 10, iOS (available from Apple, Inc.), webOS (available from Hewlett Packard), Blackberry OS (Available from Research in Motion), and the like.
- the programs 420 may include a redemption engine 193 and various applications, add-ons, etc. configured to provide end user functionality with the client device 400 .
- exemplary programs 420 may include, but not limited to, a web browser, social networking applications, streaming media applications, games, mapping and location applications, electronic mail applications, financial applications, and the like.
- the end user typically uses one or more of the programs 420 along with a network 105 to manipulate information of the system 100 .
- system 100 may comprise software rules engines which may optionally be configured to run on a server 300 ( FIGS. 1 and 2 ) and/or a client device 400 ( FIGS. 1 and 3 ) in addition to the physical components.
- a server 300 and/or a client device 400 may be in wired and/or wireless electronic communication through a network 105 with a data store 308 comprising a database, such as a system database 107 .
- the engines 191 , 192 , 193 , 194 may read, write, or otherwise access data of the system 100 and which may be stored in a system database 107 .
- the engines 191 , 192 , 193 , 194 may be in electronic communication so that data may be readily exchanged between the engines 191 , 192 , 193 , 194 .
- one or more servers 300 may be configured to run one or more software rules engines or programs such as an issuing engine 191 and a blockchain engine 192 while a client device 400 , such as a retailer POS terminal 400 A, may be configured to run one or more software rules engines or programs such as a redemption engine 193 .
- an issuing engine 191 , blockchain engine 192 , and/or redemption engine 193 may be configured to run on one or more client devices 400 and/or servers 300 with data transferred to and from one or more servers 300 in communication with a data store 308 through a network 105 .
- a server 300 or a client device 400 may be configured to run an issuing engine 191 , blockchain engine 192 , and/or redemption engine 193 .
- an issuing engine 191 may be included in a server 300 or a client device 400 .
- blockchain engine 192 may be configured to run an issuing engine 191 , blockchain engine 192 , and/or redemption engine 193 .
- the functions attributed to the engines 191 , 192 , 193 , described herein are exemplary in nature, and that in alternative embodiments, any function attributed to any engine 191 , 192 , 193 , may be performed by one or more other engines 191 , 192 , 193 , or any other suitable processor logic.
- the issuing engine 191 may comprise or function as issuing logic stored in memory 310 , 410 which may be executable by the processor 302 , 402 , of a server 300 and/or client device 400 .
- the issuing engine 191 may allow an issuer 101 C and other interested users 101 to read, write, edit, create, import, export, and delete information in a smartcoupon transaction record 120 before the smartcoupon transaction record 120 is added to the blockchain database 109 .
- the issuing engine 191 may also provide smart coupon transaction records 120 to a blockchain database 109 preferably by providing the smart coupon transaction records 120 to a blockchain engine 192 .
- a distribution engine 194 may be used distribute smartcoupons 102 , or data from a smart coupon transaction record 120 describing a smartcoupon 102 to various online sites, and may allow consumers 101 A to add the smartcoupon 102 to a digital wallets, including third party wallets 115 , such as those provided by Apple and Google, and a system wallet 116 which can be administered by the system 100 and (optionally) used by consumers 101 A to store multiple smartcoupon 102 in a digital format.
- third party wallets 115 such as those provided by Apple and Google
- the distribution engine 194 may optionally create, edit, and otherwise manipulate data records or accounts for each customer 101 A in the system database 107 in which each account may include a Customer_ID (customer identification string) and any SmartCoupon_IDs (smartcoupon identification strings) that the customer 101 A may have selected or otherwise indicated a desire to use in a transaction. Consumers 101 A may to present their Customer_ID to retailers 101 B and the issuing engine 191 may provide information describing the smartcoupons 102 associated with the Customer_ID relevant to products in a transaction so that more than one smartcoupon 102 may be redeemed during the transaction in a batch process.
- Customer_ID customer identification string
- SmartCoupon_IDs smartCoupon identification strings
- a blockchain engine 192 may comprise or function as blockchain logic stored in memory 310 , 410 which may be executable by the processor 302 , 402 , of a server 300 and/or client device 400 .
- the blockchain engine 192 may enable communication between the blockchain database 109 and other components of the system 100 .
- the blockchain engine 192 may also retrieve one or more smartcoupon transaction records 120 , and data contained therein, from the blockchain database 109 , which may optionally be associated with a Customer_ID in a system database 107 .
- the blockchain engine 192 may also determine if a smart coupon transaction record 120 is valid and also publish the smart coupon transaction record 120 to the blockchain database 109 .
- the redemption engine 193 may comprise or function as redemption logic stored in memory 310 , 410 which may be executable by the processor 302 , 402 , of a server 300 and/or client device 400 such as a retailer POS terminal 400 A.
- a redemption engine 193 may be configured to receive transaction data describing the details of a retail transaction, such as time and date, products and their respective upc, retailer name, location, etc., from an input interface 404 of a retailer POS terminal 400 A.
- the redemption logic 193 may also be configured to provide smartcoupon identification data to the blockchain engine 192 .
- the redemption logic 193 may also be configured to compare business rules contained in a smartcoupon token to transaction information and to determine if a smartcoupon is valid.
- the redemption logic 193 may also be configured to apply the unit value of valid smart coupon to a retail transaction.
- the system 100 may comprise one or more databases, such as a system database 107 , optionally stored on a data store 308 , 408 , of one or more servers 300 and/or client device 400 accessible to an issuing engine 191 , blockchain engine 192 , and/or redemption engine 193 .
- a system database 107 may comprise any data and information input to and output by the system 100 .
- This data may include one or more other databases describing consumers 101 A associated with the system 100 which may include a data record for each customer 101 A optionally having a Customer_ID associated with contact information of the customer 101 A, one or more smartcoupons 102 selected by a customer 101 A, one or more smartcoupons 102 used by the customer 101 A, or any other data.
- Data of the system database 107 may also include one or more other databases describing retailers 101 B associated with the system 100 which may include a data record for each retailer 101 B optionally having a Retailer_ID associated with contact information of the retailer 101 B, one or more smartcoupons 102 redeemed by the retailer 101 B, other transaction information, financial data, or any other data.
- Data of the system database 107 may also include one or more other databases describing issuers 101 C associated with the system 100 which may include a data record for each issuer 101 C optionally having an Issuer_ID associated with contact information of the issuer 101 C, one or more smartcoupons 102 issued by the issuer 101 C and selected by a customer 101 A, such as in a digital wallet 115 , 116 , one or more smartcoupons 102 issued by the issuer 101 C and redeemed by a retailer 101 B, one or more smartcoupons 102 issued by the issuer 101 C and not redeemed by a retailer 101 B other transaction information, financial data, or any other data.
- issuers 101 C associated with the system 100 which may include a data record for each issuer 101 C optionally having an Issuer_ID associated with contact information of the issuer 101 C, one or more smartcoupons 102 issued by the issuer 101 C and selected by a customer 101 A, such as in a digital wallet 115 , 116 , one or more smartcoup
- the system 100 may also comprise one or more blockchain databases 109 which may be operated via a blockchain network 111 having one or more nodes 112 , such as a first node 112 A, a second node 112 B, and a third node 112 C.
- a blockchain database 109 may store smartcoupons 102 of the system 100 in digital format as a smart coupon transaction record 120 comprising one or more data fields.
- Data fields of a smart coupon transaction record 120 may include: transaction_ID 121 ; smartcoupon_ID 122 ; smartcoupon token 123 ; issuer public key 124 ; customer_ID 125 ; retailer public key 126 ; redemption token 127 ; and state 128 .
- the transaction_ID 121 data field may contain information or data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, created by the blockchain network 111 or blockchain engine 192 .
- the SmartCoupon_ID 122 data field may describe the smartcoupon identification data for a smartcoupon and may contain information or data which may comprise a unique identifier preferably created by the distribution engine 194 that can be displayed as a barcode or other electronic format such as NFC and read an input interface 404 of a retailer POS terminal 400 A or an alphanumberic string readble by a human retailer 101 B and entered into an input interface 404 of a retailer POS terminal 400 A.
- the smartcoupon token 123 data field may contain information or data which may comprise all of the business rules of the smartcoupon 102 stipulated by the issuer 101 C that must be satisfied in order for the smartcoupon 102 to be validated and redeemed.
- the issuer public key 124 data field may contain information or data which may comprise a public key identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, for the issuer 101 C.
- the customer_ID 125 data field may be optional to the smart coupon transaction record 120 and may contain information or data which may comprise one or more unique identifiers, such as an analytics identifier, CoupDog identifier or the like, issuer and/or retailer identifiers and the like, which may be an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for the consumer 101 A who holds or redeems the smartcoupon 120 .
- the customer_ID 125 data field may comprise a unique device identifier of the electronic device 400 of the customer 101 A who redeemed the smartcoupon 120 .
- the retailer public key 126 data field may contain information or data which may comprise a public key identifier for the retailer 101 B where the smartcoupon 120 was validated and redeemed.
- the redemption token 127 data field may contain information or data which may comprise details on the retailer 101 B where the SmartCoupon 102 was redeemed and details on the transaction and purchase of products.
- the state 128 data field may comprise data and information which describes the state of the smartcoupon 102 which may include: open, held, redeemed, expired, and cancelled.
- An open state may indicate that the SmartCoupon 102 is available to be held or redeemed. For example, only SmartCoupons 102 with an open or held state may be redeemed or validated.
- a held state means that a consumer 101 A has added the offer to a wallet, but not yet redeemed that offer.
- a redeemed state may indicate that a SmartCoupon 102 has satisfied the Business Rules in the smartcoupon token 123 and the Retailer 101 B has added a redemption token 127 to the blockchain smart coupon transaction record 120 .
- An expired state may indicate that the current date is later than the expiry date 137 in the smartcoupon token 123 and it can no longer be redeemed.
- a canceled state may indicate that the issuer 101 C has issued a cancellation request for the smartcoupon 102 and that cancellation request has been accepted by the blockchain network 111 .
- FIG. 6 shows some data fields of a smartcoupon token 123 and some exemplary data the fields may contain.
- a smartcoupon token 123 may include one or more data fields such as: issuer_ID 130 ; campaign_ID 131 ; offer name 132 ; max units issued 133 ; unit value 134 ; currency 135 ; issue date 136 ; expiry date 137 ; restrictions 138 ; rule type 139 ; product 140 ; min units purchased 141 , min value purchased 142 , max per user 143 ; geography restrictions 144 ; retailers restrictions 145 ; and other restrictions 146 .
- the data in the fields of the smartcoupon token 123 may be or form the business rules of the smartcoupon 102 which must be satisfied in order for the smart coupon 102 to be redeemed and validated.
- the issuer_ID 130 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for the issuer 101 C who created the smartcoupon 120 .
- the campaign_ID 131 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for an advertising campaign of the issuer 101 C.
- the offer name 132 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a name for an advertising campaign of the issuer 101 C.
- the max units issued 133 data field may contain data which may indicate the number of smartcoupons 102 which can be issued to the blockchain and ultimately redeemed.
- the unit value 134 data field may contain data which may indicate the value of the smartcoupon 102 and which may be deducted from the price that the consumer 101 A must pay to the retailer 101 B to be provided to the retailer 101 B by the issuer 101 C.
- the currency 135 data field may contain data which may indicate which currency the unit value 134 is in.
- the issue date 136 data field may contain data which may indicate the creation date of the smartcoupon 102 .
- the expiry date 137 data field may contain data which may indicate the expiration date of the smartcoupon 102
- the rule type 139 may contain data that defines the type of business rule that may apply. This may include, but is not limited to buying any one of the products defined, buying an minimum number of units of products defined or buying a minimum value of products defined.
- the product 140 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a Universal Product Code (UPC) or other identifier for the product to which the smartcoupon 102 may be applied.
- a unique identifier such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a Universal Product Code (UPC) or other identifier for the product to which the smartcoupon 102 may be applied.
- UPC Universal Product Code
- the minimum units 141 represent the fewest number of units of products defined in 140 that must be purchased to qualify for the discount unit value 134 .
- the minimum value 142 represent the minimum value in the defined currency 135 that must be spent on the qualifying products 140 to qualify for the discount 134 .
- the max per user 143 data field may contain data which may indicate the maximum number of the smartcoupons 102 that may be used by a consumer 101 A.
- the geography restrictions 144 data field may contain data which may indicate any geographic restrictions to where the smartcoupon 102 may be validated or redeemed.
- the retailer restrictions 145 data field may contain data which may indicate which retailers 101 B may or may not validate or redeem the smartcoupon 102 .
- the other restrictions 146 data field may contain data which may indicate or describe any other restrictions which an issuer 101 C may require to be met in order for the smartcoupon to be determined to be valid.
- FIG. 7 shows some data fields of a redemption token 127 and some exemplary data the fields may contain.
- a redemption token 127 may include one or more data fields such as: smartcoupon_ID 122 ; retailer UID 150 ; transaction_ID 121 ; product UPC 151 ; offer unit value 152 ; currency 135 ; and redemption time and date 153 .
- the data in the fields of the redemption token 127 describe the transaction in which the smart coupon 102 was redeemed and validated.
- the retailer UID 150 data field contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, of the retailer 101 B which validated or redeemed the smartcoupon 102 .
- the transaction ID 121 may contain one or more data elements including store number, aisle number receipt number or other alphanumeric strings related to the transaction event.
- the product UPC 151 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a Universal Product Code (UPC) or other identifier for the product(s) to which the smartcoupon 102 was applied.
- UPC Universal Product Code
- the offer unit value 152 data field may contain data which may indicate the value of the smartcoupon 102 and which may be deducted from the price that the consumer 101 A must pay to the retailer 101 B to be provided to the retailer 101 B by the issuer 101 C.
- the redemption time and date 153 data field may contain data which may indicate the time and date that the smartcoupon 102 was redeemed or validated.
- FIG. 8 A block diagram of an example of a method for adding a block of smartcoupons to a blockchain database (“the method”) 800 according to various embodiments described herein is shown as an overview in FIG. 8 .
- the method 800 may be used to create a smartcoupon 102 and add it to the blockchain database 109 in digital format.
- the method 800 may start 801 and a smart coupon transaction record 120 may be created having a smartcoupon token 123 in step 802 .
- the issuing engine 191 may create multiple smartcoupon transaction records 120 with information provided by the issuer 101 C through an input interface 404 of their client device 400 .
- the issuer application 191 may initiates a request to create a block of smartcoupon transactions based on defined business rules and the quantity required.
- the request may be signed with the public key 124 of the issuer 101 C.
- the smartcoupon token 123 may contain one or more data fields such as: issuer_ID 130 ; campaign_ID 131 ; offer name 132 ; max units issued 133 ; unit value 134 ; currency 135 ; issue date 136 ; expiry date 137 ; restrictions 138 ; rule type 139 ; product 140 (upc); min units purchased 141 , min value purchased 142 , max per user 143 ; geography restrictions 144 ; retailers restrictions 145 ; and other restrictions 146 .
- the data in the fields of the smartcoupon token 123 may be or form the business rules of the smartcoupon 102 which must be satisfied in order for the smart coupon 102 to be redeemed and validated.
- business rules of a smartcoupon token 123 may be: for use with product UPC 12345 67890; not to be used after expiry date of Jun. 30, 2016; and only to be used by retailer 101 B Grocery Chain X.
- the smart coupon transaction record 120 may be provided to the blockchain database 109 by the issuing engine 191 preferably via the blockchain engine 192 .
- the smart coupon transaction record 120 may be assigned to one of the blockchain nodes 112 and the request may be written to a backlog on the blockchain node 112 . This backlog is designed to temporarily store and sequentially process the transactions.
- a determination of the validity of the smart coupon transaction record 120 may be made.
- the smart coupon transaction record 120 may be published to the blockchain and may be voted on by the other nodes 112 of the blockchain network 111 by the blockchain engine 192 preferably running on one or more nodes 112 .
- the other nodes 112 vote on the transaction of the smart coupon transaction record 120 to determine if they agree the smart coupon transaction record 120 data creation transaction is valid. For example, if a majority (e.g. 2 of 3) of the nodes 112 agree the smart coupon transaction record 120 data creation transaction is valid, the smart coupon transaction record 120 may be determined to be valid. If only a minority (e.g.
- the smart coupon transaction record 120 may be determined to be not valid. If the smart coupon transaction record 120 data creation transaction is determined to be valid, the method 800 may continue to step 805 and the smartcoupon transaction record 120 may be published to the blockchain database 109 , in which the smartcoupon transaction record 120 includes an issuer public key 124 for the issuer 101 C that published the smartcoupon transaction record 120 , by blockchain engine 192 and copied to the other nodes 112 and the method 800 may finish 806 . If the smart coupon transaction record 120 data creation transaction is determined to be not valid, the smart coupon transaction record 120 will not be published to the blockchain database 109 and the method 800 may finish 806 .
- FIG. 9 shows an example of a computer implemented method for holding (aka reserving or saving) a smartcoupon for a specific consumer 101 A when they add a smartcoupon 102 to a wallet 115 , 116 , (“the method”) 850 according to various embodiments described herein.
- the method 850 is also designed to restrict the consumer 101 A to only be able to save a single smartcoupon transaction for a given campaign 131 .
- the Issuer 101 C defines how they want to distribute the smartcoupon token online to consumers 101 A.
- the consumer 101 A discovers the offer and selects method of saving the smartcoupon(s) 102 to wallet in step 852 , which can be a third party wallet 115 or a system wallet 116 .
- the issuer engine 191 may first check to see if the smartcoupons are still available in decision block 853 and ensures they have not previously saved an offer in decision block 854 . If they have not, then a unique smartcoupon ID 122 is issued step 855 by the issuing engine 191 and the status of the transaction record on the blockchain is changed to ‘held’ with the customer_ID 125 (consumer 101 A identification data) being added to the smartcoupon transaction record 120 in step 856 and the smartcoupon 102 may only be redeemed by the consumer 101 A having that matching customer_ID 125 . After step 856 , the method 850 may finish 857 .
- FIG. 10 shows an example of a computer implemented method for associating a smartcoupon with a retail transaction (“the method”) 900 according to various embodiments described herein.
- the method 900 may be used by the system 100 to associate a smartcoupon 102 with a retail transaction between a consumer 101 A and a retailer 101 B.
- the method 900 may start 901 and transaction data describing one or more products may be received in step 902 .
- the transaction data describing one or more products may include the product identification code or UPC of the product(s).
- the transaction data may be provided to the redemption engine 193 which may be running on a retailer POS terminal 400 A via a I/O interfaces 404 of the retailer POS terminal 400 A type of client device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device.
- the redemption engine 193 may be running on a retailer POS terminal 400 A via a I/O interfaces 404 of the retailer POS terminal 400 A type of client device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device.
- the method 900 may proceed from step 902 to step 904 and the redemption engine 193 use received customer identification data to receive or retrieve smartcoupon identification data that may be associated with the customer identification data from a system database 107 and/or a blockchain database 109 .
- the redemption engine 193 may receive the customer identification data, which may be a customer_ID 125 , from the retailer POS terminal 400 A from an input interface 404 of the retailer POS terminal and the issuing engine 191 may retrieve the smartcoupon identification data associated with the customer identification data from the system database 107 in step 905 .
- the redemption engine 193 may receive the customer identification data, which may be a customer_ID 125 , from the retailer POS terminal 400 A from an input interface 404 of the retailer POS terminal and the blockchain engine 192 may retrieve the smartcoupon identification data associated with the customer identification data from the blockchain database 109 in step 905 .
- one or more smartcoupons 102 such as by distributing the smartcoupon token 123 may be distributed to the client device 400 of the consumer 101 A, the consumer 101 A may select one or more smartcoupon 102 , the smartcoupons 102 may be reserved for consumer 101 A, such as in a wallet 115 , 116 , and the smartcoupon identification data may be associated with the customer identification data in a database 107 , 109 .
- the method 900 may then proceed from step 905 to step 903 .
- step 903 smartcoupon identification data may be received.
- the method 900 may proceed from step 905 to step 903 , in which smartcoupon identification data may be received by the redemption engine 193 from the issuing engine 191 or blockchain engine 192 .
- the method 900 may proceed from step 902 to step 903 , in which smartcoupon identification data may be received by the redemption engine 193 from the client device 400 of the consumer 101 A, via an input interface 404 of the retailer POS terminal 400 A so that the consumer 101 A may use smartcoupons 102 without having to have an account or customer_ID 125 with the system 100 .
- the redemption engine 193 may receive the smartcoupon identification data, which may be the smartCoupon_ID 122 , from the retailer POS terminal 400 A from an input interface 404 of the retailer POS terminal.
- the input interface 404 may comprise a scanner that may be used to read the smartCoupon_ID 122 , barcode, or other smartcoupon identification data from the display screen 404 A of the client device 400 of the consumer 101 A.
- the input interface 404 may comprise a NFC radio that may be used to communicate with the NFC radio of the client device 400 of the consumer 101 A to provide the smartCoupon_ID 122 , barcode, or other smartcoupon identification data to the redemption engine 193 .
- one or more smartcoupons 102 may be associated with the retail transaction by the redemption engine 193 and the method 900 may finish 907 .
- the redemption engine 193 may store smartcoupons 102 , and their associated smartcoupon tokens 123 in the memory 410 of the retailer POS terminal 400 A in order to perform validation and redemption of any smartcoupons 102 having business rules in their smartcoupon tokens 123 that are satisfied with the transaction data received by the redemption engine 193 .
- FIG. 11 depicts an example of a computer implemented method for validating a smartcoupon (“the method”) 1000 according to various embodiments described herein.
- the method 1000 may be used by the system 100 to validate a smartcoupon 102 thereby determining if the smartcoupon 102 may be using in a retail transaction between a customer 101 A and a retailer 101 B.
- the method 1000 may start 1001 and transaction data describing one or more products of a retail transaction may be received in step 1002 .
- the transaction data describing one or more products may include the product identification code or UPC of the product(s).
- the transaction data may be provided to the redemption engine 193 which may be running on a retailer POS terminal 400 A via a I/O interfaces 404 of the retailer POS terminal 400 A type of client device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device.
- the redemption engine 193 may be running on a retailer POS terminal 400 A via a I/O interfaces 404 of the retailer POS terminal 400 A type of client device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device.
- smartcoupon identification data may be received.
- smartcoupon identification data may be received by the redemption engine 193 from the issuing engine 191 or blockchain engine 192 .
- smartcoupon identification data may be received by the redemption engine 193 from the client device 400 of the consumer 101 A, via an input interface 404 of the retailer POS terminal 400 A so that the consumer 101 A may use smartcoupons 102 without having to have an account or customer_ID 125 with the system 100 .
- the redemption engine 193 may receive the smartcoupon identification data, which may be the smartCoupon_ID 122 , from the retailer POS terminal 400 A from an input interface 404 of the retailer POS terminal.
- the smartcoupon token 123 of the smartcoupon transaction record 120 that matches the received smartcoupon identification data may be retrieved from the blockchain database 109 by the blockchain engine 192 and provided to the redemption engine 193 . If the status of the token equals “open” or “held” 128 then a smartcoupon token 123 for that transaction record is returned and includes the business rules formed by the data in the data fields of the smartcoupon token 123 .
- business rules of a smartcoupon token 123 may be a product 139 data field of: for use with product UPC 12345 67890; an expiry date 137 data field of: not to be used after expiry date of Jun. 30, 2016; and a retailers 142 data field of: only to be used by retailer 101 B Grocery Chain X.
- a determination if the smartcoupon 102 is valid for use with the transaction data may be made.
- the redemption engine 193 may compare the business rules of smartcoupon token 123 to the transaction information to determine if the business rules of the smartcoupon token 123 are satisfied by the data in the transaction information in order to determine if smartcoupon 102 is valid.
- the transaction data describing the product includes a product identification code, and wherein the product identification code of the transaction data describing the product is required to match the product identification code of the product 139 data field from the retrieved smartcoupon token 132 in order for the smartcoupon 102 to be determined valid.
- the transaction information includes a product UPC 12345 67890; a date on or before Jun.
- the redemption engine 193 determines that the smartcoupon 102 is valid since the business rules of the smartcoupon token 123 are satisfied by the data in the transaction information. If one or more business rules of the smartcoupon token 123 are not satisfied by the data in the transaction information, the redemption engine 193 determine that the smartcoupon 102 is not valid for use with the transaction described by the transaction information.
- the method 1000 may continue to step 1006 and the value of the smartcoupon 102 , as described in the unit value 134 data field, may be applied to the transaction so that the value may be subtracted from the amount that the consumer 101 A must pay the retailer 101 B in order to receive the product(s) and the method 1000 may finish 1007 . If the redemption engine 193 determines that the smartcoupon 102 is not valid, the value of the smartcoupon 102 may not be applied to the transaction and the method 1000 may finish 1007 .
- FIG. 12 illustrates an example of a computer implemented method for redeeming a smartcoupon (“the method”) 1100 according to various embodiments described herein.
- the method 1000 may be used by the system 100 to redeem a smartcoupon 102 thereby preventing the smartcoupon 102 from being used again and also to enable the retailer 101 B to be compensated for accepting the smartcoupon 102 in a transaction.
- the method 1100 may start 1101 and identification information (the smartCoupon_ID 122 ) of smartcoupon 102 which had its value applied to a transaction may be received by the redemption engine 193 in step 1102 .
- a redemption token 127 may be created by the redemption engine 193 .
- the redemption engine 193 may use the identification information (the smartCoupon_ID 122 ) of smartcoupon 102 and transaction information describing the retail transaction in which the smartcoupon was used to populate data fields, such as smartcoupon_ID 122 ; retailer UID 150 ; transaction_ID 121 ; product UPC 151 ; offer unit value 152 ; currency 135 ; and redemption time and date 153 .
- the redemption engine 193 may store the retailer public key 126 for the retailer 101 B that created the redemption token 127 in the smart coupon transaction record 120 of the smartcoupon 102 .
- the redemption token 127 may be stored in smart coupon transaction record 120 by the redemption engine 193 .
- the smart coupon transaction record 120 comprising the redemption token 127 may be provided to the blockchain database 109 by the redemption engine 193 , preferably via the blockchain engine 192 .
- the smart coupon transaction record 120 may be assigned to one of the blockchain nodes 112 and the request may be written to a backlog on the blockchain node 112 .
- a determination of the validity of the smart coupon transaction record 120 may be made.
- the smart coupon transaction record 120 may be published to the blockchain and may be voted on by the other nodes 112 of the blockchain network 111 by the blockchain engine 192 preferably running on one or more nodes 112 .
- the other nodes 112 vote on the transaction of the smart coupon transaction record 120 to determine if they agree the smart coupon transaction record 120 data creation transaction is valid. For example, if a majority (e.g. 2 of 3) of the nodes 112 agree the smart coupon transaction record 120 data creation transaction is valid, the smart coupon transaction record 120 may be determined to be valid. If only a minority (e.g.
- the smart coupon transaction record 120 may be determined to be not valid. If the smart coupon transaction record 120 data creation transaction is determined to be valid, the method 1100 may continue to step 1107 and the smart coupon transaction record 120 may be published to the blockchain database 109 by blockchain engine 192 and copied to the other nodes 112 and the method 1100 may finish 1108 . If the smart coupon transaction record 120 data creation transaction is determined to be not valid, the smart coupon transaction record 120 will not be published to the blockchain database 109 and the method 1100 may finish 1108 .
- processors such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein.
- processors such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein.
- FPGAs field programmable gate arrays
- unique stored program instructions including both software and firmware
- some exemplary embodiments may be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer, server, appliance, device, etc. each of which may include a processor to perform methods as described and claimed herein.
- Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), a Flash memory, and the like.
- Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus.
- the tangible program carrier can be a propagated signal or a computer readable medium.
- the propagated signal is an artificially generated signal, e.g., a machine generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer.
- the computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.
- a computer program (also known as a program, software, software application, application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, solid state drives, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, solid state drives, or optical disks.
- a computer need not have such devices.
- Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto optical disks e.g., CD ROM and DVD ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- LAN local area network
- WAN wide area network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network or the cloud.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client server relationship to each other.
- the computer system may also include a main memory, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus for storing information and instructions to be executed by processor.
- main memory may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor.
- the computer system may further include a read only memory (ROM) or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus for storing static information and instructions for the processor.
- ROM read only memory
- PROM programmable ROM
- EPROM erasable PROM
- EEPROM electrically erasable PROM
- the computer system may also include a disk controller coupled to the bus to control one or more storage devices for storing information and instructions, such as a magnetic hard disk, and a removable media drive (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive).
- a removable media drive e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive.
- the storage devices may be added to the computer system using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).
- SCSI small computer system interface
- IDE integrated device electronics
- E-IDE enhanced-IDE
- DMA direct memory access
- ultra-DMA ultra-DMA
- the computer system may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)).
- ASICs application specific integrated circuits
- SPLDs simple programmable logic devices
- CPLDs complex programmable logic devices
- FPGAs field programmable gate arrays
- the computer system may also include a display controller coupled to the bus to control a display, such as a cathode ray tube (CRT), liquid crystal display (LCD) or any other type of display, for displaying information to a computer user.
- a display such as a cathode ray tube (CRT), liquid crystal display (LCD) or any other type of display
- the computer system may also include input devices, such as a keyboard and a pointing device, for interacting with a computer user and providing information to the processor. Additionally, a touch screen could be employed in conjunction with display.
- the pointing device for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor and for controlling cursor movement on the display.
- a printer may provide printed listings of data stored and/or generated by the computer system.
- the computer system performs a portion or all of the processing steps of the invention in response to the processor executing one or more sequences of one or more instructions contained in a memory, such as the main memory.
- a memory such as the main memory.
- Such instructions may be read into the main memory from another computer readable medium, such as a hard disk or a removable media drive.
- processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory.
- hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
- the computer system includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein.
- Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below), or any other medium from which a computer can read.
- the present invention includes software for controlling the computer system, for driving a device or devices for implementing the invention, and for enabling the computer system to interact with a human user.
- software may include, but is not limited to, device drivers, operating systems, development tools, and applications software.
- Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention.
- the computer code or software code of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
- Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to processor for execution.
- the instructions may initially be carried on a magnetic disk of a remote computer.
- the remote computer can load the instructions for implementing all or a portion of the present invention remotely into a dynamic memory and send the instructions over the air (e.g. through a wireless cellular network or wifi network).
- a modem local to the computer system may receive the data over the air and use an infrared transmitter to convert the data to an infrared signal.
- An infrared detector coupled to the bus can receive the data carried in the infrared signal and place the data on the bus.
- the bus carries the data to the main memory, from which the processor retrieves and executes the instructions.
- the instructions received by the main memory may optionally be stored on storage device either before or after execution by processor.
- the computer system also includes a communication interface coupled to the bus.
- the communication interface provides a two-way data communication coupling to a network link that is connected to, for example, a local area network (LAN), or to another communications network such as the Internet.
- the communication interface may be a network interface card to attach to any packet switched LAN.
- the communication interface may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line.
- Wireless links may also be implemented.
- the communication interface sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- the network link typically provides data communication to the cloud through one or more networks to other data devices.
- the network link may provide a connection to another computer or remotely located presentation device through a local network (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network.
- the local network and the communications network preferably use electrical, electromagnetic, or optical signals that carry digital data streams.
- the signals through the various networks and the signals on the network link and through the communication interface, which carry the digital data to and from the computer system are exemplary forms of carrier waves transporting the information.
- the computer system can transmit and receive data, including program code, through the network(s) and, the network link and the communication interface.
- the network link may provide a connection through a LAN to a client device or client device such as a personal digital assistant (PDA), laptop computer, tablet computer, smartphone, or cellular telephone.
- PDA personal digital assistant
- the LAN communications network and the other communications networks such as cellular wireless and wifi networks may use electrical, electromagnetic or optical signals that carry digital data streams.
- the processor system can transmit notifications and receive data, including program code, through the network(s), the network link and the communication interface.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A computer implemented electronic computer system using a blockchain method for creating, distributing, validating, and redeeming a secure electronic smartcoupon. A smartcoupon transaction record is highly secure and may comprise embedded business rules that define the requirements that consumers and retailers must meet for the smartcoupon to redeemed. Consumers may save or hold smartcoupons in a variety of different digital wallets. Retailers may redeem through their POS system by evaluating the embedded business rules in the smartcoupon against the consumer's purchase basket and if valid, completing the redemption process by publishing a redemption token to smartcoupon transaction record on the Blockchain database.
Description
- This application claims priority to and the benefit of the filing date of U.S. Provisional Application No. 62/350,226, filed on Jun. 15, 2016, entitled “Electronic Coupon System and Methods using a Blockchain”, which is hereby incorporated by reference in its entirety.
- This patent specification relates to the field of a coupon processing system and method. More particularly, the present patent specification relates to an electronic coupon processing system and methods for generating and processing of electronic coupons.
- Manufacturers of consumer products have long offered coupons to consumers in both printed and electronic formats. These coupons are promotional tools designed to motivate one or more desired consumer behaviors such as new product trial or switching from another competing product. A coupon gives the holder the right to receive a discount under the certain conditions (business rules) as they are defined in the coupon. Historically these rules are printed on the coupon and/or embedded in the barcode included as part of the coupon.
- Only a very small percentage (<10%) of coupons are currently issued and redeemed in a digital format. A major barrier to adoption of digital coupons has been the risk of fraud and uncontrolled duplication. It has been too easy to create duplicate copies of a coupon digitally and as a result, Issuers (manufacturers) have been reluctant to issue digital coupons (particularly coupons of a value greater than a small percentage of total retail purchase price). Retailers have also been reluctant to accept these digital coupons as Issuers may not be willing to reimburse retailers if they have accepted a fraudulent coupon. The result is that the migration of couponing as a promotional method has not kept pace with consumers' migration to digital media in general as a means of discovering products and making purchasing decisions.
- Therefore a need exists for novel electronic coupon processing systems and methods. There is also a need for novel electronic coupon processing systems and methods which facilitate the ability of consumers and merchants to use electronic coupons. A further need exists for novel electronic coupon processing systems and methods which are able to prevent uncontrolled duplication of electronic coupons. Finally, a need exists for novel electronic coupon processing systems and methods which are able to prevent retailers from accepting fraudulent electronic coupons.
- According to one embodiment consistent with the principles of the invention, a computer implemented electronic coupon system using a blockchain is provided. The system may include: a client device having a display screen and an input interface for receiving input from a user; a retailer POS terminal having a display screen and an input interface for receiving input; a computing platform having a processor, a memory in communication with the processor; issuing logic stored in the memory, executable by the processor; and blockchain logic stored in the memory, executable by the processor. The issuing logic may be configured to create a smart coupon transaction record having data which includes a smartcoupon token, and the issuing logic may be configured to provide the smart coupon transaction record to a blockchain database. The blockchain logic may be configured to determine if the smart coupon transaction record is valid, and the blockchain logic may be configured to publish the smart coupon transaction record to the blockchain database, the smartcoupon transaction record including an issuer public key for the issuer that published the smartcoupon transaction record.
- In further embodiments, the system may include redemption logic stored in the memory, executable by the processor. The redemption logic may be configured to receive transaction data describing the details of a retail transaction and to provide smartcoupon identification data to the blockchain logic. The blockchain logic may be configured to retrieve a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database. The redemption logic may also be configured to compare business rules of smartcoupon token to transaction information to determine if smartcoupon is valid and configured to apply the unit value of valid smart coupon to the retail transaction.
- In further embodiments, the transaction data describing a product may include a universal product code (upc) and the product identification code of the transaction data describing a product is required to match the product identification code from the retrieved smartcoupon token in order for the smartcoupon to be determined valid.
- In still further embodiments, the redemption logic may be configured to create a redemption token which includes the smartcoupon identification data of smartcoupon applied to the retail transaction. The redemption logic may also be configured to store the redemption token in smartcoupon transaction record and configured to provide this smartcoupon transaction record to a blockchain database. The blockchain logic may be configured to determine if the smart coupon transaction record is valid and to publish the smart coupon transaction record to the blockchain database.
- According to one embodiment consistent with the principles of the invention, a computer implemented method for providing an electronic coupon system using a blockchain is provided. The method may include the steps of: creating a smart coupon transaction record having data which includes a smartcoupon token; providing the smart coupon transaction record to a blockchain database; determining if the smart coupon transaction record is valid; and publishing the smart coupon transaction record to the blockchain database.
- In further embodiments, the method may include the steps of: receiving transaction data describing a product of a retail transaction; receiving smartcoupon identification data; retrieving a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database; comparing business rules of smartcoupon token to transaction information to determine if smartcoupon is valid; and applying the unit value of valid smart coupon to the retail transaction.
- In still further embodiments, the method may include the steps of: receiving smartcoupon identification data of smartcoupon applied to the retail transaction; creating a redemption token; storing the redemption token in smart coupon transaction record; providing the smart coupon transaction record to a blockchain database; determining if the smart coupon transaction record is valid; and publishing the smart coupon transaction record to the blockchain database.
- Some embodiments of the present invention are illustrated as an example and are not limited by the figures of the accompanying drawings, in which like references may indicate similar elements and in which:
-
FIG. 1 depicts an illustrative example of some of the components and computer implemented methods which may be found in an electronic coupon system using a blockchain according to various embodiments described herein. -
FIG. 2 illustrates a block diagram showing an example of a server which may be used by the system as described in various embodiments herein. -
FIG. 3 shows a block diagram illustrating an example of a client device which may be used by the system as described in various embodiments herein. -
FIG. 4 depicts a block diagram illustrating some software rules engines and components of an electronic coupon system according to various embodiments described herein. -
FIG. 5 illustrates a block diagram illustrating an example of a smart coupon transaction record according to various embodiments described herein. -
FIG. 6 shows a block diagram illustrating an example of a smartcoupon token according to various embodiments described herein. -
FIG. 7 depicts a block diagram illustrating an example of a redemption token according to various embodiments described herein. -
FIG. 8 illustrates a block diagram of an example of a method for adding a block of smartcoupons to a blockchain database according to various embodiments described herein. -
FIG. 9 shows a block diagram of a method for enabling a consumer to hold an offer on the blockchain until it is redeemed according to various embodiments described herein. -
FIG. 10 shows a block diagram of an example of a computer implemented method for associating a smartcoupon with a retail transaction according to various embodiments described herein. -
FIG. 11 depicts a block diagram of an example of a computer implemented method for validating a smartcoupon according to various embodiments described herein. -
FIG. 12 illustrates a block diagram of an example of a computer implemented method for redeeming a smartcoupon according to various embodiments described herein. - The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well as the singular forms, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
- Although the terms “first”, “second”, etc. are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, the first element may be designated as the second element, and the second element may be likewise designated as the first element without departing from the scope of the invention.
- Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one having ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present disclosure and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
- As used herein, the term “computer” refers to a machine, apparatus, or device that is capable of accepting and performing logic operations from software code. The term “application”, “software”, “software code” or “computer software” refers to any set of instructions operable to cause a computer to perform an operation. Software code may be operated on by a “rules engine” or processor. Thus, the methods and systems of the present invention may be performed by a computer or computing device having a processor based on instructions received by computer applications and software.
- The term “client device” as used herein is a type of computer or computing device comprising circuitry and configured to generally perform functions such as recording audio, photos, and videos; displaying or reproducing audio, photos, and videos; storing, retrieving, or manipulation of electronic data; providing electrical communications and network connectivity; or any other similar function. Non-limiting examples of electronic devices include: personal computers (PCs), workstations, laptops, tablet PCs including the iPad, cell phones including iOS phones made by Apple Inc., Android OS phones, Microsoft OS phones, Blackberry phones, digital music players, or any electronic device capable of running computer software and displaying information to a user, memory cards, other memory storage devices, digital cameras, external battery packs, external charging devices, and the like. Certain types of electronic devices which are portable and easily carried by a person from one location to another may sometimes be referred to as a “portable electronic device” or “portable device”. Some non-limiting examples of portable devices include: cell phones, smartphones, tablet computers, laptop computers, wearable computers such as Apple Watch, other smartwatches, Fitbit, other wearable fitness trackers, Google Glasses, and the like.
- The term “computer readable medium” as used herein refers to any medium that participates in providing instructions to the processor for execution. A computer readable medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk or the removable media drive. Volatile media includes dynamic memory, such as the main memory. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
- As used herein the term “data network” or “network” shall mean an infrastructure capable of connecting two or more computers such as client devices either using wires or wirelessly allowing them to transmit and receive data. Non-limiting examples of data networks may include the internet or wireless networks or (i.e. a “wireless network”) which may include Wifi and cellular networks. For example, a network may include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a mobile relay network, a metropolitan area network (MAN), an ad hoc network, a telephone network (e.g., a Public Switched Telephone Network (PSTN)), a cellular network, or a voice-over-IP (VoIP) network.
- As used herein, the term “database” shall generally mean a digital collection of data or information. The present invention uses novel methods and processes to store, link, and modify information such digital images and videos and user profile information. For the purposes of the present disclosure, a database may be stored on a remote server and accessed by a client device through the internet (i.e., the database is in the cloud) or alternatively in some embodiments the database may be stored on the client device or remote computer itself (i.e., local storage). A “data store” as used herein may contain or comprise a database (i.e. information and data from a database may be recorded into a medium on a data store).
- As used herein, the term “blockchain” shall generally mean a distributed database that maintains a continuously growing ledger or list of records, called blocks, secured from tampering and revision. Every time a
smartcoupon transaction record 120 may be published to theblockchain database 109 the smartcoupon transaction record 120 may be published as a new block. Each block includes a timestamp and a link to a previous block. Through the use of a peer-to-peer network and a distributed timestamping server, a blockchain database is managed autonomously. Blockchains are an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. Consensus ensures that the shared ledgers are exact copies, and lowers the risk of fraudulent transactions, because tampering would have to occur across many places at exactly the same time. Cryptographic hashes, such as the SHA256 computational algorithm, ensure that any alteration to transaction input results in a different hash value being computed, which indicates potentially compromised transaction input. Digital signatures ensure that transactions originated from senders (signed with private keys) and not imposters. At its core, a blockchain system records the chronological order of transactions with all nodes agreeing to the validity of transactions using the chosen consensus model. The result is transactions that are irreversible and agreed to by all members in the network. - In describing the invention, it will be understood that a number of techniques and steps are disclosed. Each of these has individual benefit and each can also be used in conjunction with one or more, or in some cases all, of the other disclosed techniques. Accordingly, for the sake of clarity, this description will refrain from repeating every possible combination of the individual steps in an unnecessary fashion. Nevertheless, the specification and claims should be read with the understanding that such combinations are entirely within the scope of the invention and the claims.
- New computer-implemented systems and methods for electronic coupon generation and processing are discussed herein. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
- The present disclosure is to be considered as an exemplification of the invention, and is not intended to limit the invention to the specific embodiments illustrated by the figures or description below.
- The present invention will now be described by example and through referencing the appended figures representing preferred and alternative embodiments. As perhaps best shown by
FIGS. 1-3 , examples of some of the physical components which may comprise an electronic coupon system using a blockchain (“the system”) 100 according to some embodiments is presented. Thesystem 100 is configured to facilitate the transfer of data and information between one ormore access points 103,client devices 400, andservers 300 over adata network 105. Eachclient device 400 andserver 300 may send data to and receive data from thedata network 105 through anetwork connection 104 with anaccess point 103. Adata store 308 accessible by theserver 300 may contain one or more databases. The data may comprise any information pertinent to the generation and processing of electronic coupons including information on or describing one or more users 101, information on or describing one or more electronic coupons, or any other information which may be used to enable a user 101 to receive a product, such as goods and services, at a free or reduced price. - The electronic coupons of the
system 100 may be referred to as smartcoupons 102. A smartcoupon 102 may be represented in a digital format by data contained within a smartcoupon transaction record 120 and optionally represented in a physical format such as by having some of the smartcoupon transaction record 120 data printed as a physical hard copy or displayed on adisplay screen 404A of aclient device 400. - In this example, the
system 100 comprises at least one client device 400 (but preferably more than two client devices 400) configured to be operated by one or more users 101.Client devices 400 can be any type of mobile computing device, such as laptops, portable retailer Point ofSale terminals 400A, tablet computers, personal digital assistants, smart phones, and the like, that are equipped with a wireless network interface capable of sending data to one ormore servers 300 with access to one ormore data stores 308 over anetwork 105 such as a wireless local area network (WLAN). Additionally,client devices 400 can be fixed devices, such as desktops, workstations, non-movable retailer Point ofSale terminals 400A, and the like, that are equipped with a wireless or wired network interface capable of sending data to one ormore servers 300 with access to one ormore data stores 308 over a wireless or wiredlocal area network 105. Generally, a retailer Point of Sale (POS) terminal 400A, may comprise aclient device 400, such as a cash register, check-out shopping cart on an ecommerce site, or a smartphone having a credit card reader, used to process payment for transactions at retail locations. The present invention may be implemented on at least oneclient device 400 and/orserver 300 programmed to perform one or more of the steps described herein. In some embodiments, more than oneclient device 400 and/orserver 300 may be used, with each being programmed to carry out one or more steps of a method or process described herein. - In some embodiments, the
system 100 may be configured to facilitate the communication of information to and from one or more users 101, through theirrespective client devices 400 andservers 300. Users 101 of thesystem 100 may include one ormore consumers 101A,retailers 101B, and issuers 101C. Aconsumer 101A may be any individual or entity that desires to enter into a transaction in order to receive a product. Aretailer 101B may be any individual or entity that desires to enter into a transaction in order to receive compensation for providing a product to aconsumer 101A. An issuer 101C may be any individual or entity that desires to reduce the amount of compensation that aconsumer 101A needs to provide to aretailer 101B in order to receive a product through a transaction. Preferably, data describing asmartcoupon 120 maybe be received by theretailer 101B and thesystem 100 may validate thesmartcoupon 120 and allow thesmartcoupon 120 to be redeemed for compensation to be provided to theretailer 101B. - In some embodiments, the
system 100 may include ablockchain network 111, having one ormore nodes 112, which may be in communication with one ormore servers 300 and/orclient devices 400 of thesystem 100. Anode 112 may be aserver 300, aclient device 400, or any other suitable networked computing platform. Theblockchain network 111 may manage a distributedblockchain database 109 containing data describing smartcoupons 120 of thesystem 100. The data describing smartcoupons 120 may be maintained as a continuously growing ledger or list of smartcoupon transaction records 120, which may be referred to as blocks, secured from tampering and revision. Each block includes a timestamp and a link to a previous block. Through the use of a peer-to-peer blockchain network 111 and a distributedtimestamping server 300, ablockchain database 109 may be managed autonomously. Consensus ensures that the shared ledgers are exact copies, and lowers the risk of fraudulent transactions, because tampering would have to occur across many places at exactly the same time. Cryptographic hashes, such as the SHA256 computational algorithm, ensure that any alteration to transaction data input results in a different hash value being computed, which indicates potentially compromised transaction input. Digital signatures ensure that data entry transactions (data added to the blockchain database 109) originated from senders (signed with private keys) and not imposters. At its core, ablockchain database 109 may record the chronological order of data entry transactions with allnodes 112 agreeing to the validity of entry transactions using the chosen consensus model. The result is data entry transactions that are irreversible and agreed to by all members in theblockchain network 111. - Referring now to
FIG. 2 , in an exemplary embodiment, a block diagram illustrates aserver 300 of which one or more may be used in thesystem 100 or standalone and which may be a type of computing platform. Theserver 300 may be a digital computer that, in terms of hardware architecture, generally includes aprocessor 302, input/output (I/O) interfaces 304, anetwork interface 306, adata store 308, andmemory 310. It should be appreciated by those of ordinary skill in the art thatFIG. 2 depicts theserver 300 in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein. The components (302, 304, 306, 308, and 310) are communicatively coupled via alocal interface 312. Thelocal interface 312 may be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. Thelocal interface 312 may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, among many others, to enable communications. Further, thelocal interface 312 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components. - The
processor 302 is a hardware device for executing software instructions. Theprocessor 302 may be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with theserver 300, a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions. When theserver 300 is in operation, theprocessor 302 is configured to execute software stored within thememory 310, to communicate data to and from thememory 310, and to generally control operations of theserver 300 pursuant to the software instructions. The I/O interfaces 304 may be used to receive user input from and/or for providing system output to one or more devices or components. User input may be provided via, for example, a keyboard, touch pad, and/or a mouse. System output may be provided via a display device and a printer (not shown). I/O interfaces 304 may include, for example, a serial port, a parallel port, a small computer system interface (SCSI), a serial ATA (SATA), a fibre channel, Infiniband, iSCSI, a PCI Express interface (PCI-x), an infrared (IR) interface, a radio frequency (RF) interface, and/or a universal serial bus (USB) interface. - The
network interface 306 may be used to enable theserver 300 to communicate on a network, such as the Internet, thedata network 105, the enterprise, and the like, etc. Thenetwork interface 306 may include, for example, an Ethernet card or adapter (e.g., 10BaseT, Fast Ethernet, Gigabit Ethernet, 10 GbE) or a wireless local area network (WLAN) card or adapter (e.g., 802.11a/b/g/n). Thenetwork interface 306 may include address, control, and/or data connections to enable appropriate communications on the network. Adata store 308 may be used to store data. - The
data store 308 is a type of memory and may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof. Moreover, thedata store 308 may incorporate electronic, magnetic, optical, and/or other types of storage media. In one example, thedata store 308 may be located internal to theserver 300 such as, for example, an internal hard drive connected to thelocal interface 312 in theserver 300. Additionally in another embodiment, thedata store 308 may be located external to theserver 300 such as, for example, an external hard drive connected to the I/O interfaces 304 (e.g., SCSI or USB connection). In a further embodiment, thedata store 308 may be connected to theserver 300 through a network, such as, for example, a network attached file server. - The
memory 310 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.), and combinations thereof. Moreover, thememory 310 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that thememory 310 may have a distributed architecture, where various components are situated remotely from one another, but can be accessed by theprocessor 302. The software inmemory 310 may include one or more software programs, each of which includes an ordered listing of executable instructions for implementing logical functions. The software in thememory 310 may include a suitable operating system (O/S) 314 and one ormore programs 320. - The
operating system 314 essentially controls the execution of other computer programs, such as the one ormore programs 320, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. Theoperating system 314 may be, for example Windows NT, Windows 2000, Windows XP, Windows Vista,Windows 7, Windows 8,Windows 10, Windows Server 2003/2008 (all available from Microsoft, Corp. of Redmond, Wash.), Solaris (available from Sun Microsystems, Inc. of Palo Alto, Calif.), LINUX (or another UNIX variant) (available from Red Hat of Raleigh, N.C. and various other vendors), Android and variants thereof (available from Google, Inc. of Mountain View, Calif.), Apple OS X and variants thereof (available from Apple, Inc. of Cupertino, Calif.), or the like. - The one or
more programs 320 may include anissuing engine 191 and ablockchain engine 192 and theprograms 320 may be configured to implement the various processes, algorithms, methods, techniques, etc. described herein. - Referring to
FIG. 3 , in an exemplary embodiment, a block diagram illustrates aclient device 400, such as aretailer POS terminal 400A, of which one or more may be used in thesystem 100 or the like and which may be a type of computing platform. Theclient device 400 can be a digital device that, in terms of hardware architecture, generally includes aprocessor 402, input/output (I/O) interfaces 404, aradio 406, adata store 408, andmemory 410. It should be appreciated by those of ordinary skill in the art thatFIG. 3 depicts theclient device 400 in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein. The components (402, 404, 406, 408, and 410) are communicatively coupled via alocal interface 412. Thelocal interface 412 can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. Thelocal interface 412 can have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, among many others, to enable communications. Further, thelocal interface 412 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components. - The
processor 402 is a hardware device for executing software instructions. Theprocessor 402 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with theclient device 400, a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions. When theclient device 400 is in operation, theprocessor 402 is configured to execute software stored within thememory 410, to communicate data to and from thememory 410, and to generally control operations of theclient device 400 pursuant to the software instructions. In an exemplary embodiment, theprocessor 402 may include a mobile optimized processor such as optimized for power consumption and mobile applications. - The I/O interfaces 404 can be used to receive data and user input and/or for providing system output. User 101 input can be provided via a plurality of I/O interfaces 404, such as a keypad, a touch screen, a camera, a microphone, a scroll ball, a scroll bar, buttons, bar code scanner, voice recognition, eye gesture, and the like. System output can be provided via a
display screen 404A such as a liquid crystal display (LCD), touch screen, and the like. The I/O interfaces 404 can also include, for example, a global positioning service (GPS) radio, a serial port, a parallel port, a small computer system interface (SCSI), an infrared (IR) interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, and the like. The I/O interfaces 404 can include a graphical user interface (GUI) that enables a user to interact with theclient device 400. Additionally, I/O interfaces 404 of aretailer POS terminal 400A type ofclient device 400 may include a scanner or barcode reader, typically having a light source, a lens and a light sensor for translating optical impulses into electrical ones, and/or a keypad or other manual data entry device. - The
optional radio 406 enables wireless communication to an external access device or network. Any number of suitable wireless data communication protocols, techniques, or methodologies can be supported by theradio 406, including, without limitation: RF; IrDA (infrared); Bluetooth; ZigBee (and other variants of the IEEE 802.15 protocol); IEEE 802.11 (any variation); IEEE 802.16 (WiMAX or any other variation); Direct Sequence Spread Spectrum; Frequency Hopping Spread Spectrum; Long Term Evolution (LTE); cellular/wireless/cordless telecommunication protocols (e.g. 3G/4G, etc.); wireless home network communication protocols; paging network protocols; magnetic induction; satellite data communication protocols; wireless hospital or health care facility network protocols such as those operating in the WMTS bands; GPRS; proprietary wireless data communication protocols such as variants of Wireless USB; and any other protocols for wireless communication. - The
data store 408 may be used to store data and is therefore a type of memory. Thedata store 408 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof. Moreover, thedata store 408 may incorporate electronic, magnetic, optical, and/or other types of storage media. - The
memory 410 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, etc.), and combinations thereof. Moreover, thememory 410 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that thememory 410 may have a distributed architecture, where various components are situated remotely from one another, but can be accessed by theprocessor 402. The software inmemory 410 can include one ormore software programs 420, each of which includes an ordered listing of executable instructions for implementing logical functions. In the example ofFIG. 3 , the software in thememory system 410 includes a suitable operating system (O/S) 414 andprograms 420. - The
operating system 414 essentially controls the execution of other computer programs, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. Theoperating system 414 may be, for example, LINUX (or another UNIX variant), Android (available from Google), Symbian OS, Microsoft Windows CE,Microsoft Windows 7 Mobile,Microsoft Windows 10, iOS (available from Apple, Inc.), webOS (available from Hewlett Packard), Blackberry OS (Available from Research in Motion), and the like. - The
programs 420 may include aredemption engine 193 and various applications, add-ons, etc. configured to provide end user functionality with theclient device 400. For example,exemplary programs 420 may include, but not limited to, a web browser, social networking applications, streaming media applications, games, mapping and location applications, electronic mail applications, financial applications, and the like. In a typical example, the end user typically uses one or more of theprograms 420 along with anetwork 105 to manipulate information of thesystem 100. - Referring now to
FIGS. 1-7 , theysystem 100 may comprise software rules engines which may optionally be configured to run on a server 300 (FIGS. 1 and 2 ) and/or a client device 400 (FIGS. 1 and 3 ) in addition to the physical components. Aserver 300 and/or aclient device 400 may be in wired and/or wireless electronic communication through anetwork 105 with adata store 308 comprising a database, such as asystem database 107. Theengines system 100 and which may be stored in asystem database 107. Additionally, theengines engines - In this and some embodiments, one or
more servers 300 may be configured to run one or more software rules engines or programs such as anissuing engine 191 and ablockchain engine 192 while aclient device 400, such as aretailer POS terminal 400A, may be configured to run one or more software rules engines or programs such as aredemption engine 193. In other embodiments, anissuing engine 191,blockchain engine 192, and/orredemption engine 193 may be configured to run on one ormore client devices 400 and/orservers 300 with data transferred to and from one ormore servers 300 in communication with adata store 308 through anetwork 105. In still further embodiments, aserver 300 or aclient device 400 may be configured to run an issuingengine 191,blockchain engine 192, and/orredemption engine 193. It should be understood that the functions attributed to theengines engine other engines - In some embodiments, the issuing
engine 191 may comprise or function as issuing logic stored inmemory processor server 300 and/orclient device 400. The issuingengine 191 may allow an issuer 101C and other interested users 101 to read, write, edit, create, import, export, and delete information in asmartcoupon transaction record 120 before thesmartcoupon transaction record 120 is added to theblockchain database 109. The issuingengine 191 may also provide smartcoupon transaction records 120 to ablockchain database 109 preferably by providing the smartcoupon transaction records 120 to ablockchain engine 192. - A
distribution engine 194 may be used distribute smartcoupons 102, or data from a smartcoupon transaction record 120 describing a smartcoupon 102 to various online sites, and may allowconsumers 101A to add the smartcoupon 102 to a digital wallets, includingthird party wallets 115, such as those provided by Apple and Google, and asystem wallet 116 which can be administered by thesystem 100 and (optionally) used byconsumers 101A to store multiple smartcoupon 102 in a digital format. Additionally, thedistribution engine 194 may optionally create, edit, and otherwise manipulate data records or accounts for eachcustomer 101A in thesystem database 107 in which each account may include a Customer_ID (customer identification string) and any SmartCoupon_IDs (smartcoupon identification strings) that thecustomer 101A may have selected or otherwise indicated a desire to use in a transaction.Consumers 101A may to present their Customer_ID toretailers 101B and theissuing engine 191 may provide information describing the smartcoupons 102 associated with the Customer_ID relevant to products in a transaction so that more than one smartcoupon 102 may be redeemed during the transaction in a batch process. - In some embodiments, a
blockchain engine 192 may comprise or function as blockchain logic stored inmemory processor server 300 and/orclient device 400. Theblockchain engine 192 may enable communication between theblockchain database 109 and other components of thesystem 100. Theblockchain engine 192 may also retrieve one or more smartcoupon transaction records 120, and data contained therein, from theblockchain database 109, which may optionally be associated with a Customer_ID in asystem database 107. Theblockchain engine 192 may also determine if a smartcoupon transaction record 120 is valid and also publish the smartcoupon transaction record 120 to theblockchain database 109. - In some embodiments, the
redemption engine 193 may comprise or function as redemption logic stored inmemory processor server 300 and/orclient device 400 such as aretailer POS terminal 400A. Aredemption engine 193 may be configured to receive transaction data describing the details of a retail transaction, such as time and date, products and their respective upc, retailer name, location, etc., from aninput interface 404 of aretailer POS terminal 400A. Theredemption logic 193 may also be configured to provide smartcoupon identification data to theblockchain engine 192. Theredemption logic 193 may also be configured to compare business rules contained in a smartcoupon token to transaction information and to determine if a smartcoupon is valid. Theredemption logic 193 may also be configured to apply the unit value of valid smart coupon to a retail transaction. - In some embodiments, the
system 100 may comprise one or more databases, such as asystem database 107, optionally stored on adata store more servers 300 and/orclient device 400 accessible to anissuing engine 191,blockchain engine 192, and/orredemption engine 193. Asystem database 107 may comprise any data and information input to and output by thesystem 100. This data may include one or more otherdatabases describing consumers 101A associated with thesystem 100 which may include a data record for eachcustomer 101A optionally having a Customer_ID associated with contact information of thecustomer 101A, one or more smartcoupons 102 selected by acustomer 101A, one or more smartcoupons 102 used by thecustomer 101A, or any other data. Data of thesystem database 107 may also include one or more otherdatabases describing retailers 101B associated with thesystem 100 which may include a data record for eachretailer 101B optionally having a Retailer_ID associated with contact information of theretailer 101B, one or more smartcoupons 102 redeemed by theretailer 101B, other transaction information, financial data, or any other data. Data of thesystem database 107 may also include one or more other databases describing issuers 101C associated with thesystem 100 which may include a data record for each issuer 101C optionally having an Issuer_ID associated with contact information of the issuer 101C, one or more smartcoupons 102 issued by the issuer 101C and selected by acustomer 101A, such as in adigital wallet retailer 101B, one or more smartcoupons 102 issued by the issuer 101C and not redeemed by aretailer 101B other transaction information, financial data, or any other data. - The
system 100 may also comprise one ormore blockchain databases 109 which may be operated via ablockchain network 111 having one ormore nodes 112, such as afirst node 112A, asecond node 112B, and athird node 112C. Ablockchain database 109 may store smartcoupons 102 of thesystem 100 in digital format as a smartcoupon transaction record 120 comprising one or more data fields. Data fields of a smartcoupon transaction record 120 may include:transaction_ID 121;smartcoupon_ID 122;smartcoupon token 123; issuerpublic key 124;customer_ID 125; retailerpublic key 126;redemption token 127; andstate 128. - The
transaction_ID 121 data field may contain information or data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, created by theblockchain network 111 orblockchain engine 192. - The
SmartCoupon_ID 122 data field may describe the smartcoupon identification data for a smartcoupon and may contain information or data which may comprise a unique identifier preferably created by thedistribution engine 194 that can be displayed as a barcode or other electronic format such as NFC and read aninput interface 404 of aretailer POS terminal 400A or an alphanumberic string readble by ahuman retailer 101B and entered into aninput interface 404 of aretailer POS terminal 400A. - The
smartcoupon token 123 data field may contain information or data which may comprise all of the business rules of the smartcoupon 102 stipulated by the issuer 101C that must be satisfied in order for the smartcoupon 102 to be validated and redeemed. - The issuer
public key 124 data field may contain information or data which may comprise a public key identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, for the issuer 101C. - The
customer_ID 125 data field may be optional to the smartcoupon transaction record 120 and may contain information or data which may comprise one or more unique identifiers, such as an analytics identifier, CoupDog identifier or the like, issuer and/or retailer identifiers and the like, which may be an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for theconsumer 101A who holds or redeems thesmartcoupon 120. Optionally, thecustomer_ID 125 data field may comprise a unique device identifier of theelectronic device 400 of thecustomer 101A who redeemed thesmartcoupon 120. - The retailer
public key 126 data field may contain information or data which may comprise a public key identifier for theretailer 101B where thesmartcoupon 120 was validated and redeemed. - The
redemption token 127 data field may contain information or data which may comprise details on theretailer 101B where the SmartCoupon 102 was redeemed and details on the transaction and purchase of products. - The
state 128 data field may comprise data and information which describes the state of the smartcoupon 102 which may include: open, held, redeemed, expired, and cancelled. An open state may indicate that the SmartCoupon 102 is available to be held or redeemed. For example, only SmartCoupons 102 with an open or held state may be redeemed or validated. A held state means that aconsumer 101A has added the offer to a wallet, but not yet redeemed that offer. A redeemed state may indicate that a SmartCoupon 102 has satisfied the Business Rules in thesmartcoupon token 123 and theRetailer 101B has added aredemption token 127 to the blockchain smartcoupon transaction record 120. An expired state may indicate that the current date is later than the expiry date 137 in thesmartcoupon token 123 and it can no longer be redeemed. A canceled state may indicate that the issuer 101C has issued a cancellation request for the smartcoupon 102 and that cancellation request has been accepted by theblockchain network 111. -
FIG. 6 shows some data fields of asmartcoupon token 123 and some exemplary data the fields may contain. In some embodiments, asmartcoupon token 123 may include one or more data fields such as:issuer_ID 130;campaign_ID 131;offer name 132; max units issued 133;unit value 134;currency 135;issue date 136; expiry date 137; restrictions 138;rule type 139;product 140; min units purchased 141, min value purchased 142, max peruser 143;geography restrictions 144;retailers restrictions 145; andother restrictions 146. The data in the fields of thesmartcoupon token 123 may be or form the business rules of the smartcoupon 102 which must be satisfied in order for the smart coupon 102 to be redeemed and validated. - The
issuer_ID 130 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for the issuer 101C who created thesmartcoupon 120. - The
campaign_ID 131 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides an identifier for an advertising campaign of the issuer 101C. - The
offer name 132 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a name for an advertising campaign of the issuer 101C. - The max units issued 133 data field may contain data which may indicate the number of smartcoupons 102 which can be issued to the blockchain and ultimately redeemed.
- The
unit value 134 data field may contain data which may indicate the value of the smartcoupon 102 and which may be deducted from the price that theconsumer 101A must pay to theretailer 101B to be provided to theretailer 101B by the issuer 101C. - The
currency 135 data field may contain data which may indicate which currency theunit value 134 is in. - The
issue date 136 data field may contain data which may indicate the creation date of the smartcoupon 102. - The expiry date 137 data field may contain data which may indicate the expiration date of the smartcoupon 102
- The
rule type 139 may contain data that defines the type of business rule that may apply. This may include, but is not limited to buying any one of the products defined, buying an minimum number of units of products defined or buying a minimum value of products defined. - The
product 140 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a Universal Product Code (UPC) or other identifier for the product to which the smartcoupon 102 may be applied. - The
minimum units 141 represent the fewest number of units of products defined in 140 that must be purchased to qualify for thediscount unit value 134. - The
minimum value 142 represent the minimum value in the definedcurrency 135 that must be spent on thequalifying products 140 to qualify for thediscount 134. - The max per
user 143 data field may contain data which may indicate the maximum number of the smartcoupons 102 that may be used by aconsumer 101A. - The
geography restrictions 144 data field may contain data which may indicate any geographic restrictions to where the smartcoupon 102 may be validated or redeemed. - The
retailer restrictions 145 data field may contain data which may indicate whichretailers 101B may or may not validate or redeem the smartcoupon 102. - The
other restrictions 146 data field may contain data which may indicate or describe any other restrictions which an issuer 101C may require to be met in order for the smartcoupon to be determined to be valid. -
FIG. 7 shows some data fields of aredemption token 127 and some exemplary data the fields may contain. In some embodiments, aredemption token 127 may include one or more data fields such as:smartcoupon_ID 122;retailer UID 150;transaction_ID 121;product UPC 151;offer unit value 152;currency 135; and redemption time and date 153. The data in the fields of theredemption token 127 describe the transaction in which the smart coupon 102 was redeemed and validated. - The
retailer UID 150 data field contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, of theretailer 101B which validated or redeemed the smartcoupon 102. - The
transaction ID 121 may contain one or more data elements including store number, aisle number receipt number or other alphanumeric strings related to the transaction event. - The
product UPC 151 data field may contain data which may comprise a unique identifier, such as an alphanumeric string, digital string, or any other suitable electronic format, which provides a Universal Product Code (UPC) or other identifier for the product(s) to which the smartcoupon 102 was applied. - The
offer unit value 152 data field may contain data which may indicate the value of the smartcoupon 102 and which may be deducted from the price that theconsumer 101A must pay to theretailer 101B to be provided to theretailer 101B by the issuer 101C. - The redemption time and date 153 data field may contain data which may indicate the time and date that the smartcoupon 102 was redeemed or validated.
- A block diagram of an example of a method for adding a block of smartcoupons to a blockchain database (“the method”) 800 according to various embodiments described herein is shown as an overview in
FIG. 8 . Themethod 800 may be used to create a smartcoupon 102 and add it to theblockchain database 109 in digital format. In some embodiments, themethod 800 may start 801 and a smartcoupon transaction record 120 may be created having asmartcoupon token 123 instep 802. The issuingengine 191 may create multiplesmartcoupon transaction records 120 with information provided by the issuer 101C through aninput interface 404 of theirclient device 400. Theissuer application 191 may initiates a request to create a block of smartcoupon transactions based on defined business rules and the quantity required. The request may be signed with thepublic key 124 of the issuer 101C. Thesmartcoupon token 123 may contain one or more data fields such as:issuer_ID 130;campaign_ID 131;offer name 132; max units issued 133;unit value 134;currency 135;issue date 136; expiry date 137; restrictions 138;rule type 139; product 140 (upc); min units purchased 141, min value purchased 142, max peruser 143;geography restrictions 144;retailers restrictions 145; andother restrictions 146. The data in the fields of thesmartcoupon token 123 may be or form the business rules of the smartcoupon 102 which must be satisfied in order for the smart coupon 102 to be redeemed and validated. For example, business rules of asmartcoupon token 123 may be: for use withproduct UPC 12345 67890; not to be used after expiry date of Jun. 30, 2016; and only to be used byretailer 101B Grocery Chain X. - In step 803 the smart
coupon transaction record 120 may be provided to theblockchain database 109 by the issuingengine 191 preferably via theblockchain engine 192. The smartcoupon transaction record 120 may be assigned to one of theblockchain nodes 112 and the request may be written to a backlog on theblockchain node 112. This backlog is designed to temporarily store and sequentially process the transactions. - In decision block 804 a determination of the validity of the smart
coupon transaction record 120 may be made. The smartcoupon transaction record 120 may be published to the blockchain and may be voted on by theother nodes 112 of theblockchain network 111 by theblockchain engine 192 preferably running on one ormore nodes 112. Theother nodes 112 vote on the transaction of the smartcoupon transaction record 120 to determine if they agree the smartcoupon transaction record 120 data creation transaction is valid. For example, if a majority (e.g. 2 of 3) of thenodes 112 agree the smartcoupon transaction record 120 data creation transaction is valid, the smartcoupon transaction record 120 may be determined to be valid. If only a minority (e.g. 1 of 3) vote for the smartcoupon transaction record 120 data creation transaction, then the smartcoupon transaction record 120 may be determined to be not valid. If the smartcoupon transaction record 120 data creation transaction is determined to be valid, themethod 800 may continue to step 805 and thesmartcoupon transaction record 120 may be published to theblockchain database 109, in which thesmartcoupon transaction record 120 includes an issuerpublic key 124 for the issuer 101C that published thesmartcoupon transaction record 120, byblockchain engine 192 and copied to theother nodes 112 and themethod 800 may finish 806. If the smartcoupon transaction record 120 data creation transaction is determined to be not valid, the smartcoupon transaction record 120 will not be published to theblockchain database 109 and themethod 800 may finish 806. -
FIG. 9 shows an example of a computer implemented method for holding (aka reserving or saving) a smartcoupon for aspecific consumer 101A when they add a smartcoupon 102 to awallet method 850 is also designed to restrict theconsumer 101A to only be able to save a single smartcoupon transaction for a givencampaign 131. The Issuer 101C defines how they want to distribute the smartcoupon token online toconsumers 101A. Theconsumer 101A discovers the offer and selects method of saving the smartcoupon(s) 102 to wallet instep 852, which can be athird party wallet 115 or asystem wallet 116. Theissuer engine 191 may first check to see if the smartcoupons are still available indecision block 853 and ensures they have not previously saved an offer indecision block 854. If they have not, then aunique smartcoupon ID 122 is issuedstep 855 by the issuingengine 191 and the status of the transaction record on the blockchain is changed to ‘held’ with the customer_ID 125 (consumer 101A identification data) being added to thesmartcoupon transaction record 120 instep 856 and the smartcoupon 102 may only be redeemed by theconsumer 101A having that matchingcustomer_ID 125. Afterstep 856, themethod 850 may finish 857. -
FIG. 10 shows an example of a computer implemented method for associating a smartcoupon with a retail transaction (“the method”) 900 according to various embodiments described herein. Themethod 900 may be used by thesystem 100 to associate a smartcoupon 102 with a retail transaction between aconsumer 101A and aretailer 101B. In some embodiments, themethod 900 may start 901 and transaction data describing one or more products may be received in step 902. The transaction data describing one or more products may include the product identification code or UPC of the product(s). In some embodiments, the transaction data may be provided to theredemption engine 193 which may be running on aretailer POS terminal 400A via a I/O interfaces 404 of theretailer POS terminal 400A type ofclient device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device. - In some embodiments, the
method 900 may proceed from step 902 to step 904 and theredemption engine 193 use received customer identification data to receive or retrieve smartcoupon identification data that may be associated with the customer identification data from asystem database 107 and/or ablockchain database 109. In further embodiments, theredemption engine 193 may receive the customer identification data, which may be acustomer_ID 125, from theretailer POS terminal 400A from aninput interface 404 of the retailer POS terminal and theissuing engine 191 may retrieve the smartcoupon identification data associated with the customer identification data from thesystem database 107 instep 905. In other embodiments, theredemption engine 193 may receive the customer identification data, which may be acustomer_ID 125, from theretailer POS terminal 400A from aninput interface 404 of the retailer POS terminal and theblockchain engine 192 may retrieve the smartcoupon identification data associated with the customer identification data from theblockchain database 109 instep 905. For example, one or more smartcoupons 102, such as by distributing thesmartcoupon token 123 may be distributed to theclient device 400 of theconsumer 101A, theconsumer 101A may select one or more smartcoupon 102, the smartcoupons 102 may be reserved forconsumer 101A, such as in awallet database method 900 may then proceed fromstep 905 to step 903. - In
step 903, smartcoupon identification data may be received. In some embodiments, themethod 900 may proceed fromstep 905 to step 903, in which smartcoupon identification data may be received by theredemption engine 193 from the issuingengine 191 orblockchain engine 192. In other embodiments, themethod 900 may proceed from step 902 to step 903, in which smartcoupon identification data may be received by theredemption engine 193 from theclient device 400 of theconsumer 101A, via aninput interface 404 of theretailer POS terminal 400A so that theconsumer 101A may use smartcoupons 102 without having to have an account orcustomer_ID 125 with thesystem 100. In some embodiments, theredemption engine 193 may receive the smartcoupon identification data, which may be thesmartCoupon_ID 122, from theretailer POS terminal 400A from aninput interface 404 of the retailer POS terminal. For example, theinput interface 404 may comprise a scanner that may be used to read thesmartCoupon_ID 122, barcode, or other smartcoupon identification data from thedisplay screen 404A of theclient device 400 of theconsumer 101A. In another example, theinput interface 404 may comprise a NFC radio that may be used to communicate with the NFC radio of theclient device 400 of theconsumer 101A to provide thesmartCoupon_ID 122, barcode, or other smartcoupon identification data to theredemption engine 193. - In step 906, one or more smartcoupons 102 may be associated with the retail transaction by the
redemption engine 193 and themethod 900 may finish 907. By associating the one or more smartcoupons 102 with the retail transaction, theredemption engine 193 may store smartcoupons 102, and their associatedsmartcoupon tokens 123 in thememory 410 of theretailer POS terminal 400A in order to perform validation and redemption of any smartcoupons 102 having business rules in theirsmartcoupon tokens 123 that are satisfied with the transaction data received by theredemption engine 193. -
FIG. 11 depicts an example of a computer implemented method for validating a smartcoupon (“the method”) 1000 according to various embodiments described herein. Themethod 1000 may be used by thesystem 100 to validate a smartcoupon 102 thereby determining if the smartcoupon 102 may be using in a retail transaction between acustomer 101A and aretailer 101B. In some embodiments, themethod 1000 may start 1001 and transaction data describing one or more products of a retail transaction may be received instep 1002. The transaction data describing one or more products may include the product identification code or UPC of the product(s). In some embodiments, the transaction data may be provided to theredemption engine 193 which may be running on aretailer POS terminal 400A via a I/O interfaces 404 of theretailer POS terminal 400A type ofclient device 400 such as a scanner or barcode reader, and/or a keypad or other manual data entry device. - In
step 1003, smartcoupon identification data may be received. In some embodiments, smartcoupon identification data may be received by theredemption engine 193 from the issuingengine 191 orblockchain engine 192. In other embodiments, smartcoupon identification data may be received by theredemption engine 193 from theclient device 400 of theconsumer 101A, via aninput interface 404 of theretailer POS terminal 400A so that theconsumer 101A may use smartcoupons 102 without having to have an account orcustomer_ID 125 with thesystem 100. In some embodiments, theredemption engine 193 may receive the smartcoupon identification data, which may be thesmartCoupon_ID 122, from theretailer POS terminal 400A from aninput interface 404 of the retailer POS terminal. - In
step 1004, thesmartcoupon token 123 of thesmartcoupon transaction record 120 that matches the received smartcoupon identification data may be retrieved from theblockchain database 109 by theblockchain engine 192 and provided to theredemption engine 193. If the status of the token equals “open” or “held” 128 then asmartcoupon token 123 for that transaction record is returned and includes the business rules formed by the data in the data fields of thesmartcoupon token 123. For example, business rules of asmartcoupon token 123 may be aproduct 139 data field of: for use withproduct UPC 12345 67890; an expiry date 137 data field of: not to be used after expiry date of Jun. 30, 2016; and aretailers 142 data field of: only to be used byretailer 101B Grocery Chain X. - In decision block 1005 a determination if the smartcoupon 102 is valid for use with the transaction data may be made. The
redemption engine 193 may compare the business rules ofsmartcoupon token 123 to the transaction information to determine if the business rules of thesmartcoupon token 123 are satisfied by the data in the transaction information in order to determine if smartcoupon 102 is valid. In preferred embodiments, the transaction data describing the product includes a product identification code, and wherein the product identification code of the transaction data describing the product is required to match the product identification code of theproduct 139 data field from the retrievedsmartcoupon token 132 in order for the smartcoupon 102 to be determined valid. Using the above example, if the transaction information includes aproduct UPC 12345 67890; a date on or before Jun. 30, 2016; and aretailers 142 data field of: only to be used byretailer 101 B retailer UID 150 that matches Grocery Chain X, theredemption engine 193 determine that the smartcoupon 102 is valid since the business rules of thesmartcoupon token 123 are satisfied by the data in the transaction information. If one or more business rules of thesmartcoupon token 123 are not satisfied by the data in the transaction information, theredemption engine 193 determine that the smartcoupon 102 is not valid for use with the transaction described by the transaction information. - If the
redemption engine 193 determines that the smartcoupon 102 is valid, themethod 1000 may continue to step 1006 and the value of the smartcoupon 102, as described in theunit value 134 data field, may be applied to the transaction so that the value may be subtracted from the amount that theconsumer 101A must pay theretailer 101B in order to receive the product(s) and themethod 1000 may finish 1007. If theredemption engine 193 determines that the smartcoupon 102 is not valid, the value of the smartcoupon 102 may not be applied to the transaction and themethod 1000 may finish 1007. -
FIG. 12 illustrates an example of a computer implemented method for redeeming a smartcoupon (“the method”) 1100 according to various embodiments described herein. Themethod 1000 may be used by thesystem 100 to redeem a smartcoupon 102 thereby preventing the smartcoupon 102 from being used again and also to enable theretailer 101B to be compensated for accepting the smartcoupon 102 in a transaction. In some embodiments, themethod 1100 may start 1101 and identification information (the smartCoupon_ID 122) of smartcoupon 102 which had its value applied to a transaction may be received by theredemption engine 193 in step 1102. - In
step 1103, aredemption token 127 may be created by theredemption engine 193. In some embodiments, theredemption engine 193 may use the identification information (the smartCoupon_ID 122) of smartcoupon 102 and transaction information describing the retail transaction in which the smartcoupon was used to populate data fields, such assmartcoupon_ID 122;retailer UID 150;transaction_ID 121;product UPC 151;offer unit value 152;currency 135; and redemption time and date 153. Additionally, theredemption engine 193 may store the retailerpublic key 126 for theretailer 101B that created theredemption token 127 in the smartcoupon transaction record 120 of the smartcoupon 102. - In
step 1104, theredemption token 127 may be stored in smartcoupon transaction record 120 by theredemption engine 193. - In
step 1105, the smartcoupon transaction record 120 comprising theredemption token 127 may be provided to theblockchain database 109 by theredemption engine 193, preferably via theblockchain engine 192. The smartcoupon transaction record 120 may be assigned to one of theblockchain nodes 112 and the request may be written to a backlog on theblockchain node 112. - In decision block 1106 a determination of the validity of the smart
coupon transaction record 120 may be made. The smartcoupon transaction record 120 may be published to the blockchain and may be voted on by theother nodes 112 of theblockchain network 111 by theblockchain engine 192 preferably running on one ormore nodes 112. Theother nodes 112 vote on the transaction of the smartcoupon transaction record 120 to determine if they agree the smartcoupon transaction record 120 data creation transaction is valid. For example, if a majority (e.g. 2 of 3) of thenodes 112 agree the smartcoupon transaction record 120 data creation transaction is valid, the smartcoupon transaction record 120 may be determined to be valid. If only a minority (e.g. 1 of 3) vote for the smartcoupon transaction record 120 data creation transaction, then the smartcoupon transaction record 120 may be determined to be not valid. If the smartcoupon transaction record 120 data creation transaction is determined to be valid, themethod 1100 may continue to step 1107 and the smartcoupon transaction record 120 may be published to theblockchain database 109 byblockchain engine 192 and copied to theother nodes 112 and themethod 1100 may finish 1108. If the smartcoupon transaction record 120 data creation transaction is determined to be not valid, the smartcoupon transaction record 120 will not be published to theblockchain database 109 and themethod 1100 may finish 1108. - It will be appreciated that some exemplary embodiments described herein may include one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein. Alternatively, some or all functions may be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches may be used. Moreover, some exemplary embodiments may be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer, server, appliance, device, etc. each of which may include a processor to perform methods as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), a Flash memory, and the like.
- Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a propagated signal or a computer readable medium. The propagated signal is an artificially generated signal, e.g., a machine generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.
- A computer program (also known as a program, software, software application, application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- Additionally, the logic flows and structure block diagrams described in this patent document, which describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed structural means, may also be utilized to implement corresponding software structures and algorithms, and equivalents thereof. The processes and logic flows described in this specification can be performed by one or more programmable processors (computing device processors) executing one or more computer applications or programs to perform functions by operating on input data and generating output.
- Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, solid state drives, or optical disks. However, a computer need not have such devices.
- Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network or the cloud. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client server relationship to each other.
- Further, many embodiments are described in terms of sequences of actions to be performed by, for example, elements of a computing device. It will be recognized that various actions described herein can be performed by specific circuits (e.g., application specific integrated circuits (ASICs)), by program instructions being executed by one or more processors, or by a combination of both. Additionally, these sequence of actions described herein can be considered to be embodied entirely within any form of computer readable storage medium having stored therein a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various aspects of the invention may be embodied in a number of different forms, all of which have been contemplated to be within the scope of the claimed subject matter. In addition, for each of the embodiments described herein, the corresponding form of any such embodiments may be described herein as, for example, “logic configured to” perform the described action.
- The computer system may also include a main memory, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus for storing information and instructions to be executed by processor. In addition, the main memory may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor. The computer system may further include a read only memory (ROM) or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus for storing static information and instructions for the processor.
- The computer system may also include a disk controller coupled to the bus to control one or more storage devices for storing information and instructions, such as a magnetic hard disk, and a removable media drive (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). The storage devices may be added to the computer system using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).
- The computer system may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)).
- The computer system may also include a display controller coupled to the bus to control a display, such as a cathode ray tube (CRT), liquid crystal display (LCD) or any other type of display, for displaying information to a computer user. The computer system may also include input devices, such as a keyboard and a pointing device, for interacting with a computer user and providing information to the processor. Additionally, a touch screen could be employed in conjunction with display. The pointing device, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor and for controlling cursor movement on the display. In addition, a printer may provide printed listings of data stored and/or generated by the computer system.
- The computer system performs a portion or all of the processing steps of the invention in response to the processor executing one or more sequences of one or more instructions contained in a memory, such as the main memory. Such instructions may be read into the main memory from another computer readable medium, such as a hard disk or a removable media drive. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
- As stated above, the computer system includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below), or any other medium from which a computer can read.
- Stored on any one or on a combination of computer readable media, the present invention includes software for controlling the computer system, for driving a device or devices for implementing the invention, and for enabling the computer system to interact with a human user. Such software may include, but is not limited to, device drivers, operating systems, development tools, and applications software. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention.
- The computer code or software code of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
- Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to processor for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions for implementing all or a portion of the present invention remotely into a dynamic memory and send the instructions over the air (e.g. through a wireless cellular network or wifi network). A modem local to the computer system may receive the data over the air and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to the bus can receive the data carried in the infrared signal and place the data on the bus. The bus carries the data to the main memory, from which the processor retrieves and executes the instructions. The instructions received by the main memory may optionally be stored on storage device either before or after execution by processor.
- The computer system also includes a communication interface coupled to the bus. The communication interface provides a two-way data communication coupling to a network link that is connected to, for example, a local area network (LAN), or to another communications network such as the Internet. For example, the communication interface may be a network interface card to attach to any packet switched LAN. As another example, the communication interface may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line. Wireless links may also be implemented. In any such implementation, the communication interface sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- The network link typically provides data communication to the cloud through one or more networks to other data devices. For example, the network link may provide a connection to another computer or remotely located presentation device through a local network (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network. In preferred embodiments, the local network and the communications network preferably use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link and through the communication interface, which carry the digital data to and from the computer system, are exemplary forms of carrier waves transporting the information. The computer system can transmit and receive data, including program code, through the network(s) and, the network link and the communication interface. Moreover, the network link may provide a connection through a LAN to a client device or client device such as a personal digital assistant (PDA), laptop computer, tablet computer, smartphone, or cellular telephone. The LAN communications network and the other communications networks such as cellular wireless and wifi networks may use electrical, electromagnetic or optical signals that carry digital data streams. The processor system can transmit notifications and receive data, including program code, through the network(s), the network link and the communication interface.
- Although the present invention has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and examples may perform similar functions and/or achieve like results. All such equivalent embodiments and examples are within the spirit and scope of the present invention, are contemplated thereby, and are intended to be covered by the following claims.
Claims (20)
1. A computer implemented method for providing an electronic coupon system using a blockchain, the method comprising the steps of:
creating a smartcoupon transaction record having data which includes a smartcoupon token;
providing the smartcoupon transaction record to a blockchain database;
determining if the smart coupon transaction record is valid; and
publishing the smartcoupon transaction record to the blockchain database, the smartcoupon transaction record including a public key for an issuer that published the smartcoupon transaction record.
2. The method of claim 1 , wherein the smartcoupon token comprises a unit value and a business rule.
3. The method of claim 2 , wherein the business rule includes a universal product identification code.
4. The method of claim 2 , further comprising the steps of:
receiving transaction data describing a product of a retail transaction;
receiving smartcoupon identification data;
retrieving a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database;
comparing business rules of smartcoupon token to transaction information to determine if smartcoupon is valid; and
applying the unit value of valid smart coupon to the retail transaction.
5. The method of claim 4 , wherein the transaction data describing a product includes a product identification code, and wherein the product identification code of the transaction data describing a product is required to match the product identification code from the retrieved smartcoupon token in order for the smartcoupon to be determined valid.
6. The method of claim 4 , wherein a consumer identification is associated with the smartcoupon identification data in the system database, and wherein the smartcoupon identification data is received by the retailer pos terminal.
7. The method of claim 4 , wherein the smartcoupon identification data is received by the retailer pos terminal from an input interface of the retailer pos terminal.
8. The method of claim 4 , wherein the smartcoupon identification data is received by the retailer pos terminal from the blockchain database.
9. The method of claim 4 , further comprising the steps of:
receiving smartcoupon identification data of smartcoupon applied to the retail transaction;
creating a redemption token;
storing the redemption token in smart coupon transaction record;
providing the smart coupon transaction record to a blockchain database;
determining if the smart coupon transaction record is valid; and
publishing the smart coupon transaction record to the blockchain database.
10. The method of claim 1 , wherein smart coupon transaction record comprises a public key for the retailer that created the redemption token.
11. A computer implemented electronic coupon system using a blockchain, the system comprising:
a client device having a display screen and an input interface for receiving input from a user;
a retailer POS terminal having a display screen and an input interface for receiving input;
a computing platform having a processor, a memory in communication with the processor;
issuing logic stored in the memory, executable by the processor, wherein the issuing logic is configured to create a smart coupon transaction record having data which includes a smartcoupon token, and wherein the issuing logic is configured to provide the smart coupon transaction record to a blockchain database; and
blockchain logic stored in the memory, executable by the processor, wherein the blockchain logic is configured to determine if the smart coupon transaction record is valid, and wherein the blockchain logic is configured to publish the smart coupon transaction record to the blockchain database.
12. The system of claim 11 , wherein the smartcoupon token comprises a unit value and a business rule.
13. The system of claim 12 , wherein the business rule includes a universal product identification code.
14. The system of claim 12 , further comprising redemption logic stored in the memory, executable by the processor, wherein the redemption logic is configured to receive transaction data describing a product of a retail transaction, wherein the redemption logic is configured to provide smartcoupon identification data to the blockchain logic, wherein the blockchain logic is configured to retrieve a smartcoupon token of the smart coupon transaction record that matches the received smartcoupon identification data from the blockchain database, wherein the redemption logic is configured to compare business rules of smartcoupon token to transaction information to determine if smartcoupon is valid, and wherein the redemption logic is configured to apply the unit value of valid smart coupon to the retail transaction.
15. The system of claim 14 , wherein the transaction data describing a product includes a product identification code, and wherein the product identification code of the transaction data describing a product is required to match the product identification code from the retrieved smartcoupon token in order for the smartcoupon to be determined valid.
16. The system of claim 14 , wherein a consumer identification is associated with the smartcoupon identification data in a system database, and wherein the smartcoupon identification data is received by the retailer POS terminal from the system database via the issuing logic.
17. The system of claim 14 , wherein the smartcoupon identification data is received by the retailer pos terminal from an input interface of the retailer pos terminal.
18. The system of claim 14 , wherein the smartcoupon identification data is received by the retailer pos terminal from the blockchain database via the blockchain logic.
19. The system of claim 14 , wherein the redemption logic is configured to create a redemption token which includes the smartcoupon identification data of smartcoupon applied to the retail transaction, wherein the redemption logic is configured to store the redemption token in smart coupon transaction record, wherein the redemption logic is configured to provide the smart coupon transaction record to a blockchain database, wherein the blockchain logic is configured to determine if the smart coupon transaction record is valid, and wherein the blockchain logic is configured to publish the smart coupon transaction record to the blockchain database.
20. The system of claim 19 , wherein smart coupon transaction record comprises a public key for the retailer that created the redemption token.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/617,352 US20170364936A1 (en) | 2016-06-15 | 2017-06-08 | Computer-implemented electronic coupon system and methods using a blockchain |
US16/830,506 US11004101B2 (en) | 2016-06-15 | 2020-03-26 | Coupon system and methods using a blockchain |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662350226P | 2016-06-15 | 2016-06-15 | |
US15/617,352 US20170364936A1 (en) | 2016-06-15 | 2017-06-08 | Computer-implemented electronic coupon system and methods using a blockchain |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/830,506 Continuation US11004101B2 (en) | 2016-06-15 | 2020-03-26 | Coupon system and methods using a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170364936A1 true US20170364936A1 (en) | 2017-12-21 |
Family
ID=60659464
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/617,352 Abandoned US20170364936A1 (en) | 2016-06-15 | 2017-06-08 | Computer-implemented electronic coupon system and methods using a blockchain |
US16/830,506 Active US11004101B2 (en) | 2016-06-15 | 2020-03-26 | Coupon system and methods using a blockchain |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/830,506 Active US11004101B2 (en) | 2016-06-15 | 2020-03-26 | Coupon system and methods using a blockchain |
Country Status (1)
Country | Link |
---|---|
US (2) | US20170364936A1 (en) |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150865A1 (en) * | 2016-11-29 | 2018-05-31 | Mastercard International Incorporated | Method and system for authentication of coupons via blockchain |
CN108629694A (en) * | 2018-05-16 | 2018-10-09 | 北京京东尚科信息技术有限公司 | Risk control system and method and computer readable storage medium |
CN108810006A (en) * | 2018-06-25 | 2018-11-13 | 百度在线网络技术(北京)有限公司 | resource access method, device, equipment and storage medium |
CN108923908A (en) * | 2018-06-25 | 2018-11-30 | 百度在线网络技术(北京)有限公司 | authorization processing method, device, equipment and storage medium |
CN109409935A (en) * | 2018-09-27 | 2019-03-01 | 深圳市积分易科技有限公司 | A kind of marketing equity digitizing solution based on block chain |
CN109461026A (en) * | 2018-10-24 | 2019-03-12 | 深圳市优权天成科技有限公司 | Card certificate distribution method, device, computer equipment and storage medium |
CN109741087A (en) * | 2018-12-11 | 2019-05-10 | 中国联合网络通信集团有限公司 | The management method and device of electronic coupons |
CN109767211A (en) * | 2018-11-30 | 2019-05-17 | 杭州艾逗网络科技有限公司 | A kind of transaction platform and electronic trade method |
EP3514743A1 (en) * | 2018-01-22 | 2019-07-24 | Siemens Aktiengesellschaft | Device and method for providing instruction data for manufacturing an individualized product |
US20190236564A1 (en) * | 2018-01-31 | 2019-08-01 | Walmart Apollo, Llc | System and method for digital currency via blockchain |
WO2019157970A1 (en) * | 2018-02-13 | 2019-08-22 | Beijing Didi Infinity Technology And Development Co., Ltd. | Certificate issuing systems and methods based on blockchain |
US20190288847A1 (en) * | 2018-03-16 | 2019-09-19 | General Electric Company | Industrial data verification using secure, distributed ledger |
CN110263579A (en) * | 2018-11-16 | 2019-09-20 | 腾讯科技(深圳)有限公司 | A kind of data processing method, system and relevant device |
CN110348825A (en) * | 2019-06-26 | 2019-10-18 | 阿里巴巴集团控股有限公司 | Electronic bill delivery method and device and electronic equipment based on block chain |
WO2019217555A1 (en) * | 2018-05-08 | 2019-11-14 | Xspero U.S. | Systems and methods for e-certificate exchange and validation |
CN110458676A (en) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | Equity transfer method and device and electronic equipment based on block chain |
CN110502732A (en) * | 2019-07-09 | 2019-11-26 | 威富通科技有限公司 | A kind of rule generating method of discount coupon, device and server |
US10489780B2 (en) | 2018-03-05 | 2019-11-26 | Capital One Services, Llc | Systems and methods for use of distributed ledger technology for recording and utilizing credit account transaction information |
CN110544126A (en) * | 2019-08-30 | 2019-12-06 | 北京艾摩瑞策科技有限公司 | Limited commodity coupon information evidence storing method and system on block chain |
CN110737723A (en) * | 2019-10-12 | 2020-01-31 | 腾讯科技(深圳)有限公司 | Method, device and equipment for getting card ticket and storage medium |
CN111325583A (en) * | 2020-03-20 | 2020-06-23 | 贵阳块数据城市建设有限公司 | Design method for recording life cycle of electronic ticket based on block chain technology |
JP2020115307A (en) * | 2019-01-18 | 2020-07-30 | 国立大学法人東北大学 | Information processing system, and service data providing method |
CN111598609A (en) * | 2020-04-08 | 2020-08-28 | 杭州宇链科技有限公司 | Block chain-based consumption ticket issuing and managing method |
CN111667268A (en) * | 2020-05-29 | 2020-09-15 | 中国工商银行股份有限公司 | Transaction method, node and system based on block chain |
CN111680274A (en) * | 2020-03-03 | 2020-09-18 | 支付宝(杭州)信息技术有限公司 | Resource access method, device and equipment |
WO2020198040A1 (en) * | 2019-03-22 | 2020-10-01 | Quotient Technology Inc. | Multi-axis blockchain clearance of offers |
CN111784090A (en) * | 2019-04-04 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | Resource allocation method and device based on block chain and storage medium |
CN111784393A (en) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | Electronic ticket issuing method and device |
WO2020223428A1 (en) | 2019-04-30 | 2020-11-05 | Catalina Marketing Corporation | Coupon validation and fraud mitigation |
CN112150200A (en) * | 2020-09-22 | 2020-12-29 | 北京金和网络股份有限公司 | Anti-counterfeiting control system for verifying and selling consumption tickets |
CN112508561A (en) * | 2020-11-30 | 2021-03-16 | 乐刷科技有限公司 | Coupon data sharing method and device, block chain sharing platform and storage medium |
US20210110373A1 (en) * | 2019-10-14 | 2021-04-15 | Capital One Services, Llc | Social media account-linking checkout |
US11055681B2 (en) | 2018-06-28 | 2021-07-06 | ZM Ventures LLC | Third party relationship management for attraction access |
CN113094433A (en) * | 2021-04-06 | 2021-07-09 | 中国工商银行股份有限公司 | Block chain-based consumption coupon processing method and device |
US20210233122A1 (en) * | 2020-01-26 | 2021-07-29 | International Business Machines Corporation | Product exploration-based promotion |
US11107103B2 (en) | 2019-05-14 | 2021-08-31 | Advanced New Technologies Co., Ltd. | Multi-card overlay display |
US11132707B2 (en) | 2018-04-25 | 2021-09-28 | At&T Intellectual Property I, L.P. | Blockchain solution for an automated advertising marketplace |
US11153621B2 (en) | 2019-05-14 | 2021-10-19 | At&T Intellectual Property I, L.P. | System and method for managing dynamic pricing of media content through blockchain |
US11263656B1 (en) * | 2018-04-17 | 2022-03-01 | Walgreen Co. | Coupon clearinghouse with blockchain |
CN114463038A (en) * | 2021-12-29 | 2022-05-10 | 中国电信股份有限公司 | Coupon verification method and device based on block chain intelligent contract |
US11328278B2 (en) | 2018-06-29 | 2022-05-10 | Xenial, Inc. | Point of sale terminal system and multi terminal network |
US11341818B2 (en) | 2018-05-08 | 2022-05-24 | Xspero U.S. | Systems and methods for authenticated blockchain data distribution |
US20220188944A1 (en) * | 2020-12-14 | 2022-06-16 | Lucas GC Limited | Blockchain-Based Referral Tracking System (BRTS) |
US11494798B1 (en) * | 2017-09-07 | 2022-11-08 | Groupon, Inc. | Facilitating the application of a ledger to programmatically identify duplicate data objects indicative of multiple card-linked offers provided against a single transaction |
US20220383353A1 (en) * | 2020-12-14 | 2022-12-01 | Lucas GC Limited | Referral monetization in social network |
EP3994652A4 (en) * | 2019-07-05 | 2023-03-15 | Skuxchange, LLC | Systems and methods for managing promotional offer issuance and redemption and reducing fraud |
US11769167B1 (en) * | 2022-11-28 | 2023-09-26 | Bambumeta, Llc | Systems and methods for customizing the retail shopping experience on an individualized basis |
US11887146B2 (en) | 2020-01-26 | 2024-01-30 | International Business Machines Corporation | Product exploration-based promotion |
US12067089B2 (en) | 2020-02-18 | 2024-08-20 | At&T Intellectual Property I, L.P. | Split ledger software license platform |
US12125054B2 (en) | 2018-09-25 | 2024-10-22 | Valideck International Corporation | System, devices, and methods for acquiring and verifying online information |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436623B2 (en) * | 2018-05-17 | 2022-09-06 | Jpmorgan Chase Bank, N.A. | Systems and methods for reward account processing using a distributed ledger |
US20220044215A1 (en) * | 2018-09-11 | 2022-02-10 | NIIT Technologies Ltd | Consumer controlled sharing of details of retail transactions |
CN111066050B (en) * | 2019-04-12 | 2023-07-28 | 创新先进技术有限公司 | Retrieving value of digital ticket in blockchain networks using smart contracts |
CN112561597A (en) * | 2020-12-23 | 2021-03-26 | 广州华多网络科技有限公司 | Information configuration control method, device, equipment and medium thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130282492A1 (en) * | 2007-06-12 | 2013-10-24 | Catalina Marketing Corporation | Store solutions |
US20160379241A1 (en) * | 2015-06-26 | 2016-12-29 | Vantiv, Llc | Systems and methods for consumer loyalty management |
US20190073666A1 (en) * | 2016-02-12 | 2019-03-07 | Royal Bank Of Canada | Methods and systems for digital reward processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321208B1 (en) | 1995-04-19 | 2001-11-20 | Brightstreet.Com, Inc. | Method and system for electronic distribution of product redemption coupons |
US6041309A (en) | 1998-09-25 | 2000-03-21 | Oneclip.Com, Incorporated | Method of and system for distributing and redeeming electronic coupons |
JP2002269425A (en) | 2001-03-12 | 2002-09-20 | Nec Corp | Electronic coupon method, electronic coupon system, sales server, orderer terminal, order receiver terminal and program |
US20040249712A1 (en) | 2003-06-06 | 2004-12-09 | Brown Sean D. | System, method and computer program product for presenting, redeeming and managing incentives |
US10248951B2 (en) | 2004-12-01 | 2019-04-02 | Metavante Corporation | E-coupon settlement and clearing process |
US9076158B2 (en) | 2006-09-13 | 2015-07-07 | Google Inc. | Integrated system and method for managing electronic coupons |
US20130024257A1 (en) * | 2011-06-23 | 2013-01-24 | Savingstar | Systems and methods for electronic coupon cap control |
EP2626825A1 (en) | 2012-02-08 | 2013-08-14 | Ludwig Maximilians Universität | Method for processing electronic coupons |
US20140207552A1 (en) | 2013-01-22 | 2014-07-24 | Celilo Group Media | Publishing and redeeming electronic manufacturer coupons |
US20140278906A1 (en) | 2013-03-15 | 2014-09-18 | Tech Fusion Corporation | Coupon system |
-
2017
- 2017-06-08 US US15/617,352 patent/US20170364936A1/en not_active Abandoned
-
2020
- 2020-03-26 US US16/830,506 patent/US11004101B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130282492A1 (en) * | 2007-06-12 | 2013-10-24 | Catalina Marketing Corporation | Store solutions |
US20160379241A1 (en) * | 2015-06-26 | 2016-12-29 | Vantiv, Llc | Systems and methods for consumer loyalty management |
US20190073666A1 (en) * | 2016-02-12 | 2019-03-07 | Royal Bank Of Canada | Methods and systems for digital reward processing |
Cited By (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544731B2 (en) | 2016-11-29 | 2023-01-03 | Mastercard International Incorporated | Method and system for authentication of coupons via blockchain |
US10796329B2 (en) * | 2016-11-29 | 2020-10-06 | Mastercard International Incorporated | Method and system for authentication of coupons via blockchain |
US20180150865A1 (en) * | 2016-11-29 | 2018-05-31 | Mastercard International Incorporated | Method and system for authentication of coupons via blockchain |
US11494798B1 (en) * | 2017-09-07 | 2022-11-08 | Groupon, Inc. | Facilitating the application of a ledger to programmatically identify duplicate data objects indicative of multiple card-linked offers provided against a single transaction |
EP3514743A1 (en) * | 2018-01-22 | 2019-07-24 | Siemens Aktiengesellschaft | Device and method for providing instruction data for manufacturing an individualized product |
US20190236564A1 (en) * | 2018-01-31 | 2019-08-01 | Walmart Apollo, Llc | System and method for digital currency via blockchain |
WO2019157970A1 (en) * | 2018-02-13 | 2019-08-22 | Beijing Didi Infinity Technology And Development Co., Ltd. | Certificate issuing systems and methods based on blockchain |
CN110163641A (en) * | 2018-02-13 | 2019-08-23 | 北京嘀嘀无限科技发展有限公司 | Discount coupon distribution method and system |
US11328292B2 (en) | 2018-03-05 | 2022-05-10 | Capital One Services, Llc | Systems and methods for use of distributed ledger technology for recording and utilizing credit account transaction information |
US10489780B2 (en) | 2018-03-05 | 2019-11-26 | Capital One Services, Llc | Systems and methods for use of distributed ledger technology for recording and utilizing credit account transaction information |
US20190288847A1 (en) * | 2018-03-16 | 2019-09-19 | General Electric Company | Industrial data verification using secure, distributed ledger |
US11582042B2 (en) * | 2018-03-16 | 2023-02-14 | General Electric Company | Industrial data verification using secure, distributed ledger |
US11263656B1 (en) * | 2018-04-17 | 2022-03-01 | Walgreen Co. | Coupon clearinghouse with blockchain |
US12136102B1 (en) * | 2018-04-17 | 2024-11-05 | Walgreen Co. | Coupon clearinghouse with blockchain |
US11132707B2 (en) | 2018-04-25 | 2021-09-28 | At&T Intellectual Property I, L.P. | Blockchain solution for an automated advertising marketplace |
US11636448B2 (en) | 2018-05-08 | 2023-04-25 | Xspero U.S. | Systems and methods for e-certificate exchange and validation |
US12067851B2 (en) | 2018-05-08 | 2024-08-20 | Xspero, U.S. | Systems and methods for authenticated blockchain data distribution |
WO2019217555A1 (en) * | 2018-05-08 | 2019-11-14 | Xspero U.S. | Systems and methods for e-certificate exchange and validation |
US11055675B2 (en) | 2018-05-08 | 2021-07-06 | Xspero U.S. | Systems and methods for e-certificate exchange and validation |
US11341818B2 (en) | 2018-05-08 | 2022-05-24 | Xspero U.S. | Systems and methods for authenticated blockchain data distribution |
CN108629694A (en) * | 2018-05-16 | 2018-10-09 | 北京京东尚科信息技术有限公司 | Risk control system and method and computer readable storage medium |
CN108923908A (en) * | 2018-06-25 | 2018-11-30 | 百度在线网络技术(北京)有限公司 | authorization processing method, device, equipment and storage medium |
CN108810006A (en) * | 2018-06-25 | 2018-11-13 | 百度在线网络技术(北京)有限公司 | resource access method, device, equipment and storage medium |
US11263608B2 (en) | 2018-06-28 | 2022-03-01 | ZM Ventures LLC | Electronic voucher management for attraction access |
US11055681B2 (en) | 2018-06-28 | 2021-07-06 | ZM Ventures LLC | Third party relationship management for attraction access |
US11328278B2 (en) | 2018-06-29 | 2022-05-10 | Xenial, Inc. | Point of sale terminal system and multi terminal network |
US12125054B2 (en) | 2018-09-25 | 2024-10-22 | Valideck International Corporation | System, devices, and methods for acquiring and verifying online information |
CN109409935A (en) * | 2018-09-27 | 2019-03-01 | 深圳市积分易科技有限公司 | A kind of marketing equity digitizing solution based on block chain |
CN109461026A (en) * | 2018-10-24 | 2019-03-12 | 深圳市优权天成科技有限公司 | Card certificate distribution method, device, computer equipment and storage medium |
CN110263579A (en) * | 2018-11-16 | 2019-09-20 | 腾讯科技(深圳)有限公司 | A kind of data processing method, system and relevant device |
CN109767211A (en) * | 2018-11-30 | 2019-05-17 | 杭州艾逗网络科技有限公司 | A kind of transaction platform and electronic trade method |
CN109741087A (en) * | 2018-12-11 | 2019-05-10 | 中国联合网络通信集团有限公司 | The management method and device of electronic coupons |
JP2020115307A (en) * | 2019-01-18 | 2020-07-30 | 国立大学法人東北大学 | Information processing system, and service data providing method |
US20220358534A1 (en) * | 2019-03-22 | 2022-11-10 | Quotient Technology Inc. | Multi-axis blockchain clearance of offers |
US11645670B2 (en) * | 2019-03-22 | 2023-05-09 | Quotient Technology Inc. | Multi-axis blockchain clearance of offers |
US11397963B2 (en) * | 2019-03-22 | 2022-07-26 | Quotient Technology Inc. | Multi-axis blockchain clearance of offers |
WO2020198040A1 (en) * | 2019-03-22 | 2020-10-01 | Quotient Technology Inc. | Multi-axis blockchain clearance of offers |
CN111784090A (en) * | 2019-04-04 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | Resource allocation method and device based on block chain and storage medium |
US20230005007A1 (en) * | 2019-04-30 | 2023-01-05 | Catalina Marketing Corporation | Coupon validation and fraud mitigation |
WO2020223428A1 (en) | 2019-04-30 | 2020-11-05 | Catalina Marketing Corporation | Coupon validation and fraud mitigation |
US11107103B2 (en) | 2019-05-14 | 2021-08-31 | Advanced New Technologies Co., Ltd. | Multi-card overlay display |
US11153621B2 (en) | 2019-05-14 | 2021-10-19 | At&T Intellectual Property I, L.P. | System and method for managing dynamic pricing of media content through blockchain |
TWI743711B (en) * | 2019-05-14 | 2021-10-21 | 開曼群島商創新先進技術有限公司 | Blockchain-implemented method, system and apparatus for presenting coupons in a user interface |
CN110348825A (en) * | 2019-06-26 | 2019-10-18 | 阿里巴巴集团控股有限公司 | Electronic bill delivery method and device and electronic equipment based on block chain |
EP3994652A4 (en) * | 2019-07-05 | 2023-03-15 | Skuxchange, LLC | Systems and methods for managing promotional offer issuance and redemption and reducing fraud |
CN110502732A (en) * | 2019-07-09 | 2019-11-26 | 威富通科技有限公司 | A kind of rule generating method of discount coupon, device and server |
CN110458676A (en) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | Equity transfer method and device and electronic equipment based on block chain |
CN110544126A (en) * | 2019-08-30 | 2019-12-06 | 北京艾摩瑞策科技有限公司 | Limited commodity coupon information evidence storing method and system on block chain |
CN110737723A (en) * | 2019-10-12 | 2020-01-31 | 腾讯科技(深圳)有限公司 | Method, device and equipment for getting card ticket and storage medium |
US20210110373A1 (en) * | 2019-10-14 | 2021-04-15 | Capital One Services, Llc | Social media account-linking checkout |
US20210233122A1 (en) * | 2020-01-26 | 2021-07-29 | International Business Machines Corporation | Product exploration-based promotion |
US11580577B2 (en) * | 2020-01-26 | 2023-02-14 | International Business Machines Corporation | Product exploration-based promotion |
US11887146B2 (en) | 2020-01-26 | 2024-01-30 | International Business Machines Corporation | Product exploration-based promotion |
US12067089B2 (en) | 2020-02-18 | 2024-08-20 | At&T Intellectual Property I, L.P. | Split ledger software license platform |
CN111680274A (en) * | 2020-03-03 | 2020-09-18 | 支付宝(杭州)信息技术有限公司 | Resource access method, device and equipment |
CN111325583A (en) * | 2020-03-20 | 2020-06-23 | 贵阳块数据城市建设有限公司 | Design method for recording life cycle of electronic ticket based on block chain technology |
CN111598609A (en) * | 2020-04-08 | 2020-08-28 | 杭州宇链科技有限公司 | Block chain-based consumption ticket issuing and managing method |
CN111667268A (en) * | 2020-05-29 | 2020-09-15 | 中国工商银行股份有限公司 | Transaction method, node and system based on block chain |
CN111784393A (en) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | Electronic ticket issuing method and device |
CN112150200A (en) * | 2020-09-22 | 2020-12-29 | 北京金和网络股份有限公司 | Anti-counterfeiting control system for verifying and selling consumption tickets |
CN112508561A (en) * | 2020-11-30 | 2021-03-16 | 乐刷科技有限公司 | Coupon data sharing method and device, block chain sharing platform and storage medium |
US11443393B2 (en) * | 2020-12-14 | 2022-09-13 | Lucas GC Limited | Blockchain-based referral tracking system (BRTS) |
US11775999B2 (en) * | 2020-12-14 | 2023-10-03 | Lucas GC Limited | Referral monetization in social network |
US20220383353A1 (en) * | 2020-12-14 | 2022-12-01 | Lucas GC Limited | Referral monetization in social network |
US20220188944A1 (en) * | 2020-12-14 | 2022-06-16 | Lucas GC Limited | Blockchain-Based Referral Tracking System (BRTS) |
CN113094433A (en) * | 2021-04-06 | 2021-07-09 | 中国工商银行股份有限公司 | Block chain-based consumption coupon processing method and device |
CN114463038A (en) * | 2021-12-29 | 2022-05-10 | 中国电信股份有限公司 | Coupon verification method and device based on block chain intelligent contract |
US11769167B1 (en) * | 2022-11-28 | 2023-09-26 | Bambumeta, Llc | Systems and methods for customizing the retail shopping experience on an individualized basis |
Also Published As
Publication number | Publication date |
---|---|
US20200226630A1 (en) | 2020-07-16 |
US11004101B2 (en) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11004101B2 (en) | Coupon system and methods using a blockchain | |
US20200051073A1 (en) | System and method for enhanced token-based payments | |
US8620790B2 (en) | Systems and methods for dynamic transaction-payment routing | |
US10147112B2 (en) | Delayed processing window in a prepaid architecture | |
US9123040B2 (en) | Systems and methods for encoded alias based transactions | |
US20150161605A1 (en) | Systems and methods for generating and using a digital pass | |
US20100042517A1 (en) | Universal loyalty systems and methods | |
US20120191556A1 (en) | Systems and methods for virtual mobile transaction | |
KR20140114349A (en) | Method and system for mobile commerce with real-time purchase support | |
WO2014190212A1 (en) | Split tender in a prepaid architecture | |
US11238426B1 (en) | Associating an account with a card | |
US20230153793A1 (en) | Re-using e-commerce payment instruments for in-store use systems and methods | |
US10325322B2 (en) | System and method for providing a spend memory record | |
US20130282470A1 (en) | System and method for providing real-time loyalty discounts and paperless receipts | |
US20130211937A1 (en) | Using credit card/bank rails to access a user's account at a pos | |
US20200357015A1 (en) | Systems and methods for electronic transaction authorizations based on consumer device activity | |
WO2015095517A1 (en) | A system and method for enhanced token-based payments | |
US11704640B2 (en) | Automatic invoice notification | |
US20160078389A1 (en) | Customer satisfaction-based ratings | |
US20170364944A1 (en) | Systems and methods for efficient processing of large scale propagation of resources among accounts | |
US20160350783A1 (en) | Systems and methods to organize data supporting efficient processing of large scale propagation of resources among users of accounts | |
US20160132958A1 (en) | Hybrid Fulfillment for Shopping Carts | |
US20150058105A1 (en) | System and method for rewards calculation | |
US20180040015A1 (en) | System for resource allocation and conservation of unused portion | |
WO2024173200A1 (en) | Method, system, and computer program product for generating a single-use digital asset |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |