IP Library Granted Patent US 12,136,072
Granted Patent B1
US 12,136,072 · App. 18/055,130 · Granted Nov 5, 2024

Methods and systems for dynamic routing of electronic transaction messages via machine learning

Inventors: Stephen E. Dinan (Austin, TX); James S. Osborn (Austin, TX); William J. Wied (Austin, TX)
Assignee: Worldpay, LLC
G06Q20/04G06Q20/10G06Q20/12
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,136,072
App. No.
18/055,130
Granted
Nov 5, 2024
Kind
B1
Abstract

Systems and methods are disclosed for dynamic routing of electronic transactions. One method comprises receiving a request message from a merchant system and determining a routing directive associated with the request message. Upon determining the routing directive, contextual data may be retrieved based on the routing directive. Then, a final destination payment processor may be determined based on the routing directive and the contextual data. The request message may be updated based on the final destination payment processor. The updated request message may then be transmitted to a downstream entity for further processing.

Claims (61)

1. A computer-implemented method for dynamic routing of electronic transactions, comprising:

receiving, by a dynamic routing service, a plurality of request messages from one or more point-of-sale (POS) devices;

processing, by the dynamic routing service, the plurality of request messages to determine routing directives associated with the plurality of request messages, wherein contextual data is retrieved based on the routing directives;

training a machine learning model based on a set of training data to determine one or more candidate processors, wherein the set of training data includes the contextual data associated with the plurality of request messages, and wherein the determining includes identifiers for the one or more candidate processors;

determining, via the trained machine learning model, a routing split for the plurality of request messages between the one or more candidate processors based on anticipated message volume during a predicted time-period;

routing, by the dynamic routing service, a varying percentage of the plurality of request messages to the one or more candidate processors based on the determined routing split for the plurality of request messages, wherein the determined routing split is fully or partially overridden upon determining the one or more candidate processors are exhibiting poor condition;

determining, via the trained machine learning model, an alternative destination processor for each of the varying percentage of the plurality of request messages whose routing split is fully or partially overridden; and

updating the identifiers of each of the varying percentage of the plurality of request messages to the alternative destination processor identifier for re-routing each of the varying percentage of the plurality of request messages to the alternative destination processor.

2. The computer-implemented method of claim 1 , wherein the routing of the plurality of request messages dynamically changes based, at least in part, on a condition of the one or more candidate processors.

3. The computer-implemented method of claim 1 , wherein processing the plurality of request messages to determine the routing directives, further comprises:

processing, by the dynamic routing service, the plurality of request messages to identify one or more initial processors;

determining, by the dynamic routing service, the one or more initial processors are unsuccessful in processing the plurality of request messages;

parsing the plurality of request messages to determine the routing directives and the contextual data; and

determining, via the trained machine learning model, the one or more candidate processors to process the plurality of request messages based, at least in part, on the routing directives and the contextual data.

4. The computer-implemented method of claim 3 , further comprising:

altering a message payload for each of the plurality of request messages to designate the one or more candidate processors as a destination for the plurality of request messages.

5. The computer-implemented method of claim 3 , wherein the contextual data includes origination points for the plurality of request messages, destinations for the plurality of request messages, time of transmission of the plurality of request messages, origination points for response messages, destinations for the response message, time of receipt of the response messages, status codes associated with the one or more candidate processors, average response time of the one or more candidate processors, average error rate of the one or more candidate processors, or a combination thereof.

6. The computer-implemented method of claim 3 , further comprising:

generating, via a user interface of a device, one or more routing parameters for configuring the routing directives, wherein the one or more routing parameters include a message type, a routing directive type, an error type, destination selection criteria, or a combination thereof; and

receiving, via the user interface of the device, a selection of the one or more routing parameters and corresponding values associated with the selected one or more routing parameters for routing the plurality of request messages.

7. The computer-implemented method of claim 6 , wherein the message type assigns priority values to indicate a preferred routing directive when more than one routing directives is applicable to at least one request message.

8. The computer-implemented method of claim 6 , wherein the routing directive type indicates an error-based routing directive for at least one request message upon determining the initial processor is unresponsive or unable to process the at least one request message.

9. The computer-implemented method of claim 8 , wherein the error-based routing directive include one or more status codes to limit application of the error-based routing directive to instances of specific error type, and wherein the one or more status codes indicate connectivity error, processing error, service unavailability error, unresponsive error, or a combination thereof.

10. The computer-implemented method of claim 6 , wherein the destination selection criteria specifies error rates, response time, approval rate, or a combination thereof for at least one candidate processor is below a pre-determined threshold.

11. A non-transitory computer readable medium for dynamic routing of electronic transactions, the non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform a method comprising:

receiving, by a dynamic routing service, a plurality of request messages from one or more point-of-sale (POS) devices;

processing, by the dynamic routing service, the plurality of request messages to determine routing directives associated with the plurality of request messages, wherein contextual data is retrieved based on the routing directives;

training a machine learning model based on a set of training data to determine one or more candidate processors, wherein the set of training data includes the contextual data associated with the plurality of request messages, and wherein the determining includes identifiers for the one or more candidate processors;

determining, via the trained machine learning model, a routing split for the plurality of request messages between the one or more candidate processors based on anticipated message volume during a predicted time-period;

routing, by the dynamic routing service, a varying percentage of the plurality of request messages to the one or more candidate processors based on the determined routing split for the plurality of request messages, wherein the determined routing split is fully or partially overridden upon determining the one or more candidate processors are exhibiting poor condition;

determining, via the trained machine learning model, an alternative destination processor for each of the varying percentage of the plurality of request messages whose routing split is fully or partially overridden; and

updating the identifiers of each of the varying percentage of the plurality of request messages to the alternative destination processor identifier for re-routing each of the varying percentage of the plurality of request messages to the alternative destination processor.

12. The non-transitory computer readable medium of claim 11 , wherein the routing of the plurality of request messages dynamically changes based, at least in part, on a condition of the one or more candidate processors.

13. The non-transitory computer readable medium of claim 11 , wherein processing the plurality of request messages to determine the routing directives, further comprises:

processing, by the dynamic routing service, the plurality of request messages to identify one or more initial processors;

determining, by the dynamic routing service, the one or more initial processors are unsuccessful in processing the plurality of request messages;

parsing the plurality of request messages to determine the routing directives and the contextual data; and

determining, via the trained machine learning model, the one or more candidate processors to process the plurality of request messages based, at least in part, on the routing directives and the contextual data.

14. The non-transitory computer readable medium of claim 13 , wherein the method further comprises:

altering a message payload for each of the plurality of request messages to designate the one or more candidate processors as a destination for the plurality of request messages.

15. The non-transitory computer readable medium of claim 13 , wherein the contextual data includes origination points for the plurality of request messages, destinations for the plurality of request messages, time of transmission of the plurality of request messages, origination points for response messages, destinations for the response message, time of receipt of the response messages, status codes associated with the one or more candidate processors, average response time of the one or more candidate processors, average error rate of the one or more candidate processors, or a combination thereof.

16. The non-transitory computer readable medium of claim 13 , wherein the method further comprises:

generating, via a user interface of a device, one or more routing parameters for configuring the routing directives, wherein the one or more routing parameters include a message type, a routing directive type, an error type, destination selection criteria, or a combination thereof; and

receiving, via the user interface of the device, a selection of the one or more routing parameters and corresponding values associated with the selected one or more routing parameters for routing the plurality of request messages.

17. The non-transitory computer readable medium of claim 16 , wherein the message type assigns priority values to indicate a preferred routing directive when more than one routing directives is applicable to at least one request message.

18. A system for dynamic routing of electronic transactions, the system comprising:

one or more processors;

a non-transitory computer readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform a method comprising:

receiving, by a dynamic routing service, a plurality of request messages from one or more point-of-sale (POS) devices;

processing, by the dynamic routing service, the plurality of request messages to determine routing directives associated with the plurality of request messages, wherein contextual data is retrieved based on the routing directives;

training a machine learning model based on a set of training data to determine one or more candidate processors, wherein the set of training data includes the contextual data associated with the plurality of request messages, and wherein the determining includes identifiers for the one or more candidate processors;

determining, via the trained machine learning model, a routing split for the plurality of request messages between the one or more candidate processors based on anticipated message volume during a predicted time-period;

routing, by the dynamic routing service, a varying percentage of the plurality of request messages to the one or more candidate processors based on the determined routing split for the plurality of request messages, wherein the determined routing split is fully or partially overridden upon determining the one or more candidate processors are exhibiting poor condition;

determining, via the trained machine learning model, an alternative destination processor for each of the varying percentage of the plurality of request messages whose routing split is fully or partially overridden; and

updating the identifiers of each of the varying percentage of the plurality of request messages to the alternative destination processor identifier for re-routing each of the varying percentage of the plurality of request messages to the alternative destination processor.

19. The system of claim 18 , wherein the routing of the plurality of request messages dynamically changes based, at least in part, on a condition of the one or more candidate processors.

20. The system of claim 18 , wherein processing the plurality of request messages to determine the routing directives, the system comprising:

processing, by the dynamic routing service, the plurality of request messages to identify one or more initial processors;

determining, by the dynamic routing service, the one or more initial processors are unsuccessful in processing the plurality of request messages;

parsing the plurality of request messages to determine the routing directives and the contextual data; and

determining, via the trained machine learning model, the one or more candidate processors to process the plurality of request messages based, at least in part, on the routing directives and the contextual data.

Assignments (5)
RELEASE OF SECURITY INTERESTS RECORDED AT REEL/FRAMES 066626/0655, 066625/0426, 066625/0347, AND 066625/0276 Recorded Jan 12, 2026
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: WORLDPAY, LLC; WORLDPAY ISO AND ECOMMERCE, LLC; PAYMETRIC, LLC; WORLDPAY US, LLC
Reel/Frame 074314/0622 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RECORDED AT R/F 066624/0719 Recorded Jan 12, 2026
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: WORLDPAY, LLC
Reel/Frame 074315/0412 →
SECURITY INTEREST Recorded Feb 19, 2024
From: WORLDPAY, LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066624/0719 →
SECURITY INTEREST Recorded Feb 19, 2024
From: WORLDPAY, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 066626/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2022
From: DINAN, STEPHEN E.; OSBORN, JAMES S.; WIED, WILLIAM J.
To: WORLDPAY, LLC
Reel/Frame 061761/0171 →
Continuity (1)
Continuation 16697818 · Nov 27, 2019