IP Library Granted Patent US 12,282,945
Granted Patent B1
US 12,282,945 · App. 17/891,693 · Granted Apr 22, 2025

Methods, non-transitory machine-readable storage medium, and systems for order management and processing using a distributed commerce platform

Inventors: Siddarth Chandrasekaran (San Francisco, CA); John Brochan Collison (San Francisco, CA); Cristina Joelle Cordova (San Francisco, CA); James William Danz (Los Altos, CA); Stanislas Vincent Francois Polu (San Francisco, CA); Devesh Senapati (San Francisco, CA)
Assignee: STRIPE, INC.
G06Q30/0623G06Q20/02G06Q20/12G06Q30/0635
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,282,945
App. No.
17/891,693
Granted
Apr 22, 2025
Kind
B1
Abstract

In embodiments, methods and systems for order management and processing based on a distributed commerce platform are provided. A distributed commerce platform supports end-to-end integrated product publication, order-management and payment services. In particular, the distributed commerce platform supports components based on Application Programming Interfaces (API) that standardize the implementation of a distributed commerce solution or configuration of off-site buying experiences. Using the distributed commerce platform, merchants can concurrently offer, sell, and process orders for products through a plurality of different affiliate channels. The distributed commerce platform can also be implemented as a federated portal from which a merchant can identify affiliate channels to publish product objects, access the plurality of affiliate channels and define configurations for processing objects of the merchant's distributed commerce solution. The configurations can be accessed during a purchase flow such that orders from a channel are processed based on the specific attributes identified in the configurations.

Claims (66)

1. A computer-implemented method for order management and processing, the method comprising:

receiving, by a computing system from a channel system, a request for a product that comprises a first object generated in response to an end user of the channel system selecting a link to the product within content distributed by the channel system, wherein the first object is defined at least in part based on a product identifier associated with the product;

identifying, by the computing system, a second system associated with the product and one or more second system configurations, the one or more second system configurations comprising at least one webhook endpoint of the second system;

obtaining, by the computing system from the second system, one or more real time first object attribute configurations for the product by the computing system sending one or more messages to the second system via the webhook endpoint in response to receipt of one or more end user requests, received from the channel system, to change selected object attribute configurations that further configure the product;

communicating, by the computing system to the channel system, an update to the first object, wherein a display of the first object at the channel system to the end user is updated based at least in part on changes to the one or more real time first object attribute configurations obtained, via the webhook endpoint in real time by the computing system from the second system in response to the receipt of the one or more end user requests;

receiving, at the computing system from the channel system, a second object for the updated first object;

determining, by the computing system based on the second object, a second object configuration to be used when processing payment for the product, the second object configuration obtained from the second system in real time by sending one or more messages to the second system via the webhook endpoint, wherein the second object configuration comprises a second system selection of a payment processing system comprising one of: an internal payment processing system of the computing system, an external payment processing system associated with the computing system, an external payment processing system associated with the second system, or an external third-party payment processing system;

routing, by the computing system to the payment processing system selected by the second system, a payment for the product to process the request for the product from the second system on behalf of the end user through the channel system, the selected payment processing system satisfying data security standards determined by the computing system to satisfy a minimum data security standard; and

in response to processing the payment for the product, sending, by the computing system to the second system via the webhook endpoint, one or more messages indicative of payment by the end user to cause the second system to execute fulfillment of the product for the end user through the channel system.

2. The method of claim 1 , wherein the payment processing system selected by the second system comprises payment processing performance by the computing system, and the method further comprises: processing, by the computing system, payment for the product based on payment data within the second object.

3. The method of claim 2 , wherein processing payment for the product further comprises:

communicating the payment data to the external payment processing system associated with the computing system; and

using the external payment processing system associated with the computing system to process the payment for the product.

4. The method of claim 1 , wherein the payment processing system selected by the second system comprises payment processing performance by the second system, and the method further comprises:

storing, by the computing system in a database, payment data within the second object;

communicating, by the computing system to the second system, the payment data to cause the second system to perform payment processing for the product based on the payment data.

5. The method of claim 4 , wherein communicating the payment data further comprises:

transmitting, by the computing system to the second system, the second object having the payment data.

6. The method of claim 1 , wherein the payment processing system selected by the second system comprises payment processing performance by the external third-party payment system, and the method further comprises:

storing, by the computing system in a database, payment data within the second object;

communicating, by the computing system to the external third-party payment system, the payment data to cause the external third-party payment system to perform payment processing for the product based on the payment data.

7. The method of claim 1 , wherein a second product of a merchant is defined by the second system to be associated with a payment processing type different than the payment processing system selected by the second system for the product.

8. The method of claim 1 , wherein the second object configuration is defined by the second system.

9. The method of claim 1 , wherein the minimum data security standard comprises a payment card industry (PCI) security standard.

10. The method of claim 1 , wherein details of the payment are stored on the channel system.

11. A non-transitory machine-readable storage medium having instruction stored thereon, which when executed by a computing system, causes the computing system to perform operations for order management and processing, the operations comprising:

receiving, by the computing system from a channel system, a request for a product that comprises a first object generated in response to an end user of the channel system selecting a link to the product within content distributed by the channel system, wherein the first object is defined at least in part based on a product identifier associated with the product;

identifying, by the computing system during a transaction, a second system associated with the product and one or more second system configurations, the one or more second system configurations comprising at least one webhook endpoint of the second system;

obtaining, by the computing system from the second system, one or more real time first object attribute configurations for the product by the computing system sending one or more messages to the second system via the webhook endpoint in response to receipt of one or more end user requests, received from the channel system, to change selected object attribute configurations that further configure the product;

communicating, by the computing system to the channel system, an update to the first object, wherein a display of the first object at the channel system to the end user is updated based at least in part on changes to the one or more real time first object attribute configurations obtained, via the webhook endpoint in real time by the computing system from the second system in response to the receipt of the one or more end user requests;

receiving, at the computing system from the channel system, a second object for the updated first object;

determining, by the computing system based on the second object, a second object configuration to be used when processing payment for the product, the second object configuration obtained from the second system in real time by sending one or more messages to the second system via the webhook endpoint, wherein the second object configuration comprises a second system selection of a payment processing system comprising one of: an internal payment processing system of the computing system, an external payment processing system associated with the computing system, an external payment processing system associated with the second system, or an external third-party payment processing system;

routing, by the computing system to the payment processing system selected by the second system, a payment for the product to process the request for the product from the second system on behalf of the end user through the channel system, the selected payment processing system satisfying data security standards determined by the computing system to satisfy a minimum data security standard; and

in response to processing the payment for the product, sending, by the computing system to the second system, one or more messages, via the webhook endpoint, indicative of payment by the end user to cause the second system to execute fulfillment of the product for the end user through the channel system.

12. The non-transitory machine-readable storage medium of claim 11 , wherein the payment processing system selected by the second system comprises payment processing performance by the computing system, and the operations further comprise:

processing, by the computing system, payment for the product based on payment data within the second object.

13. The non-transitory machine-readable storage medium of claim 12 , wherein operations for processing payment for the product further comprise:

communicating the payment data to the external payment processing system associated with the computing system; and

using the external payment processing system associated with the computing system to process the payment for the product.

14. The non-transitory machine-readable storage medium of claim 11 , wherein the payment processing system selected by the second system comprises payment processing performance by the second system, and the operations further comprise:

storing, by the computing system in a database, payment data within the second object;

communicating, by the computing system to the second system, the payment data to cause the second system to perform payment processing for the product based on the payment data.

15. The non-transitory machine-readable storage medium of claim 14 , wherein operations for communicating the payment data further comprise:

transmitting, by the computing system to the second system, the second object having the payment data.

16. The non-transitory machine-readable storage medium of claim 11 , wherein the payment processing system selected by the second system comprises payment processing performance by the external third-party payment system, and the operations further comprise:

storing, by the computing system in a database, payment data within the second object;

communicating, by the computing system to the external third-party payment system, the payment data to cause the external third-party payment system to perform payment processing for the product based on the payment data.

17. A server computer system, comprising:

a memory; and

a processor coupled with the memory configured to:

receive, from a channel system, a request for a product that comprises a first object generated in response to an end user of the channel system selecting a link to the product within content distributed by the channel system, wherein the first object is defined at least in part based on a product identifier associated with the product;

identify, during a transaction, a second system associated with the product and one or more second system configurations, the one or more second system configurations comprising at least one webhook endpoint of the second system;

obtain, by the server computer system from the second system, one or more real time first object attribute configurations for the product by the computing system sending one or more messages to the second system via the webhook endpoint in response to receipt of one or more end user requests, received from the channel system, to change selected object attribute configurations that further configure the product;

communicate, to the channel system, an update to the first object, wherein a display of the first object at the channel system to the end user is updated based at least in part on changes to the one or more real time first object attribute configurations obtained, via the webhook endpoint in real time from the second system in response to the receipt of the one or more end user requests;

receive, from the channel system, a second object for the updated first object;

determine, based on the second object, a second object configuration to be used when processing payment for the product, the second object configuration obtained from the second system in real time by sending one or more messages to the second system via the webhook endpoint, wherein the second object configuration comprises a second system selection of a payment processing system comprising one of: an internal payment processing system of the server computer system, an external payment processing system associated with the server computer system, an external payment processing system associated with the second system, or an external third-party payment processing system;

route, to the payment processing system selected by the second system, a payment for the product to process the request for the product from the second system on behalf of the end user through the channel system, the selected payment processing system satisfying data security standards determined by the computing system to satisfy a minimum data security standard; and

in response to processing the payment for the product, send, by the computing system to the second system, via the webhook end point, one or more messages indicative of payment by the end user to cause the second system to execute fulfillment of the product for the end user through the channel system.

18. The system of claim 17 , wherein the payment processing system selected by the second system comprises payment processing performance by the server computer system, and the processor is further configured to:

processing, by the server computer system, payment for the product based on payment data within the second object.

19. The system of claim 17 , wherein the payment processing system selected by the second system comprises payment processing performance by the second system, and the processor is further configured to:

storing, by the server computer system in a database, payment data within the second object;

communicating, by the server computer system to the second system, the payment data to cause the second system to perform payment processing for the product based on the payment data.

20. The system of claim 17 , wherein the payment processing system selected by the second system comprises payment processing performance by the external third-party payment system, and the processor is further configured to:

storing, by the server computer system in a database, payment data within the second object;

communicating, by the server computer system to the external third-party payment system, the payment data to cause the external third-party payment system to perform payment processing for the product based on the payment data.

Continuity (2)
Continuation 17120844 · Dec 14, 2020
Continuation 14824990 · Aug 12, 2015
References Cited (36)
US 7222087B1 · Bezos et al. · 2007 [cited by applicant]
US 7881987B1 · Hart et al. · 2011 [cited by applicant]
US 8243893B2 · Hayes et al. · 2012 [cited by applicant]
US 8341036B2 · Hartman et al. · 2012 [cited by applicant]
US 8606639B1 · Sun et al. · 2013 [cited by applicant]
US 8805573B2 · Brunner et al. · 2014 [cited by applicant]
US 8938396B2 · Swafford et al. · 2015 [cited by applicant]
US 9020847B2 · Ishii · 2015 [cited by applicant]
US 9754245B1 · Davison et al. · 2017 [cited by applicant]
US 10192216B2 · Hammad · 2019 [cited by examiner]
US 10748206B1 · Cooper · 2020 [cited by examiner]
US 20090254450A1 · Bollay · 2009 [cited by applicant]
US 20100183125A1 · Hayes et al. · 2010 [cited by applicant]
US 20110191206A1 · Kiarostami · 2011 [cited by applicant]
US 20110307389A1 · Francia · 2011 [cited by examiner]
US 20120246073A1 · Gore et al. · 2012 [cited by applicant]
US 20120303493A1 · Ishii · 2012 [cited by applicant]
US 20120316992A1 · Oborne · 2012 [cited by examiner]
US 20120324242A1 · Kirsch · 2012 [cited by examiner]
US 20130253960A1 · Woods et al. · 2013 [cited by applicant]
US 20130253980A1 · Blom et al. · 2013 [cited by applicant]
US 20140052617A1 · Chawla · 2014 [cited by examiner]
US 20140214588A1 · Verchere · 2014 [cited by applicant]
US 20140280546A1 · King et al. · 2014 [cited by applicant]
US 20150106263A1 · Linden et al. · 2015 [cited by applicant]
US 20150178767A1 · Wu et al. · 2015 [cited by applicant]
US 20150178768A1 · Yoo et al. · 2015 [cited by applicant]
US 20150220914A1 · Purves · 2015 [cited by examiner]
US 20150302456A1 · Rego et al. · 2015 [cited by applicant]
US 20150379581A1 · Bruno · 2015 [cited by examiner]
US 20160034953A1 · Wall · 2016 [cited by examiner]
US 20160358174A1 · Kassemi et al. · 2016 [cited by applicant]
Cretu, L. (2012). Smart cities design using event-driven paradigm and semantic web. Informatica Economica, 16(4), 57-67. Retrieved from https://search.proquest.com/docview/1399058573?accountid=14753 (Year: 2012). [cited by examiner]
Cretu, Liviu-Gabriel, “Smart cities design using event-driven paradigm and semantic web”, Informatica Economica, 2012, vol. 16, No. 4, pp. 57-67. [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2016/043931, mailed on Feb. 22, 2018, 10 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2016/043931, mailed on Oct. 5, 2016, 10 pages. [cited by applicant]