US20140297537A1 - Automated application programming interface (api) system and method - Google Patents
Automated application programming interface (api) system and method Download PDFInfo
- Publication number
- US20140297537A1 US20140297537A1 US14/216,198 US201414216198A US2014297537A1 US 20140297537 A1 US20140297537 A1 US 20140297537A1 US 201414216198 A US201414216198 A US 201414216198A US 2014297537 A1 US2014297537 A1 US 2014297537A1
- Authority
- US
- United States
- Prior art keywords
- customer
- party vendor
- vendor
- customer information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013475 authorization Methods 0.000 claims abstract description 29
- 238000012790 confirmation Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 9
- 230000008520 organization Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 239000005441 aurora Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 240000004045 Cassia javanica Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- 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
-
- 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/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- 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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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/12—Payment architectures specially adapted for electronic shopping 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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- 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/0279—Fundraising management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/08—Annexed information, e.g. attachments
Definitions
- the present invention is related to e-commerce.
- SaaS software as a service
- PaaS platform as a service
- IaaS Infrastructure as a Service
- SaaS is essentially “on-demand software” supplied by software vendors where software and associated data are centrally hosted on the cloud. SaaS software can be accessed by customers using a thin client via a web browser.
- IaaS is a model wherein a company outsources the equipment for operation, such as storage, hardware, servers and networking components.
- PaaS is a model allowing customers to rent hardware, operating systems, storage and network capacity over the Internet.
- many companies and non-profit organizations do not like being tied to a monthly fee.
- the flexibility to customize to a particular business's needs may be limited based on the rules of the SaaS, PaaS, and IaaS provides.
- the application programming interface (API) disclosed herein allows third parties to request two-click payment buttons for inclusion in HTML formatted electronic communications.
- the methods and apparatus disclosed herein allow the process to be automated and scaled. It also allows access control for button generation at a per-account basis.
- a method for leveraging email to complete an online transaction from a third party vendor comprising: storing customer information, the customer information including a customer name, customer email address, customer shipping address, and customer billing information.
- the method further comprises receiving an authorization request from an application programming interface associated with a third party vendor requesting access to a portion of the customer information and receiving confirmation from a customer to allow the third party vendor to access the portion of the customer information.
- the method further comprising transmitting an access code to the third party vendor and receiving a request message from the third party vendor, wherein the request message comprises the access code, and wherein the request message requests an authorization token.
- the method may further comprise confirming the received access code and transmitting an authorization token to the third party vendor.
- FIG. 1 shows an example system that may be utilized for e-commerce transactions
- FIG. 2 shows a flow diagram for a method for implementing an API interface
- FIG. 3 shows communication between a payment server and a vendor server
- FIG. 4 is an example web page for a customer to set up an account with the payment server
- FIG. 5 is an example web page for a customer to enter billing information into the payment server
- FIG. 6 is an example web page for a customer to enter credit card information into the payment server
- FIG. 7 is an example web page for a customer to agree to terms of service of the payment server
- FIG. 8 is an example web page for a soliciting permission to share information with a third party
- FIG. 9 is an example web page showing a customer device purchasing an item from a vendor server using the API
- FIG. 10 is another example web page showing a customer device purchasing an item from a vendor server using the API
- FIG. 11 is another example of web page showing a customer device purchasing an item from a vendor server using the API.
- FIG. 12 shows an example email generated by a vendor server using the API.
- token may refer to a sequence of byte data or a string or a file used to authenticate a transaction.
- a token may be one or multiple encrypted strings, files, passwords, cyphers or other data which may contain information used to perform or authenticate a transaction when sent to payment servers.
- These tokens may be encrypted using a public-private key encryption system. The vendor or a party with knowledge of the vendor's private key may generate an encrypted token. Alternatively, a payment system or e-commerce site may generate this token on behalf of the vendor.
- the system and method may use an email server/account to complete an e-commerce transaction (e.g., for items/services/events/donations) for a transfer of funds from a customer to a vendor (e.g. retail site, charity, political organization or other vendor.) While the technologies described herein are discussed using e-mail as an example, they may also be applicable to similar communication mediums, such as SMS and MMS communication channels.
- API application programming interface
- FIG. 1 shows an example system 100 that may be utilized for email based financial transactions.
- the example system 100 includes a customer device 150 , a vendor server 120 , a payment server 140 , and a banking server that may communicate over one or more wired and/or wireless communication networks 110 .
- the wired or wireless communication networks 110 may be public, private or a combination of public or private networks.
- the customer device 150 may be, for example, a cellular phone, a smartphone, a desktop computer, a laptop computer, a tablet computer, or any other appropriate computing device.
- the customer device 150 includes a processor 151 , memory 152 , a communications unit 153 , a display unit 154 and web browser unit 155 , which may communicate data to/from the web server module(s) in the vendor server 120 and payment server 140 .
- the web browser unit 155 may include and/or communicate with one or more sub-modules that perform functionality such as rendering HTML (including but not limited to HTML5), rendering raster and/or vector graphics, executing JAVASCRIPT, and/or rendering multimedia content.
- the web browser unit 155 may implement Rich Internet Application (RIA) and/or multimedia technologies such as ADOBE FLASH and/or other technologies compatible with Internet based communications.
- the web browser unit 155 may implement RIA and/or multimedia technologies using one or web browser plug-in modules (e.g., ADOBE FLASH), and/or using one or more sub-modules within the web browser unit 155 itself.
- the web browser unit 155 may display data on one or more display devices (not depicted) that are included in or connected to the customer device 150 , such as a liquid crystal display (LCD) display or monitor.
- LCD liquid crystal display
- the customer device 150 may receive input from the user of the customer device 150 from input devices (not depicted) that are included in, or connected to, the customer device 150 , such as a keyboard, a mouse, a microphone or a touch screen, and provide data that indicates the input to the web browser unit 155 .
- input devices not depicted
- the customer device 150 such as a keyboard, a mouse, a microphone or a touch screen
- the vendor server 120 may include an HTTP server module 121 , a token generator 122 , a button generator 123 , a processor 124 , memory 125 , a payment gateway 126 and a communications unit 127 .
- the HTTP server module 121 provides a website that may be accessed by a customer device 150 .
- the HTTP server module 121 may implement the HTTP protocol, and may communicate Hypertext Markup Language (HTML) pages and related data from the website to/from the customer device 150 using HTTP.
- the vendor server 120 may be connected to one or more private or public networks (such as the Internet), via which the HTTP server module 121 communicates with devices such as the customer device 150 .
- the HTTP server module 121 may generate one or more web pages and may communicate the web pages to the customer device 150 , and may receive responsive information from the customer device 150 .
- the HTTP server module 121 may be, for example, an NGINX server APACHE HTTP server, a SUN-ONE Web Server, a MICROSOFT INTERNET Information Services (IIS) server, and/or may be based on any other appropriate HTTP server technology.
- the vendor server 120 may also include one or more additional components or modules (not depicted), such as one or more load balancers, firewall devices, routers, switches, and devices that handle power backup and data redundancy.
- the payment gateway 126 may be a proprietary service that directly connects with the payment processors, such as banking server 160 to handle the credit card data, and authorize credit card payments.
- the token generator 122 may generate tokens for use in e-commerce transactions. Tokens may be encrypted sequence of data which contain information to perform a transaction when sent to the payment server(s) 140 . Additionally or alternatively, a token may be one or multiple encrypted strings, files, passwords, cyphers or other data which may contain information used to perform or authenticate a transaction. A token may include one or more of the following parameters or other parameters not listed below:
- the system 100 is designed to allow the vendor flexibility to offer deals for a limited time or number or responsive to available inventory.
- the token may be configured to expire by default after two weeks, or any predetermined time, or never expire.
- the vendor server 120 may be configured to extend or shorten the expiration time of a particular offer associated with a token without resending an email or generating a new token.
- the vendor server 120 may send email updates for an offer associated with a token. This may be predetermined, or may be later set, depending upon demand by customers. Additionally, the vendor server 120 may generate groups of token values that may automatically invalidate members of the group when one token is processed.
- the vendor server 120 may further be configured to send email notifications that the previously submitted token is now invalid.
- the button generator 123 may create cross-client and cross-browser compatible buttons for e-commerce transactions.
- the button generator 123 may include the token generator 122 to automatically generate an associated token for each button that is created.
- the token generator 122 and button generator 123 may be configured to access an API that is stored in memory 125 and controlled by processor 124 .
- the vendor server 120 using the API, as disclosed herein may communicate with the payment server 140 to provide information to the button generator 123 and the token generator 122 .
- a button and an associated token, generated by the button generator 123 and/or the token generator 122 may be embedded on a web page created by the HTTP server module 121 .
- the memory 125 may be configured to store information associated with e-commerce transactions. This may include inventory information, information used to generate web pages, customer information, and other e-commerce data.
- the payment server 140 may include an HTTP server module 141 , a token generator 142 , a processor 143 , memory 144 , payment gateway 145 and a communications unit 146 . While only one vendor server 120 is shown communicating with the payment server 140 , this is shown as only an example but there may be many payment servers 140 . Payment server 140 may communicate with multiple vendor servers 120 . A customer, wishing to use the services of the payment server 140 , may register his/her email address and payment information with the payment server 140 . Similarly, vendors may register with the payment server 140 . The payment server 140 may provide the vendor server 120 with a public key and private key to be used in token transaction in accordance with the methods described herein.
- the payment server 140 decodes the token, authenticates the sender of the email, and may process the transaction. While the payment server 140 is depicted as a separate entity in FIG. 1 , this is shown as an example only. The payment server 140 may be controlled and/or co-located with the vendor server 120 , the banking server 160 .
- the banking server 160 may be controlled by a third party system bank.
- the payment server 140 may communicate with the banking server 160 to verify that the customer has adequate funds or credit for the requested purchase.
- the banking server 160 may be a controlled by VISA, AMERICAN EXPRESS, MASTERCARD or any other bank or banking or financial network that a customer may use for online payment.
- the banking server 160 may be a server for virtual currencies, such as BITCOIN, etc.
- FIG. 2 shows a flow diagram for a method 200 for implementing an API interface.
- a customer using a customer device 150 may attempt to access a vendor website (step 205 ).
- the vendor website may be a website selling retail goods or services or soliciting donations.
- the vendor website is redirected to the payment server 140 , to grant the vendor access to the customer's account information (step 210 ).
- the customer logs into the payment server account and authorizes the vendor to access the customer's account information (step 215 ).
- the payment server 140 redirects the customer back to the vendor server 120 with an access code (step 220 ).
- the vendor server 120 requests an authorization token with the previously sent access code (step 225 ).
- the payment server 140 sends the vendor server 120 an authorization token (step 230 ).
- the vendor server 120 may then submit an authorization token with future API transaction requests (step 235 ).
- FIG. 3 shows communication between a payment server 140 and a vendor server 120 .
- the API allows a vendor server 120 to request permission from a user to perform operations using their account, securely retrieve basic account information if the user has granted permission, such as: 1. Avatar URL; 2. First Name; 3. Last Name; 4. Email Address; and 5. Username. This is performed by the API transmitting an authorization request to the payment server.
- the vendor server may use OAuth 2.0.
- OAuth is an open standard for authorization that allows the vendor server 120 to access the payment server 140 resources on behalf of the customer.
- OAuth may also provide a process for customers to authorize third-party access resources without sharing their credentials (typically, a username and password pair), using user-agent redirections.
- the API also permits the vendor server 120 to securely generate two-click payment buttons for a customer that has granted permission, from a list of recipient email addresses.
- the vendor server 120 transmits an account information request to the payment server 140 , for an account associated with a customer.
- the payment server 140 responds by providing the vendor server 120 with a customer's account information, such as email, username, first name, last name, and an avatar URL.
- the vendor server 120 may request a button, and the API provides information for the inclusion of payment buttons in content not being generated directly by payment server 140 .
- the API enables an exchange of information between any business entity and payment server 140 , extending a business' application's capabilities with two-click payment technology.
- the API may perform an entire transaction invoicing system, and may be applied to any similar email payment technologies.
- the API may be used within other companies email marketing systems for the creation of different workflows.
- the email may not be encrypted.
- the email may use DomainKeys Identified Mail (DKIM) and/or Sender Policy Framework (SPF) technology.
- DKIM provides a method for validating a domain name identity that is associated with a message through cryptographic authentication.
- SPM is an email validation system designed to prevent email spam by detecting email spoofing. If DKIM and/or SPF are used for authentication, then tokens unique to each user may be unnecessary.
- the API provides an OAuth 2.0 authentication system and a number of endpoints that enable its users to extend an application's capabilities with, for example, a two-click transaction.
- the system may comprise an API developer dashboard that provides access to client configurations as well as statistical information allowing a user to have access to API performance and status on a real time basis.
- the API Dashboard may comprise a user interface to manage API information. Clients may be able to reset security keys, add OAuth client and update Postback URL.
- FIGS. 4-11 show example web pages that may be displayed by the web browser unit 155 of the customer device 150 .
- the web pages may include display elements which allow the user of the customer device 150 to complete e-commerce transactions from a vendor using the disclosed API, using one or more emails.
- the web pages may be included in a web browser window that is displayed and managed by the web browser unit 155 .
- the web pages may include data received by the web browser unit 155 from the vendor server 120 and/or the payment server 140 .
- the web pages may include payment transaction information.
- the web browser window may include a control area 400 that includes a back button 402 , forward button 403 , refresh button 404 , home button 405 , and address field 406 .
- the control area 400 may also include one or more additional control elements, such as bookmark page etc.
- the user of the customer device 150 may select the control elements in the control area 400 . The selection may be performed, for example, by clicking a mouse or providing input via keyboard, touch screen, and/or other type of input device.
- the web browser unit 155 may perform an action that corresponds to the selected element. For example, when the refresh button 404 is selected, the web browser unit 155 may refresh the page currently viewed in the web browser window.
- FIG. 4 is an example web page 410 for a customer to set up account with the payment server.
- the web page may include multiple input fields 411 - 414 .
- Input fields 411 - 413 request a customer to enter email and password information to be associated with a customer account to be created.
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, the web browser unit 155 may update the web page 410 to indicate additional, or more specific, questions that may be associated with the selections.
- the user selects input field 414 , if there are no errors in the transmission, the customer is taken to a subsequent web page, e.g. web page 510 .
- FIG. 5 is an example web page 510 for a customer to enter billing information into the payment server 140 .
- the web page 510 may include multiple input fields 511 - 516 .
- Input fields 511 - 515 solicit customer responses to questions regarding the customer's billing information, or more specifically, in the example shown, a billing address.
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, the web browser unit 155 may update the web page 510 to indicate additional, or more specific, questions that may be associated with the selections.
- the user selects input field 516 if there are no errors in the transmission, the customer is taken to a subsequent web page, e.g. web page 610 .
- FIG. 6 is an example web page 610 for a customer to enter credit card information into the payment server 140 .
- the web page 610 may include multiple input fields 610 - 617 .
- Input fields 611 - 616 solicit the customer to submit credit card information.
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, the web browser unit 155 may update the web page 610 to indicate additional, or more specific, questions that may be associated with the selections.
- the user selects input field 617 if there are no errors in the transmission, the customer is taken to a subsequent web page, e.g. web page 710 .
- FIG. 7 is an example web page 710 for a customer to agree to terms of service of the payment server 140 .
- the web page 710 may include input buttons 712 and 713 . This page may or may not be optional.
- the customer may select input button 712 or 713 .
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input buttons. Further, as the selections are updated, the web browser unit 155 may update the web page 710 to indicate additional, or more specific, questions that may be associated with the selections.
- the user selects input field 713 if there are no errors in the transmission, the customer is taken to a subsequent web page, e.g. web page 810 .
- FIG. 8 is an example web page 810 for a soliciting permission to share information with a third party.
- the web page 810 may include input buttons 811 and 812 .
- a question is presented on web page 810 requesting the customer's permission to set third party account access for use with the email payment system.
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input buttons 811 , 812 . Further, as the selections are updated, the web browser unit 155 may update the web page 810 to indicate additional, or more specific, questions that may be associated with the selections.
- FIG. 9 is an example web page 910 showing a customer device 150 purchasing an item from a vendor server 120 using the API.
- the web page 910 may include input buttons 911 and 912 .
- the customer has selected input button 911 to indicate interest in the Aurora flower available for sale.
- the web browser unit 155 may store one or more data structures that reflect the selections made in the input buttons. Further, as the selections are updated, the web browser unit 155 may update the web page 810 to indicate additional, or more specific, questions that may be associated with the selections.
- the web browser unit 155 has opened a pop-up window 913 , with input buttons 914 and 915 .
- the pop-up window 913 allows the customer device 150 to confirm the purchase with input button 915 or cancel the purchase with input button 914 .
- FIG. 10 is another example web page 910 showing a customer device 150 purchasing an item from a vendor server 120 using the API.
- the web browser unit 155 has updated web page 910 to show status indicator 916 .
- Status indicator 916 notifies the customer that the email checkout system, operated by the API has been engaged.
- FIG. 11 is another example of web page 910 showing a customer device 150 purchasing an item from a vendor server 120 using the API.
- the customer has previously selected input button 915 to confirm the purchase of the Aurora flower in FIG. 9 .
- the web browser unit 155 has opened a pop-up window 917 , with input button 918 .
- the pop-up window 917 confirms that the vendor server 120 was able to communicate with the payment server 140 to purchase the selected item.
- a customer may receive an offer email that may be generated by the vendor server 120 .
- the vendor server 120 may generate an offer via a website.
- either the vendor server 120 or the payment server 140 may generate a receipt email to the customer, based on preference settings.
- an application may generate a “client” record for each of its environments.
- the vendor server 120 copies keys for each client and securely stores them for later use in application development.
- a vendor logs in and creates a client, this may allow them begin processing authentications.
- vendor server 120 Once the vendor server 120 has created a client, customers, operating customer devices 150 connect their accounts to a vendor server's 120 application e.g. via OAuth 2.0. This may allow the payment server 140 to make basic account information, such as the information entered in input fields 411 , 511 - 515 , and 611 - 612 to be available to the vendor server 120 .
- This basic information may be available to the vendor server 120 by transmitting a request.
- This request may be, e.g. “GET/api/account/show”. To prevent unauthorized requests, the request may require an access token.
- the payment server 140 may respond as follows:
- buttons 911 and 912 are examples of payment buttons.
- the payment button is the nucleus of @Pay's technology. When included in an outgoing email to a member, it packages the two-click transaction and enables seamless email checkout from within the customer's email client. When included in an outgoing email to a non-member, it provides the ability to quickly sign up with the payment server 140 and process a transaction with a vendor server 120 through the web interface.
- the API enables the vendor server 120 to generate payment buttons for inclusion in outgoing emails.
- the API allows the vendor server 120 to create HTML Payment Buttons. This endpoint requires the ‘buttons’ scope.
- the API associated with the vendor server 120 may generate a request from the payment server 140 .
- a request may include the following parameters: access token, amount, and email.
- a key_button ⁇ url ⁇ is replaced with a mailto link, while a link_button puts a regular link in the ⁇ url ⁇ spot.
- the API at the vendor server 120 may generate mailto links for any email address associated with a customer account with the payment server 140 . Any address that is not identified by the payment server 140 generates a link which may be used to make a purchase, but the customer is directed to the payment server 140 website to complete the purchase and sign up.
- Parameters associated with a button generated by the API may include the following:
- Param name Description amount For example, the amount of the transaction email A list of email addresses that will be receiving the message. oauth_token The Access Token ID corresponding to the user you wish to build buttons for.
- the API may include an authorization procedure.
- the API may use OAuth2 for authorization and authentication to all available endpoints.
- the vendor server 120 may include an application to create a client record on the payment server 140 , granting it API access and identifying it with a pair of cryptographic signatures.
- the vendor server 120 may create multiple client records for each environment in the application.
- a customer, using a customer device 150 may access the vendor server 120 via a website.
- the customer connects their account with the vendor server's 120 application, granting the vendor server 120 the ability to take action on behalf of the customer part over resources stored at the payment server 140 .
- This action may be similar to the “Log in with” options provided by services such as GOOGLE, FACEBOOK and GITHUB.
- the vendor server's 120 application begins this authentication process by redirecting to the authorization endpoint with information about the client record identification, and predetermined redirect URLs.
- the vendor server's 120 authorization client library e.g. OAuth 2.0
- OAuth 2.0 may perform the generation of this authorization URL.
- customer is a registered with the payment server 140 , but not logged in, they will be prompted to do so.
- the customer may be redirected to another page on the payment server's 140 website where the customer will be prompted to enter an input to either Accept or Deny an application access to the scopes the vendor server 120 requested.
- customer is redirected back to the vendor server 120 , and the vendor server 120 may request an authorization token with the code sent by the payment server 140 in the redirect. This token is used in subsequent requests by the vendor server 120 application to access the payment server's 140 API endpoints.
- the life of the token may not be related to the session state of the customer.
- the customer may log in or out of the payment server 140 or the vendor server 120 application and not affect the usability of the token itself. This allows the vendor server 120 to perform requests with this token in scheduled tasks and background processes.
- the payment server 140 API may be configured to allow a vendor server 120 to refresh a token when it expires, and handle invalid token requests with authorization on part of the customer.
- An API core controlled by the processor 124 may generate a security key that may be as a mailto link.
- the key is validated based on whether it matches the email that it came from, and is tied to no transaction or workflow. Its validation is just a validation, and is not related to a transaction—it may provide the ability to process a two-click e-commerce transaction.
- the key may be linked to autopilot or built into one or more applications.
- FIG. 12 shows an example email generated by a vendor server 120 using the API.
- the API allows a vendor to request two-click payment buttons 1211 and 1221 for inclusion in an HTML formatted email message 1200 .
- the email message 1200 includes an email header 1202 which includes “from”, “subject”, “date”, “to” and “reply-to” fields.
- the email includes two offers, an offer for an apple blossom 1210 and an offer for an aurora 1220 .
- Each offer has an associated payment button 1211 and 1221 .
- Payment buttons 1211 and 1221 may each be embedded with a link that includes a token.
- the token may include information identifying the product and purchase price of the offer it is associated with.
- an email client associated with the customer device 150 may generate a response email that is addressed to the payment server 140 .
- the response email may include information allowing the payment server 140 to complete the transaction, including a token and information from the email header 1202 .
- customer device 150 accessing the e-commerce features using a web browser
- the methods described herein may be performed by different types of customer devices 150 such as a mobile phone, tablet, personal computer etc.
- the customer device 150 may perform e-commerce transactions using, e.g., a web browser, an app, a program installed on a personal computer, etc.
- processor broadly refers to and is not limited to a single- or multi-core processor, a special purpose processor, a conventional processor, a Graphics Processing Unit (GPU), a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, one or more Application Specific Integrated Circuits (ASICs), one or more Field Programmable Gate Array (FPGA) circuits, any other type of integrated circuit (IC), a system-on-a-chip (SOC), and/or a state machine.
- GPU Graphics Processing Unit
- DSP digital signal processor
- ASICs Application Specific Integrated Circuits
- FPGA Field Programmable Gate Array
- the term “computer-readable medium” broadly refers to and is not limited to a register, a cache memory, a ROM, a semiconductor memory device (such as a D-RAM, S-RAM, or other RAM), a magnetic medium such as a flash memory, a hard disk, a magneto-optical medium, an optical medium such as a CD-ROM, a DVDs, or Bluray-Disc, or other type of device for electronic data storage.
- each feature or element can be used alone or in any combination with or without the other features and elements.
- each feature or element as described above with reference to FIGS. 1-12 may be used alone without the other features and elements or in various combinations with or without other features and elements.
- Sub-elements of the methods and features described above with reference to FIGS. 1-12 may be performed in any arbitrary order (including concurrently), in any combination or sub-combination.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application claims the benefit of U.S. Provisional Application No. 61/791,816 filed on Mar. 15, 2013, which is incorporated by reference as if fully set forth.
- The present invention is related to e-commerce.
- Many companies purchase software as a service (SaaS), platform as a service (PaaS), Infrastructure as a Service (IaaS) or something similar. SaaS is essentially “on-demand software” supplied by software vendors where software and associated data are centrally hosted on the cloud. SaaS software can be accessed by customers using a thin client via a web browser. Similarly IaaS is a model wherein a company outsources the equipment for operation, such as storage, hardware, servers and networking components. PaaS is a model allowing customers to rent hardware, operating systems, storage and network capacity over the Internet. However, many companies and non-profit organizations do not like being tied to a monthly fee. Also, the flexibility to customize to a particular business's needs may be limited based on the rules of the SaaS, PaaS, and IaaS provides.
- Methods and apparatus are desired allowing companies the flexibility to enable e-commerce transactions.
- The application programming interface (API) disclosed herein allows third parties to request two-click payment buttons for inclusion in HTML formatted electronic communications. The methods and apparatus disclosed herein allow the process to be automated and scaled. It also allows access control for button generation at a per-account basis.
- A method for leveraging email to complete an online transaction from a third party vendor, the method comprising: storing customer information, the customer information including a customer name, customer email address, customer shipping address, and customer billing information. The method further comprises receiving an authorization request from an application programming interface associated with a third party vendor requesting access to a portion of the customer information and receiving confirmation from a customer to allow the third party vendor to access the portion of the customer information. The method further comprising transmitting an access code to the third party vendor and receiving a request message from the third party vendor, wherein the request message comprises the access code, and wherein the request message requests an authorization token. The method may further comprise confirming the received access code and transmitting an authorization token to the third party vendor.
- A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings wherein:
-
FIG. 1 shows an example system that may be utilized for e-commerce transactions; -
FIG. 2 shows a flow diagram for a method for implementing an API interface; -
FIG. 3 shows communication between a payment server and a vendor server; -
FIG. 4 is an example web page for a customer to set up an account with the payment server; -
FIG. 5 is an example web page for a customer to enter billing information into the payment server; -
FIG. 6 is an example web page for a customer to enter credit card information into the payment server; -
FIG. 7 is an example web page for a customer to agree to terms of service of the payment server; -
FIG. 8 is an example web page for a soliciting permission to share information with a third party; -
FIG. 9 is an example web page showing a customer device purchasing an item from a vendor server using the API; -
FIG. 10 is another example web page showing a customer device purchasing an item from a vendor server using the API; -
FIG. 11 is another example of web page showing a customer device purchasing an item from a vendor server using the API; and -
FIG. 12 shows an example email generated by a vendor server using the API. - When used herein, the term “token” may refer to a sequence of byte data or a string or a file used to authenticate a transaction. A token may be one or multiple encrypted strings, files, passwords, cyphers or other data which may contain information used to perform or authenticate a transaction when sent to payment servers. These tokens may be encrypted using a public-private key encryption system. The vendor or a party with knowledge of the vendor's private key may generate an encrypted token. Alternatively, a payment system or e-commerce site may generate this token on behalf of the vendor.
- Disclosed herein are processor-executable methods, computing systems, and related technologies for an automated application programming interface (API). The system and method may use an email server/account to complete an e-commerce transaction (e.g., for items/services/events/donations) for a transfer of funds from a customer to a vendor (e.g. retail site, charity, political organization or other vendor.) While the technologies described herein are discussed using e-mail as an example, they may also be applicable to similar communication mediums, such as SMS and MMS communication channels.
-
FIG. 1 shows an example system 100 that may be utilized for email based financial transactions. The example system 100 includes acustomer device 150, avendor server 120, apayment server 140, and a banking server that may communicate over one or more wired and/orwireless communication networks 110. The wired orwireless communication networks 110 may be public, private or a combination of public or private networks. - The
customer device 150 may be, for example, a cellular phone, a smartphone, a desktop computer, a laptop computer, a tablet computer, or any other appropriate computing device. Thecustomer device 150 includes aprocessor 151,memory 152, acommunications unit 153, adisplay unit 154 andweb browser unit 155, which may communicate data to/from the web server module(s) in thevendor server 120 andpayment server 140. Theweb browser unit 155 may include and/or communicate with one or more sub-modules that perform functionality such as rendering HTML (including but not limited to HTML5), rendering raster and/or vector graphics, executing JAVASCRIPT, and/or rendering multimedia content. - Alternatively or additionally, the
web browser unit 155 may implement Rich Internet Application (RIA) and/or multimedia technologies such as ADOBE FLASH and/or other technologies compatible with Internet based communications. Theweb browser unit 155 may implement RIA and/or multimedia technologies using one or web browser plug-in modules (e.g., ADOBE FLASH), and/or using one or more sub-modules within theweb browser unit 155 itself. Theweb browser unit 155 may display data on one or more display devices (not depicted) that are included in or connected to thecustomer device 150, such as a liquid crystal display (LCD) display or monitor. Thecustomer device 150 may receive input from the user of thecustomer device 150 from input devices (not depicted) that are included in, or connected to, thecustomer device 150, such as a keyboard, a mouse, a microphone or a touch screen, and provide data that indicates the input to theweb browser unit 155. - The
vendor server 120 may include anHTTP server module 121, atoken generator 122, abutton generator 123, aprocessor 124,memory 125, apayment gateway 126 and acommunications unit 127. - The HTTP
server module 121 provides a website that may be accessed by acustomer device 150. The HTTPserver module 121 may implement the HTTP protocol, and may communicate Hypertext Markup Language (HTML) pages and related data from the website to/from thecustomer device 150 using HTTP. Thevendor server 120 may be connected to one or more private or public networks (such as the Internet), via which the HTTPserver module 121 communicates with devices such as thecustomer device 150. The HTTPserver module 121 may generate one or more web pages and may communicate the web pages to thecustomer device 150, and may receive responsive information from thecustomer device 150. - The HTTP
server module 121 may be, for example, an NGINX server APACHE HTTP server, a SUN-ONE Web Server, a MICROSOFT INTERNET Information Services (IIS) server, and/or may be based on any other appropriate HTTP server technology. Thevendor server 120 may also include one or more additional components or modules (not depicted), such as one or more load balancers, firewall devices, routers, switches, and devices that handle power backup and data redundancy. - The
payment gateway 126 may be a proprietary service that directly connects with the payment processors, such asbanking server 160 to handle the credit card data, and authorize credit card payments. - The
token generator 122 may generate tokens for use in e-commerce transactions. Tokens may be encrypted sequence of data which contain information to perform a transaction when sent to the payment server(s) 140. Additionally or alternatively, a token may be one or multiple encrypted strings, files, passwords, cyphers or other data which may contain information used to perform or authenticate a transaction. A token may include one or more of the following parameters or other parameters not listed below: -
- a) private-key: The private key provided by the
payment server 140. - b) public-key: Payment server's 140 public key, provided by the
payment server 140. - c) partner-id: The partner ID provided by the payment server.
- d) environment: The environment the vendor wants to generate buttons for. This distinguishes whether the token is being used in a testing environment or in the live environment (and running real transactions).
- e) config: The path to a configuration file in yml format. This may hold a default set of information, e.g., private_key, public_key, partner_id, and other information—so they don't have to be entered separately each time a token is generated. The config field may also contain information specific to an offer (e.g. dollar amount) or a customer (like the card token) if multiple tokens are being generated with similar components.
- f) type: The type of token to generate (site, email, universal). There are multiple types of tokens that a token generator can generate and decode. For example, site tokens may be used for website transactions, email tokens for two-click email payments, and universal tokens for email validations.
- g) card: The card token associated with the recipient of this token. When a customer is registered with the
payment server 140, the vendor receives a credit card token—a unique identifier that references the specific card associated with that customer and vendor. When the vendor is generating a token to submit topayment server 140, they may include the card token as a customer identifier. - h) email: The email associated with the receipt of this token.
- i) URL: The Signup URL the recipient should go to if customer doesn't have payment information registered with
payment server 140. - j) amount: The amount a user should be charged for the transaction the token is generated for.
- k) user-data: Data to pass back as a reference. This data may include custom data that the vendor may want to pass through the
payment server 140 and receive back when a transaction has completed. It may include an item reference number or SKU, customer address, or other piece of data that is not required bypayment server 140 to complete a transaction, but that the vendor wants associated with that transaction. - l) expires: Expiration date for token, integer value of seconds since epoch.
- m) header-user-agent: The HTTP_USER_AGENT from the request header. HTTP headers are sent as part of a request from a customer's
web browser unit 155 for a piece of information. These headers define the parameters that theweb browser unit 155 is expecting to get back. The user-agent is the identifier of the software that is submitting the request—typically the identifier of theweb browser unit 155 that is requesting the content. - n) header-accept-language: The HTTP_ACCEPT_LANGUAGE from the request header. The accept-language is the acceptable language for the response—e.g. the language in which the
web browser unit 155 is requesting the content be sent back. - o) header-accept-charset: The HTTP_ACCEPT_CHARSET from the request header. The accept-charset is the character sets that are acceptable for the response—e.g. the character set in which the
web browser unit 155 is requesting the content be sent back. - p) ip-address: The IP address of the token recipient.
- a) private-key: The private key provided by the
- To confirm an e-commerce transaction via email, the customer sends an email embedded with a token to the payment server's 140 address. The system 100 is designed to allow the vendor flexibility to offer deals for a limited time or number or responsive to available inventory. For example, the token may be configured to expire by default after two weeks, or any predetermined time, or never expire. The
vendor server 120 may be configured to extend or shorten the expiration time of a particular offer associated with a token without resending an email or generating a new token. Also, thevendor server 120 may send email updates for an offer associated with a token. This may be predetermined, or may be later set, depending upon demand by customers. Additionally, thevendor server 120 may generate groups of token values that may automatically invalidate members of the group when one token is processed. This is useful when sending out multiple tokens via email to a single customer or when sending out tokens to multiple customers, but when the vendor wants only one or a predetermined number of tokens to be processed. Therefore when these predetermined number of tokens are used, the other tokens are invalidated, effectively rescinding the offered deal. Thevendor server 120 may further be configured to send email notifications that the previously submitted token is now invalid. - The
button generator 123 may create cross-client and cross-browser compatible buttons for e-commerce transactions. In one embodiment, thebutton generator 123 may include thetoken generator 122 to automatically generate an associated token for each button that is created. As discussed in greater below, thetoken generator 122 andbutton generator 123 may be configured to access an API that is stored inmemory 125 and controlled byprocessor 124. - The
vendor server 120, using the API, as disclosed herein may communicate with thepayment server 140 to provide information to thebutton generator 123 and thetoken generator 122. A button and an associated token, generated by thebutton generator 123 and/or thetoken generator 122 may be embedded on a web page created by theHTTP server module 121. - The
memory 125 may be configured to store information associated with e-commerce transactions. This may include inventory information, information used to generate web pages, customer information, and other e-commerce data. - The
payment server 140 may include anHTTP server module 141, atoken generator 142, aprocessor 143,memory 144,payment gateway 145 and acommunications unit 146. While only onevendor server 120 is shown communicating with thepayment server 140, this is shown as only an example but there may bemany payment servers 140.Payment server 140 may communicate withmultiple vendor servers 120. A customer, wishing to use the services of thepayment server 140, may register his/her email address and payment information with thepayment server 140. Similarly, vendors may register with thepayment server 140. Thepayment server 140 may provide thevendor server 120 with a public key and private key to be used in token transaction in accordance with the methods described herein. When a transaction is attempted, thepayment server 140 decodes the token, authenticates the sender of the email, and may process the transaction. While thepayment server 140 is depicted as a separate entity inFIG. 1 , this is shown as an example only. Thepayment server 140 may be controlled and/or co-located with thevendor server 120, thebanking server 160. - The
banking server 160 may be controlled by a third party system bank. Thepayment server 140 may communicate with thebanking server 160 to verify that the customer has adequate funds or credit for the requested purchase. For example, thebanking server 160 may be a controlled by VISA, AMERICAN EXPRESS, MASTERCARD or any other bank or banking or financial network that a customer may use for online payment. Thebanking server 160 may be a server for virtual currencies, such as BITCOIN, etc. -
FIG. 2 shows a flow diagram for amethod 200 for implementing an API interface. A customer, using acustomer device 150 may attempt to access a vendor website (step 205). The vendor website may be a website selling retail goods or services or soliciting donations. The vendor website is redirected to thepayment server 140, to grant the vendor access to the customer's account information (step 210). Once the customer is redirected to this website, the customer logs into the payment server account and authorizes the vendor to access the customer's account information (step 215). Thepayment server 140 redirects the customer back to thevendor server 120 with an access code (step 220). Thevendor server 120 requests an authorization token with the previously sent access code (step 225). Thepayment server 140 sends thevendor server 120 an authorization token (step 230). Thevendor server 120 may then submit an authorization token with future API transaction requests (step 235). -
FIG. 3 shows communication between apayment server 140 and avendor server 120. Referring toFIG. 3 the API allows avendor server 120 to request permission from a user to perform operations using their account, securely retrieve basic account information if the user has granted permission, such as: 1. Avatar URL; 2. First Name; 3. Last Name; 4. Email Address; and 5. Username. This is performed by the API transmitting an authorization request to the payment server. As an example, inFIG. 3 , the vendor server may use OAuth 2.0. OAuth is an open standard for authorization that allows thevendor server 120 to access thepayment server 140 resources on behalf of the customer. OAuth may also provide a process for customers to authorize third-party access resources without sharing their credentials (typically, a username and password pair), using user-agent redirections. - Also shown in
FIG. 3 , the API also permits thevendor server 120 to securely generate two-click payment buttons for a customer that has granted permission, from a list of recipient email addresses. Thevendor server 120 transmits an account information request to thepayment server 140, for an account associated with a customer. Thepayment server 140 responds by providing thevendor server 120 with a customer's account information, such as email, username, first name, last name, and an avatar URL. Thevendor server 120 may request a button, and the API provides information for the inclusion of payment buttons in content not being generated directly bypayment server 140. - The API enables an exchange of information between any business entity and
payment server 140, extending a business' application's capabilities with two-click payment technology. - The API may perform an entire transaction invoicing system, and may be applied to any similar email payment technologies. In addition, the API may be used within other companies email marketing systems for the creation of different workflows.
- With authentication, there may be a secure workflow, but the email may not be encrypted. In an alternative embodiment, the email may use DomainKeys Identified Mail (DKIM) and/or Sender Policy Framework (SPF) technology. DKIM provides a method for validating a domain name identity that is associated with a message through cryptographic authentication. SPM is an email validation system designed to prevent email spam by detecting email spoofing. If DKIM and/or SPF are used for authentication, then tokens unique to each user may be unnecessary.
- The API provides an OAuth 2.0 authentication system and a number of endpoints that enable its users to extend an application's capabilities with, for example, a two-click transaction. The system may comprise an API developer dashboard that provides access to client configurations as well as statistical information allowing a user to have access to API performance and status on a real time basis. For example, the API Dashboard may comprise a user interface to manage API information. Clients may be able to reset security keys, add OAuth client and update Postback URL.
-
FIGS. 4-11 show example web pages that may be displayed by theweb browser unit 155 of thecustomer device 150. As will be described in detail below, the web pages may include display elements which allow the user of thecustomer device 150 to complete e-commerce transactions from a vendor using the disclosed API, using one or more emails. The web pages may be included in a web browser window that is displayed and managed by theweb browser unit 155. The web pages may include data received by theweb browser unit 155 from thevendor server 120 and/or thepayment server 140. The web pages may include payment transaction information. - The web browser window may include a
control area 400 that includes aback button 402,forward button 403,refresh button 404,home button 405, andaddress field 406. Thecontrol area 400 may also include one or more additional control elements, such as bookmark page etc. The user of thecustomer device 150 may select the control elements in thecontrol area 400. The selection may be performed, for example, by clicking a mouse or providing input via keyboard, touch screen, and/or other type of input device. When one of the control elements is selected, theweb browser unit 155 may perform an action that corresponds to the selected element. For example, when therefresh button 404 is selected, theweb browser unit 155 may refresh the page currently viewed in the web browser window. -
FIG. 4 is anexample web page 410 for a customer to set up account with the payment server. As shown inFIG. 4 , the web page may include multiple input fields 411-414. Input fields 411-413 request a customer to enter email and password information to be associated with a customer account to be created. As thecustomer device 150 receives input for the input fields 411-414, theweb browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, theweb browser unit 155 may update theweb page 410 to indicate additional, or more specific, questions that may be associated with the selections. When the user selectsinput field 414, if there are no errors in the transmission, the customer is taken to a subsequent web page,e.g. web page 510. -
FIG. 5 is anexample web page 510 for a customer to enter billing information into thepayment server 140. As shown inFIG. 5 , theweb page 510 may include multiple input fields 511-516. Input fields 511-515 solicit customer responses to questions regarding the customer's billing information, or more specifically, in the example shown, a billing address. As thecustomer device 150 receives input for the input fields 511-515, theweb browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, theweb browser unit 155 may update theweb page 510 to indicate additional, or more specific, questions that may be associated with the selections. When the user selectsinput field 516, if there are no errors in the transmission, the customer is taken to a subsequent web page,e.g. web page 610. -
FIG. 6 is anexample web page 610 for a customer to enter credit card information into thepayment server 140. As shown inFIG. 6 , theweb page 610 may include multiple input fields 610-617. Input fields 611-616 solicit the customer to submit credit card information. As thecustomer device 150 receives input for the input fields 610-617, theweb browser unit 155 may store one or more data structures that reflect the selections made in the input fields. Further, as the selections are updated, theweb browser unit 155 may update theweb page 610 to indicate additional, or more specific, questions that may be associated with the selections. When the user selectsinput field 617, if there are no errors in the transmission, the customer is taken to a subsequent web page,e.g. web page 710. -
FIG. 7 is anexample web page 710 for a customer to agree to terms of service of thepayment server 140. As shown inFIG. 7 , theweb page 710 may includeinput buttons field 711, the customer may selectinput button customer device 150 receives input for theinput buttons web browser unit 155 may store one or more data structures that reflect the selections made in the input buttons. Further, as the selections are updated, theweb browser unit 155 may update theweb page 710 to indicate additional, or more specific, questions that may be associated with the selections. When the user selectsinput field 713, if there are no errors in the transmission, the customer is taken to a subsequent web page,e.g. web page 810. -
FIG. 8 is anexample web page 810 for a soliciting permission to share information with a third party. As shown inFIG. 8 , theweb page 810 may includeinput buttons web page 810 requesting the customer's permission to set third party account access for use with the email payment system. As thecustomer device 150 receives input for theinput buttons web browser unit 155 may store one or more data structures that reflect the selections made in theinput buttons web browser unit 155 may update theweb page 810 to indicate additional, or more specific, questions that may be associated with the selections. -
FIG. 9 is anexample web page 910 showing acustomer device 150 purchasing an item from avendor server 120 using the API. As shown inFIG. 9 , theweb page 910 may includeinput buttons input button 911 to indicate interest in the Aurora flower available for sale. As thecustomer device 150 receives input for theinput buttons web browser unit 155 may store one or more data structures that reflect the selections made in the input buttons. Further, as the selections are updated, theweb browser unit 155 may update theweb page 810 to indicate additional, or more specific, questions that may be associated with the selections. As shown inFIG. 9 , theweb browser unit 155 has opened a pop-upwindow 913, withinput buttons window 913 allows thecustomer device 150 to confirm the purchase withinput button 915 or cancel the purchase withinput button 914. -
FIG. 10 is anotherexample web page 910 showing acustomer device 150 purchasing an item from avendor server 120 using the API. In the example shown, the customer selectedinput button 915 to confirm the purchase of the Aurora flower inFIG. 9 . As shown inFIG. 10 , theweb browser unit 155 has updatedweb page 910 to showstatus indicator 916.Status indicator 916 notifies the customer that the email checkout system, operated by the API has been engaged. -
FIG. 11 is another example ofweb page 910 showing acustomer device 150 purchasing an item from avendor server 120 using the API. In the example shown, the customer has previously selectedinput button 915 to confirm the purchase of the Aurora flower inFIG. 9 . As shown inFIG. 11 , theweb browser unit 155 has opened a pop-upwindow 917, withinput button 918. The pop-upwindow 917 confirms that thevendor server 120 was able to communicate with thepayment server 140 to purchase the selected item. In this scenario, a customer may receive an offer email that may be generated by thevendor server 120. Or thevendor server 120 may generate an offer via a website. When a customer completes a transaction, as shown inFIG. 11 , either thevendor server 120 or thepayment server 140 may generate a receipt email to the customer, based on preference settings. - To perform a transaction, such as the transaction showed in
FIGS. 8-11 , an application may generate a “client” record for each of its environments. Thevendor server 120 copies keys for each client and securely stores them for later use in application development. - A vendor logs in and creates a client, this may allow them begin processing authentications.
- Once the
vendor server 120 has created a client, customers, operatingcustomer devices 150 connect their accounts to a vendor server's 120 application e.g. via OAuth 2.0. This may allow thepayment server 140 to make basic account information, such as the information entered in input fields 411, 511-515, and 611-612 to be available to thevendor server 120. - This basic information may be available to the
vendor server 120 by transmitting a request. This request may be, e.g. “GET/api/account/show”. To prevent unauthorized requests, the request may require an access token. - The
payment server 140 may respond as follows: -
{ “email”: “[email protected]”, “username”: “[email protected]”, “name”: “API User Example”, “first_name”: “API User”, “last_name”: “Example”, “avatar”: “https://secure.atpay.com/images/missing_avatar_small.png” } - The following parameters may be entered in a request:
-
Param name Description oauth_token The Access Token corresponding to the user you wish to required get info for. -
- Value: String
- Referring back to
FIGS. 9-11 ,input buttons payment server 140 and process a transaction with avendor server 120 through the web interface. The API enables thevendor server 120 to generate payment buttons for inclusion in outgoing emails. The API allows thevendor server 120 to create HTML Payment Buttons. This endpoint requires the ‘buttons’ scope. To create a button, the API associated with thevendor server 120 may generate a request from thepayment server 140. A request may include the following parameters: access token, amount, and email. - An example scenario is shown below. In this scenario [email protected] has an account with the
payment server 140 while [email protected] does not. - An example response, when a request for a button sent is as follows:
-
[ { “email”: “[email protected]”, “amount”: “20.00”, “button”: <key_button> }, { “email”: “[email protected]”, “amount”: “20.00”, “button”: <link_button> } ] - The difference between a key_button and a link_button is the interpolation of {{url}} in the Button Template. A key_button {{url}} is replaced with a mailto link, while a link_button puts a regular link in the {{url}} spot.
- The API at the
vendor server 120 may generate mailto links for any email address associated with a customer account with thepayment server 140. Any address that is not identified by thepayment server 140 generates a link which may be used to make a purchase, but the customer is directed to thepayment server 140 website to complete the purchase and sign up. - Parameters associated with a button generated by the API may include the following:
- Params
-
Param name Description amount For example, the amount of the transaction email A list of email addresses that will be receiving the message. oauth_token The Access Token ID corresponding to the user you wish to build buttons for. - As discussed above, the API may include an authorization procedure. For example, the API may use OAuth2 for authorization and authentication to all available endpoints.
- The
vendor server 120 may include an application to create a client record on thepayment server 140, granting it API access and identifying it with a pair of cryptographic signatures. Thevendor server 120 may create multiple client records for each environment in the application. - A customer, using a
customer device 150 may access thevendor server 120 via a website. The customer connects their account with the vendor server's 120 application, granting thevendor server 120 the ability to take action on behalf of the customer part over resources stored at thepayment server 140. This action may be similar to the “Log in with” options provided by services such as GOOGLE, FACEBOOK and GITHUB. The vendor server's 120 application begins this authentication process by redirecting to the authorization endpoint with information about the client record identification, and predetermined redirect URLs. The vendor server's 120 authorization client library (e.g. OAuth 2.0) may perform the generation of this authorization URL. - If the customer is a registered with the
payment server 140, but not logged in, they will be prompted to do so. After successfully authenticating customer credentials, the customer may be redirected to another page on the payment server's 140 website where the customer will be prompted to enter an input to either Accept or Deny an application access to the scopes thevendor server 120 requested. After selecting an option, customer is redirected back to thevendor server 120, and thevendor server 120 may request an authorization token with the code sent by thepayment server 140 in the redirect. This token is used in subsequent requests by thevendor server 120 application to access the payment server's 140 API endpoints. - The life of the token may not be related to the session state of the customer. The customer may log in or out of the
payment server 140 or thevendor server 120 application and not affect the usability of the token itself. This allows thevendor server 120 to perform requests with this token in scheduled tasks and background processes. - The
payment server 140 API may be configured to allow avendor server 120 to refresh a token when it expires, and handle invalid token requests with authorization on part of the customer. - An API core controlled by the
processor 124 may generate a security key that may be as a mailto link. The key is validated based on whether it matches the email that it came from, and is tied to no transaction or workflow. Its validation is just a validation, and is not related to a transaction—it may provide the ability to process a two-click e-commerce transaction. The key may be linked to autopilot or built into one or more applications. -
FIG. 12 shows an example email generated by avendor server 120 using the API. As described above, the API allows a vendor to request two-click payment buttons email message 1200. As shown inFIG. 12 , theemail message 1200 includes an email header 1202 which includes “from”, “subject”, “date”, “to” and “reply-to” fields. The email includes two offers, an offer for anapple blossom 1210 and an offer for anaurora 1220. Each offer has an associatedpayment button Payment buttons pay button customer device 150 may generate a response email that is addressed to thepayment server 140. The response email may include information allowing thepayment server 140 to complete the transaction, including a token and information from the email header 1202. - While the examples described herein show a
customer device 150 accessing the e-commerce features using a web browser, it should be understood that this is just one example. The methods described herein may be performed by different types ofcustomer devices 150 such as a mobile phone, tablet, personal computer etc. Thecustomer device 150 may perform e-commerce transactions using, e.g., a web browser, an app, a program installed on a personal computer, etc. - As used herein, the term “processor” broadly refers to and is not limited to a single- or multi-core processor, a special purpose processor, a conventional processor, a Graphics Processing Unit (GPU), a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, one or more Application Specific Integrated Circuits (ASICs), one or more Field Programmable Gate Array (FPGA) circuits, any other type of integrated circuit (IC), a system-on-a-chip (SOC), and/or a state machine.
- As used to herein, the term “computer-readable medium” broadly refers to and is not limited to a register, a cache memory, a ROM, a semiconductor memory device (such as a D-RAM, S-RAM, or other RAM), a magnetic medium such as a flash memory, a hard disk, a magneto-optical medium, an optical medium such as a CD-ROM, a DVDs, or Bluray-Disc, or other type of device for electronic data storage.
- Although the methods and features described above with reference to
FIGS. 2-12 are described above as performed using the example system 100 ofFIG. 1 , the methods and features described above may be performed, mutatis mutandis, using any appropriate architecture and/or computing environment. Although features and elements are described above in particular combinations, each feature or element can be used alone or in any combination with or without the other features and elements. For example, each feature or element as described above with reference toFIGS. 1-12 may be used alone without the other features and elements or in various combinations with or without other features and elements. Sub-elements of the methods and features described above with reference toFIGS. 1-12 may be performed in any arbitrary order (including concurrently), in any combination or sub-combination.
Claims (15)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/216,198 US9495679B2 (en) | 2013-03-15 | 2014-03-17 | Automated application programming interface (API) system and method |
US15/351,005 US10592897B2 (en) | 2013-03-15 | 2016-11-14 | Automated application programming interface (API) system and method |
US16/820,013 US11282074B2 (en) | 2013-03-15 | 2020-03-16 | Automated application programming interface (API) system and method |
US17/699,692 US11797981B2 (en) | 2013-03-15 | 2022-03-21 | Automated application programming interface (API) system and method |
US18/370,730 US20240020686A1 (en) | 2013-03-15 | 2023-09-20 | Automated application programming interface (api) system and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361791816P | 2013-03-15 | 2013-03-15 | |
US14/216,198 US9495679B2 (en) | 2013-03-15 | 2014-03-17 | Automated application programming interface (API) system and method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/351,005 Continuation US10592897B2 (en) | 2013-03-15 | 2016-11-14 | Automated application programming interface (API) system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140297537A1 true US20140297537A1 (en) | 2014-10-02 |
US9495679B2 US9495679B2 (en) | 2016-11-15 |
Family
ID=51621825
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/216,198 Active 2035-07-08 US9495679B2 (en) | 2013-03-15 | 2014-03-17 | Automated application programming interface (API) system and method |
US15/351,005 Active 2035-11-28 US10592897B2 (en) | 2013-03-15 | 2016-11-14 | Automated application programming interface (API) system and method |
US16/820,013 Active 2034-06-17 US11282074B2 (en) | 2013-03-15 | 2020-03-16 | Automated application programming interface (API) system and method |
US17/699,692 Active US11797981B2 (en) | 2013-03-15 | 2022-03-21 | Automated application programming interface (API) system and method |
US18/370,730 Pending US20240020686A1 (en) | 2013-03-15 | 2023-09-20 | Automated application programming interface (api) system and method |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/351,005 Active 2035-11-28 US10592897B2 (en) | 2013-03-15 | 2016-11-14 | Automated application programming interface (API) system and method |
US16/820,013 Active 2034-06-17 US11282074B2 (en) | 2013-03-15 | 2020-03-16 | Automated application programming interface (API) system and method |
US17/699,692 Active US11797981B2 (en) | 2013-03-15 | 2022-03-21 | Automated application programming interface (API) system and method |
US18/370,730 Pending US20240020686A1 (en) | 2013-03-15 | 2023-09-20 | Automated application programming interface (api) system and method |
Country Status (1)
Country | Link |
---|---|
US (5) | US9495679B2 (en) |
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363778A1 (en) * | 2014-06-16 | 2015-12-17 | Bank Of America Corporation | Cryptocurrency electronic payment system |
WO2016089993A1 (en) * | 2014-12-03 | 2016-06-09 | D Alisa Albert | Proprietary token-based universal payment processing system |
WO2016134248A1 (en) * | 2015-02-19 | 2016-08-25 | Billionaired Labs | Enabling a personalized conversation between retailer and customer at scale |
US20160379213A1 (en) * | 2014-03-31 | 2016-12-29 | Monticello Enterprises LLC | System and method for providing a browser api for managing product purchases |
US20170243327A1 (en) * | 2016-02-19 | 2017-08-24 | Lenovo (Singapore) Pte. Ltd. | Determining whether to rotate content based on identification of angular velocity and/or acceleration of device |
US20170256003A1 (en) * | 2014-03-31 | 2017-09-07 | Monticello Enterprises, Llc | System and method for providing a payment handler api and a browser payment request api for processing a payment |
US9824351B2 (en) | 2015-05-27 | 2017-11-21 | Bank Of America Corporation | Providing access to account information using authentication tokens |
US9830591B2 (en) | 2015-05-27 | 2017-11-28 | Bank Of America Corporation | Providing access to account information using authentication tokens |
JP6255070B1 (en) * | 2016-08-22 | 2017-12-27 | 株式会社 みずほ銀行 | Bank service system and bank service method |
US9882715B2 (en) * | 2015-05-19 | 2018-01-30 | Coinbase, Inc. | API key generation of a security system forming part of a host computer for cryptographic transactions |
US9923927B1 (en) * | 2015-09-29 | 2018-03-20 | Amazon Technologies, Inc. | Methods and systems for enabling access control based on credential properties |
US10007779B1 (en) | 2015-09-29 | 2018-06-26 | Amazon Technologies, Inc. | Methods and systems for gradual expiration of credentials |
US10121186B2 (en) * | 2014-03-31 | 2018-11-06 | Monticello Enterprises LLC | System and method of using a browser application programming interface for making payments |
US10152756B2 (en) | 2014-03-31 | 2018-12-11 | Monticello Enterprises LLC | System and method for providing multiple payment method options to browser |
US10332170B2 (en) * | 2014-03-31 | 2019-06-25 | Monticello Enterprises LLC | System and method of managing a buy option |
US20190230070A1 (en) * | 2014-03-31 | 2019-07-25 | Monticello Enterprises LLC | System and Method for In-App Payments |
US10375073B2 (en) * | 2016-08-29 | 2019-08-06 | International Business Machines Corporation | Configuration based client for OAuth authorization with arbitrary services and applications |
US20190281030A1 (en) * | 2014-03-31 | 2019-09-12 | Monticello Enterprises LLC | System and method for providing simplified in-store, product-based and rental payment processes |
US20190333066A1 (en) * | 2014-04-24 | 2019-10-31 | Swoop Ip Holdings Llc | Sms and social media dual authorization, management oversight, and non-password security in email based e-commerce |
US10497037B2 (en) * | 2014-03-31 | 2019-12-03 | Monticello Enterprises LLC | System and method for managing cryptocurrency payments via the payment request API |
US10511580B2 (en) * | 2014-03-31 | 2019-12-17 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US10621653B2 (en) * | 2014-03-31 | 2020-04-14 | Monticello Enterprises LLC | System and method for providing payments for users in connection with a device software module having a payment application programming interface |
US20200118186A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Generating a quote to cash solution |
US10679269B2 (en) * | 2015-05-12 | 2020-06-09 | Pinterest, Inc. | Item selling on multiple web sites |
US10832310B2 (en) * | 2014-03-31 | 2020-11-10 | Monticello Enterprises LLC | System and method for providing a search entity-based payment process |
US20200394705A1 (en) * | 2019-06-14 | 2020-12-17 | Fevo, Inc. | Systems and methods of group electronic commerce and distribution of items |
US10903991B1 (en) | 2019-08-01 | 2021-01-26 | Coinbase, Inc. | Systems and methods for generating signatures |
US20210119781A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
US20210125261A1 (en) * | 2014-06-26 | 2021-04-29 | Paypal, Inc. | Social media buttons with payment capability |
US11004139B2 (en) * | 2014-03-31 | 2021-05-11 | Monticello Enterprises LLC | System and method for providing simplified in store purchases and in-app purchases using a use-interface-based payment API |
US20210174427A1 (en) * | 2014-03-31 | 2021-06-10 | Monticello Enterprises LLC | System and method for providing a search entity-based payment process |
JP2021189955A (en) * | 2020-06-03 | 2021-12-13 | 九州電力株式会社 | Payment information management system, payment information management method and program |
US11250493B2 (en) | 2014-03-31 | 2022-02-15 | Monticello Enterprises LLC | System and method for performing social media cryptocurrency transactions |
US20220086133A1 (en) * | 2020-09-14 | 2022-03-17 | Swoop Ip Holdings Llc | Email-based authentication for sign in and security |
US11282131B2 (en) * | 2014-03-31 | 2022-03-22 | Monticello Enterprises LLC | User device enabling access to payment information in response to user input |
US11288642B1 (en) * | 2017-06-23 | 2022-03-29 | United Services Automobile Association (Usaa) | Systems and methods for online payment transactions |
US11394543B2 (en) | 2018-12-13 | 2022-07-19 | Coinbase, Inc. | System and method for secure sensitive data storage and recovery |
US20220245684A1 (en) * | 2021-02-04 | 2022-08-04 | U-Pledge Inc. | Point of donation lending system and method for facilitating charitable donations |
US11423463B2 (en) * | 2019-12-31 | 2022-08-23 | Paypal, Inc. | Dynamically rendered interface elements during online chat sessions |
US11443357B2 (en) | 2015-05-12 | 2022-09-13 | Pinterest, Inc. | Matching user provided representations of items with sellers of those items |
US11449912B1 (en) * | 2021-04-06 | 2022-09-20 | 1ClickPay Inc | System and method for facilitating e-commerce transaction using an interactive support agent platform |
US20230073134A1 (en) * | 2021-09-09 | 2023-03-09 | Gripcompany Co., Ltd. | Method, device, and system for interactive product shopping |
US11741527B1 (en) * | 2022-08-11 | 2023-08-29 | Bambumeta, Llc | Systems and methods for distributed commerce based on a token economy |
US11741438B2 (en) | 2014-03-17 | 2023-08-29 | Coinbase, Inc. | Cryptographic currency exchange |
US20230351474A1 (en) * | 2014-03-31 | 2023-11-02 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US20230360109A1 (en) * | 2014-03-31 | 2023-11-09 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US11887178B1 (en) * | 2023-02-28 | 2024-01-30 | Stodge Inc. | Materialization of a shopping cart at an instant messaging platform |
US12148021B2 (en) * | 2024-03-01 | 2024-11-19 | Monticello Enterprises LLC | System and method for providing an improved payment process over a wireless link |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495679B2 (en) * | 2013-03-15 | 2016-11-15 | @Pay Ip Holdings Llc | Automated application programming interface (API) system and method |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US20230066235A1 (en) * | 2021-08-31 | 2023-03-02 | Early Warning Services, Llc | Direct electronic bill payment with real-time funds availability |
US11916873B1 (en) | 2022-08-15 | 2024-02-27 | Virtual Connect Technologies, Inc. | Computerized system for inserting management information into electronic communication systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175823B1 (en) * | 1998-09-15 | 2001-01-16 | Amazon.Com, Inc. | Electronic gift certificate system |
US20120330736A1 (en) * | 2011-05-31 | 2012-12-27 | Sean Beckner | System and Method of Gifting, Gift Sharing, and Gift Redemption |
US20140207628A1 (en) * | 2013-01-18 | 2014-07-24 | Loop Commerce, Inc. | Gift transaction system architecture |
US20150088753A1 (en) * | 2013-09-24 | 2015-03-26 | Ogloba Ltd. | Method and apparatus for providing a virtual gift card system |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101485A (en) | 1998-03-26 | 2000-08-08 | International Business Machines Corporation | Electronic solicitations for internet commerce |
US6167435A (en) | 1998-10-30 | 2000-12-26 | Netcreations, Inc. | Double opt-in™ method and system for verifying subscriptions to information distribution services |
US7673315B1 (en) * | 2000-03-30 | 2010-03-02 | Microsoft Corporation | System and method for providing program criteria representing audio and/or visual programming |
US7343306B1 (en) * | 2000-04-20 | 2008-03-11 | International Business Machines Corporation | Location-based vehicle risk assessment system |
WO2004066228A1 (en) | 2003-01-22 | 2004-08-05 | Valista Limited | Cash based purchasing using mobile communication |
US20090070236A1 (en) * | 2005-05-21 | 2009-03-12 | Ehud Cohen | Diamond and Precious Stone Trading Platform with Funding and Delivery Transparency |
WO2008027621A1 (en) | 2006-03-30 | 2008-03-06 | Obopay Inc. | Mobile person-to-person payment system |
WO2008121900A1 (en) | 2007-03-30 | 2008-10-09 | Roland Chemtob | Electronic fund transfers using an electronic mail interface |
US20100070419A1 (en) | 2008-09-17 | 2010-03-18 | Srinivas Vadhri | System and method to initiate a function with an email message |
EP2452303A4 (en) * | 2009-07-07 | 2016-07-06 | Finsphere Corp | Mobile directory number and email verification of financial transactions |
US8719156B2 (en) | 2010-06-29 | 2014-05-06 | Ebay Inc. | Payment link |
US8725635B2 (en) | 2010-11-04 | 2014-05-13 | Bank Of America Corporation | Online payment system and method |
US8538845B2 (en) | 2011-06-03 | 2013-09-17 | Mozido, Llc | Monetary transaction system |
US20120310753A1 (en) * | 2011-06-06 | 2012-12-06 | Kaws, Inc. | System, method, and computer program product for electronic purchasing without alpha numeric data entry |
US9208488B2 (en) | 2011-11-21 | 2015-12-08 | Mozido, Inc. | Using a mobile wallet infrastructure to support multiple mobile wallet providers |
DE202012100620U1 (en) * | 2011-11-22 | 2012-06-13 | Square, Inc. | System for processing cardless payment transactions |
US10395223B2 (en) | 2012-03-07 | 2019-08-27 | Early Warning Services, Llc | System and method for transferring funds |
US9189785B2 (en) | 2012-08-24 | 2015-11-17 | Mozido, Inc. | Debit network routing selection using a scannable code |
US20140129424A1 (en) * | 2012-11-04 | 2014-05-08 | Bank Of America Corporation | Transaction cost mirror |
US8762272B1 (en) | 2012-12-27 | 2014-06-24 | Google Inc. | Management of emails containing payments |
US8606703B1 (en) | 2013-03-15 | 2013-12-10 | Square, Inc. | Method for transferring money using email |
US9495679B2 (en) * | 2013-03-15 | 2016-11-15 | @Pay Ip Holdings Llc | Automated application programming interface (API) system and method |
-
2014
- 2014-03-17 US US14/216,198 patent/US9495679B2/en active Active
-
2016
- 2016-11-14 US US15/351,005 patent/US10592897B2/en active Active
-
2020
- 2020-03-16 US US16/820,013 patent/US11282074B2/en active Active
-
2022
- 2022-03-21 US US17/699,692 patent/US11797981B2/en active Active
-
2023
- 2023-09-20 US US18/370,730 patent/US20240020686A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175823B1 (en) * | 1998-09-15 | 2001-01-16 | Amazon.Com, Inc. | Electronic gift certificate system |
US20120330736A1 (en) * | 2011-05-31 | 2012-12-27 | Sean Beckner | System and Method of Gifting, Gift Sharing, and Gift Redemption |
US20140207628A1 (en) * | 2013-01-18 | 2014-07-24 | Loop Commerce, Inc. | Gift transaction system architecture |
US20150088753A1 (en) * | 2013-09-24 | 2015-03-26 | Ogloba Ltd. | Method and apparatus for providing a virtual gift card system |
Cited By (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11741438B2 (en) | 2014-03-17 | 2023-08-29 | Coinbase, Inc. | Cryptographic currency exchange |
US20210174429A1 (en) * | 2014-03-31 | 2021-06-10 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link |
US20190281030A1 (en) * | 2014-03-31 | 2019-09-12 | Monticello Enterprises LLC | System and method for providing simplified in-store, product-based and rental payment processes |
US12131370B2 (en) * | 2014-03-31 | 2024-10-29 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US20160379213A1 (en) * | 2014-03-31 | 2016-12-29 | Monticello Enterprises LLC | System and method for providing a browser api for managing product purchases |
US20240257220A1 (en) * | 2014-03-31 | 2024-08-01 | Monticello Enterprises LLC | System and method for providing an improved payment process over a wireless link |
US20170256003A1 (en) * | 2014-03-31 | 2017-09-07 | Monticello Enterprises, Llc | System and method for providing a payment handler api and a browser payment request api for processing a payment |
US20170256000A1 (en) * | 2014-03-31 | 2017-09-07 | Monticello Enterprises LLC | System and method for providing a universal shopping cart |
US12045868B2 (en) * | 2014-03-31 | 2024-07-23 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US12008629B2 (en) * | 2014-03-31 | 2024-06-11 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US9824408B2 (en) * | 2014-03-31 | 2017-11-21 | Monticello Enterprises LLC | Browser payment request API |
US11989769B2 (en) | 2014-03-31 | 2024-05-21 | Monticello Enterprises LLC | System and method for providing simplified in-store, product-based and rental payment processes |
US20240161173A1 (en) * | 2014-03-31 | 2024-05-16 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US11983759B2 (en) * | 2014-03-31 | 2024-05-14 | Monticello Enterprises LLC | System and method for providing simplified in-store purchases and in-app purchases using a use-interface-based payment API |
US11915303B2 (en) * | 2014-03-31 | 2024-02-27 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US9922381B2 (en) * | 2014-03-31 | 2018-03-20 | Monticello Enterprises LLC | System and method for providing a payment handler API and a browser payment request API for processing a payment |
US9922380B2 (en) * | 2014-03-31 | 2018-03-20 | Monticello Enterprises LLC | System and method for providing messenger application for product purchases |
US20240013283A1 (en) * | 2014-03-31 | 2024-01-11 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US11842380B2 (en) * | 2014-03-31 | 2023-12-12 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US11836784B2 (en) * | 2014-03-31 | 2023-12-05 | Monticello Enterprises LLC | System and method for providing a search entity-based payment process |
US10121186B2 (en) * | 2014-03-31 | 2018-11-06 | Monticello Enterprises LLC | System and method of using a browser application programming interface for making payments |
US10152756B2 (en) | 2014-03-31 | 2018-12-11 | Monticello Enterprises LLC | System and method for providing multiple payment method options to browser |
US10332170B2 (en) * | 2014-03-31 | 2019-06-25 | Monticello Enterprises LLC | System and method of managing a buy option |
US20190230070A1 (en) * | 2014-03-31 | 2019-07-25 | Monticello Enterprises LLC | System and Method for In-App Payments |
US10366429B2 (en) * | 2014-03-31 | 2019-07-30 | Monticello Enterprises LLC | Browser payment request API |
US20230360109A1 (en) * | 2014-03-31 | 2023-11-09 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US20210326964A1 (en) * | 2014-03-31 | 2021-10-21 | Monticello Enterprises LLC | System and Method for Providing Simplified In-Store Purchases and In-App Purchases Using a Use-Interface-Based Payment API |
US20230351474A1 (en) * | 2014-03-31 | 2023-11-02 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US10497037B2 (en) * | 2014-03-31 | 2019-12-03 | Monticello Enterprises LLC | System and method for managing cryptocurrency payments via the payment request API |
US10504193B2 (en) * | 2014-03-31 | 2019-12-10 | Monticello Enterprises LLC | System and method for providing a universal shopping cart |
US10511580B2 (en) * | 2014-03-31 | 2019-12-17 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US10621653B2 (en) * | 2014-03-31 | 2020-04-14 | Monticello Enterprises LLC | System and method for providing payments for users in connection with a device software module having a payment application programming interface |
US11669884B2 (en) * | 2014-03-31 | 2023-06-06 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link |
US20230109515A1 (en) * | 2014-03-31 | 2023-04-06 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US10643266B2 (en) * | 2014-03-31 | 2020-05-05 | Monticello Enterprises LLC | System and method for in-app payments |
US10650441B1 (en) * | 2014-03-31 | 2020-05-12 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link using a single function action |
US10650443B2 (en) * | 2014-03-31 | 2020-05-12 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link |
US20210174427A1 (en) * | 2014-03-31 | 2021-06-10 | Monticello Enterprises LLC | System and method for providing a search entity-based payment process |
US10726472B2 (en) * | 2014-03-31 | 2020-07-28 | Monticello Enterprises LLC | System and method for providing simplified in-store, product-based and rental payment processes |
US10769717B2 (en) * | 2014-03-31 | 2020-09-08 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link |
US10825079B2 (en) * | 2014-03-31 | 2020-11-03 | Monticello Enterprises LLC | System and method for providing data to a merchant device from a user device over a wireless link |
US10832310B2 (en) * | 2014-03-31 | 2020-11-10 | Monticello Enterprises LLC | System and method for providing a search entity-based payment process |
US11468497B2 (en) * | 2014-03-31 | 2022-10-11 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US11461828B2 (en) * | 2014-03-31 | 2022-10-04 | Monticello Enterprises LLC | System and method for receiving data at a merchant device from a user device over a wireless link |
US11074640B2 (en) * | 2014-03-31 | 2021-07-27 | Monticello Enterprises LLC | System and method for providing a universal shopping cart across multiple search platforms |
US10977716B2 (en) * | 2014-03-31 | 2021-04-13 | Monticello Enterprises LLC | System and method for providing multiple application programming interfaces for a browser to manage payments from a payment service |
US11282131B2 (en) * | 2014-03-31 | 2022-03-22 | Monticello Enterprises LLC | User device enabling access to payment information in response to user input |
US11250493B2 (en) | 2014-03-31 | 2022-02-15 | Monticello Enterprises LLC | System and method for performing social media cryptocurrency transactions |
US11004139B2 (en) * | 2014-03-31 | 2021-05-11 | Monticello Enterprises LLC | System and method for providing simplified in store purchases and in-app purchases using a use-interface-based payment API |
US11244377B2 (en) * | 2014-03-31 | 2022-02-08 | Monticello Enterprises LLC | System and method for providing a browser API for managing product purchases |
US9767520B2 (en) | 2014-03-31 | 2017-09-19 | Monticello Enterprises LLC | System and method for managing a purchasing process associated with a social media site |
US20210358015A1 (en) * | 2014-03-31 | 2021-11-18 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US11080777B2 (en) * | 2014-03-31 | 2021-08-03 | Monticello Enterprises LLC | System and method for providing a social media shopping experience |
US11727410B2 (en) * | 2014-04-24 | 2023-08-15 | Swoop Ip Holdings Llc | Method and apparatus for improving security of a computer network utilizing simple mail transfer protocol (SMTP) |
US20190333066A1 (en) * | 2014-04-24 | 2019-10-31 | Swoop Ip Holdings Llc | Sms and social media dual authorization, management oversight, and non-password security in email based e-commerce |
US20150363778A1 (en) * | 2014-06-16 | 2015-12-17 | Bank Of America Corporation | Cryptocurrency electronic payment system |
US11922483B2 (en) * | 2014-06-26 | 2024-03-05 | Paypal, Inc. | Social media buttons with payment capability |
US20210125261A1 (en) * | 2014-06-26 | 2021-04-29 | Paypal, Inc. | Social media buttons with payment capability |
US20160253660A1 (en) * | 2014-12-03 | 2016-09-01 | Albert D'Alisa | Proprietary token-based universal payment processing system |
WO2016089993A1 (en) * | 2014-12-03 | 2016-06-09 | D Alisa Albert | Proprietary token-based universal payment processing system |
US10937021B2 (en) * | 2014-12-03 | 2021-03-02 | Trec Corporation | Proprietary token-based universal payment processing system |
WO2016134248A1 (en) * | 2015-02-19 | 2016-08-25 | Billionaired Labs | Enabling a personalized conversation between retailer and customer at scale |
US11935102B2 (en) | 2015-05-12 | 2024-03-19 | Pinterest, Inc. | Matching user provided representations of items with sellers of those items |
US10679269B2 (en) * | 2015-05-12 | 2020-06-09 | Pinterest, Inc. | Item selling on multiple web sites |
US11443357B2 (en) | 2015-05-12 | 2022-09-13 | Pinterest, Inc. | Matching user provided representations of items with sellers of those items |
US11218295B2 (en) * | 2015-05-19 | 2022-01-04 | Coinbase, Inc. | Private key decryption system and method of use |
US9882715B2 (en) * | 2015-05-19 | 2018-01-30 | Coinbase, Inc. | API key generation of a security system forming part of a host computer for cryptographic transactions |
US10050779B2 (en) * | 2015-05-19 | 2018-08-14 | Coinbase, Inc. | Checkout and payment |
US10644879B2 (en) * | 2015-05-19 | 2020-05-05 | Coinbase, Inc. | Private key decryption system and method of use |
US9824351B2 (en) | 2015-05-27 | 2017-11-21 | Bank Of America Corporation | Providing access to account information using authentication tokens |
US9830591B2 (en) | 2015-05-27 | 2017-11-28 | Bank Of America Corporation | Providing access to account information using authentication tokens |
US10007779B1 (en) | 2015-09-29 | 2018-06-26 | Amazon Technologies, Inc. | Methods and systems for gradual expiration of credentials |
US9923927B1 (en) * | 2015-09-29 | 2018-03-20 | Amazon Technologies, Inc. | Methods and systems for enabling access control based on credential properties |
US20170243327A1 (en) * | 2016-02-19 | 2017-08-24 | Lenovo (Singapore) Pte. Ltd. | Determining whether to rotate content based on identification of angular velocity and/or acceleration of device |
JP6255070B1 (en) * | 2016-08-22 | 2017-12-27 | 株式会社 みずほ銀行 | Bank service system and bank service method |
JP2018032081A (en) * | 2016-08-22 | 2018-03-01 | 株式会社 みずほ銀行 | Bank service system and bank service method |
US10375073B2 (en) * | 2016-08-29 | 2019-08-06 | International Business Machines Corporation | Configuration based client for OAuth authorization with arbitrary services and applications |
US11288642B1 (en) * | 2017-06-23 | 2022-03-29 | United Services Automobile Association (Usaa) | Systems and methods for online payment transactions |
US20200118186A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Generating a quote to cash solution |
US11727456B2 (en) * | 2018-10-11 | 2023-08-15 | International Business Machines Corporation | Generating a quote to cash solution |
US11394543B2 (en) | 2018-12-13 | 2022-07-19 | Coinbase, Inc. | System and method for secure sensitive data storage and recovery |
US11989771B2 (en) * | 2019-06-14 | 2024-05-21 | Fevo, Inc. | Systems and methods of group electronic commerce and distribution of items |
US20200394705A1 (en) * | 2019-06-14 | 2020-12-17 | Fevo, Inc. | Systems and methods of group electronic commerce and distribution of items |
US10903991B1 (en) | 2019-08-01 | 2021-01-26 | Coinbase, Inc. | Systems and methods for generating signatures |
US11552792B2 (en) | 2019-08-01 | 2023-01-10 | Coinbase, Inc. | Systems and methods for generating signatures |
US11943350B2 (en) * | 2019-10-16 | 2024-03-26 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
US20210119781A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
US11989768B2 (en) * | 2019-12-31 | 2024-05-21 | Paypal, Inc. | Dynamically rendered interface elements during online chat sessions |
US11423463B2 (en) * | 2019-12-31 | 2022-08-23 | Paypal, Inc. | Dynamically rendered interface elements during online chat sessions |
US20230084311A1 (en) * | 2019-12-31 | 2023-03-16 | Paypal, Inc. | Dynamically rendered interface elements during online chat sessions |
JP2021189955A (en) * | 2020-06-03 | 2021-12-13 | 九州電力株式会社 | Payment information management system, payment information management method and program |
US11968195B2 (en) * | 2020-09-14 | 2024-04-23 | Swoop Ip Holdings Llc | Email-based authentication for sign in and security |
US20220086133A1 (en) * | 2020-09-14 | 2022-03-17 | Swoop Ip Holdings Llc | Email-based authentication for sign in and security |
US20220245684A1 (en) * | 2021-02-04 | 2022-08-04 | U-Pledge Inc. | Point of donation lending system and method for facilitating charitable donations |
US11449912B1 (en) * | 2021-04-06 | 2022-09-20 | 1ClickPay Inc | System and method for facilitating e-commerce transaction using an interactive support agent platform |
US20230073134A1 (en) * | 2021-09-09 | 2023-03-09 | Gripcompany Co., Ltd. | Method, device, and system for interactive product shopping |
US11972473B2 (en) * | 2022-08-11 | 2024-04-30 | Bambumeta, Llc | Systems and methods for distributed commerce based on a token economy |
US20240054549A1 (en) * | 2022-08-11 | 2024-02-15 | Bambumeta, Llc | Systems and Methods for Distributed Commerce Based on a Token Economy |
US11741527B1 (en) * | 2022-08-11 | 2023-08-29 | Bambumeta, Llc | Systems and methods for distributed commerce based on a token economy |
US11887178B1 (en) * | 2023-02-28 | 2024-01-30 | Stodge Inc. | Materialization of a shopping cart at an instant messaging platform |
US12148021B2 (en) * | 2024-03-01 | 2024-11-19 | Monticello Enterprises LLC | System and method for providing an improved payment process over a wireless link |
Also Published As
Publication number | Publication date |
---|---|
US10592897B2 (en) | 2020-03-17 |
US20240020686A1 (en) | 2024-01-18 |
US9495679B2 (en) | 2016-11-15 |
US20200219091A1 (en) | 2020-07-09 |
US20170061429A1 (en) | 2017-03-02 |
US11797981B2 (en) | 2023-10-24 |
US20220207519A1 (en) | 2022-06-30 |
US11282074B2 (en) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797981B2 (en) | Automated application programming interface (API) system and method | |
US20220129866A1 (en) | Method and system for a secure registration | |
US20220198415A1 (en) | Vendor token generator | |
US20240283782A1 (en) | Email-based authentication for account login, account creation and security for passwordless transactions | |
US20210241358A1 (en) | Secure email authentication system for completing e-commerce transactions | |
US20240127254A1 (en) | Method and apparatus for improving security of a computer network utilizing simple mail transfer protocol (smtp) | |
US20180191735A1 (en) | Secure Service for Receiving Sensitive Information through Nested iframes | |
US11775948B2 (en) | System and method for two-click validation | |
US20240370844A1 (en) | Web-based checkout and alternate login based on secure identifiers and alternate link formats | |
US20170169425A1 (en) | Selective encryption of transactional information for different participants of an electronic transaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: SWOOP IP HOLDINGS LLC, DELAWARE Free format text: CHANGE OF NAME;ASSIGNOR:@PAY IP HOLDINGS LLC;REEL/FRAME:048116/0896 Effective date: 20180928 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: 7.5 YR SURCHARGE - LATE PMT W/IN 6 MO, SMALL ENTITY (ORIGINAL EVENT CODE: M2555); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 8 |