# US 12,118,566 B2 · Removing duplicate transactions from a transaction exchange platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,566 B2
- Document ID: US12118566B2
- Status: Granted
- Kind: B2
- Application number: 18/149,444
- Filed: 2023-01-03
- Published: 2023-07-27
- Granted: 2024-10-15
- Earliest claimed: 2019-12-20
- Assignees: Capital One Services, LLC
- Applicants: Capital One Services, LLC
- Inventors: Nishant Srivastava; Eric K. Barnum; Suresh Chander Ramaraj; Eric Smith; Earle Michael Lee; Kumari Bhawprita
- Web page: https://patentgrep.com/patent/US12118566B2

## CPC

- G06Q 20/425: {using two different networks, one for transaction and one for security confirmation}
- G06F 11/0745: {in an input/output transactions management context (input/output processing in general G06F13/00)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1405: {at machine instruction level}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06Q 20/085: {involving remote charge determination or related payment systems}
- G06Q 20/10: specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q 20/401: {Transaction verification}
- G06Q 20/4016: {involving fraud or risk level assessment in transaction processing}
- G06Q 40/00: Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q 40/02: Banking, e.g. interest calculation or account maintenance (credit or loans G06Q40/03)
- G06F 2201/87: Monitoring of transactions
- 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
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Aspects described herein may relate to a transaction exchange platform using a streaming data platform (SDP) and microservices to process transactions according to review and approval workflows. The transaction exchange platform may receive transactions from origination sources, which may be added to the SDP as transaction objects. As the transactions are received, the transactions may be analyzed to detect duplicate transactions and/or errors in the transactions. The transaction exchange platform may take steps to remediate transactions that are recognized as duplicates or predicted to generate one or more errors. Similarly, the transaction exchange platform may take steps to remediate transactions that are rejected by a clearinghouse.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by a screening microservice, a first transaction object corresponding to a first payment transaction, wherein the first transaction object comprises first transaction details;
determining, by the screening microservice, whether the first transaction object is a duplicate payment transaction by comparing the first transaction details to a data structure comprising transaction details of a plurality of payment transactions;
based on a determination that the first transaction details overlap with second transaction details of a second payment transaction, sending, by the screening microservice to a first user device, a request inquiring whether the first payment transaction is a duplicate of the second payment transaction;
receiving, by the screening microservice from the first user device, a response indicating that the first payment transaction is not a duplicate of the second payment transaction;
in response to receiving the response, generating an identification token for the first transaction object;
adding the first transaction object to a streaming data platform, wherein adding the first transaction object to the streaming data platform comprises setting a current workflow stage of the first transaction object to a pre-initialization stage;
retrieving, by a client registry microservice and based on a current workflow stage indicating the pre-initialization stage, a plurality of transaction objects, wherein the plurality of transaction objects comprises the first transaction object;
prepending, by the client registry microservice and based on a determination that the first payment transaction is permitted, a client identifier to the identification token to generate a first transaction identifier;
updating, by the client registry microservice, the current workflow stage of the first transaction object to an initialization state;
adding, by the client registry microservice, the updated first transaction object to the streaming data platform;
based on a determination that the current workflow stage of the updated first transaction object indicates that the updated first transaction object has completed processing, removing the updated first transaction object from the streaming data platform and outputting the updated first transaction object to a validation platform;
determining, by the validation platform, whether a format of the first transaction is valid;
based on determination that the format of the first transaction is valid, appending a batch identifier to the first transaction identifier and adding the first transaction to a file; and
uploading the file to a portal to initiate the first transaction and a plurality of transactions contained in the file.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
querying, by the screening microservice and via an application programming interface, the data structure to determine the transaction details of the plurality of payment transactions.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein determining whether the first transaction object is a duplicate payment transaction uses one or more machine learning models.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the first transaction details comprise at least one of:
identification of an account holder;
identification of a payor;
identification of a payee;
a payment amount; or
a payment date.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the determination that the first transaction details overlap with the second transaction details comprises:
determining that a number of the first transaction details match a number of the second transaction details, wherein the number is greater than or equal to a threshold amount.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determining, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure;
based on a determination that the third transaction details overlap with fourth transaction details of a fourth payment transaction, sending a request inquiring whether the third payment transaction is a duplicate of the fourth payment transaction;
receiving, by the screening microservice from the first user device, a response indicating that the third payment transaction is a duplicate of the fourth payment transaction; and
in response to receiving the response, deleting the third transaction object.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, further comprising:
generating, based on a determination that the third payment transaction is frequently duplicated, one or more rules to automate payment for the third payment transaction.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determining, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure; and
based on a determination that the third transaction details do not overlap with the transaction details of the plurality of payment transactions, adding the third transaction object to the streaming data platform.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, by the client registry microservice and prior to prepending the client identifier to the identification token, whether the first payment transaction is permitted based on one or more rules.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the one or more rules comprise regulatory-based rules to determine whether the first transaction is permitted by law.

### Claim 11

A transaction exchange platform comprising:
a streaming data platform;
a plurality of microservices comprise a screening microservice and a client registry microservice;
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the transaction exchange platform to:
receive, by the screening microservice, a first transaction object corresponding to a first payment transaction, wherein the first transaction object comprises first transaction details;
determine, by the screening microservice, whether the first transaction object is a duplicate payment transaction by comparing the first transaction details to a data structure comprising transaction details of a plurality of payment transactions;
based on a determination that the first transaction details overlap with second transaction details of a second payment transaction, send, by the screening microservice to a first user device, a request inquiring whether the first payment transaction is a duplicate of the second payment transaction;
receive, by the screening microservice from the first user device, a response indicating that the first payment transaction is not a duplicate of the second payment transaction;
in response to receiving the response, generate an identification token for the first transaction object;
add the first transaction object to a streaming data platform, wherein adding the first transaction object to the streaming data platform comprises setting a current workflow stage of the first transaction object to a pre-initialization stage;
retrieve, by the client registry microservice and based on a current workflow stage indicating the pre-initialization stage, a plurality of transaction objects, wherein the plurality of transaction objects comprises the first transaction object;
prepend, by the client registry microservice and based on a determination that the first payment transaction is permitted, a client identifier to the identification token to generate a first transaction identifier;
update, by the client registry microservice, the current workflow stage of the first transaction object to an initialization state;
add, by the client registry microservice, the updated first transaction object to the streaming data platform;
based on a determination that the current workflow stage of the updated first transaction object indicates that the updated first transaction object has completed processing, remove the updated first transaction object from the streaming data platform and outputting the updated first transaction object to a validation platform;
determine, by the validation platform, whether a format of the first transaction is valid;
based on determination that the format of the first transaction is valid, append a batch identifier to the first transaction identifier and add the first transaction to a file; and
upload the file to a portal to initiate the first transaction and a plurality of transactions contained in the file.

### Claim 12 (depends on 11)

The transaction exchange platform of claim 11, wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:
query, by the screening microservice and via an application programming interface, the data structure to determine the transaction details of the plurality of payment transactions.

### Claim 13 (depends on 11)

The transaction exchange platform of claim 11, wherein determining whether the first transaction object is a duplicate payment transaction uses one or more machine learning models.

### Claim 14 (depends on 11)

The transaction exchange platform of claim 11, wherein the first transaction details comprise at least one of:
identification of an account holder;
identification of a payor;
identification of a payee;
a payment amount; or
a payment date.

### Claim 15 (depends on 11)

The transaction exchange platform of claim 11, wherein the instructions to determine that the first transaction details overlap with the second transaction details cause the transaction exchange platform to:
determine that a number of the first transaction details match a number of the second transaction details, wherein the number is greater than or equal to a threshold amount.

### Claim 16 (depends on 11)

The transaction exchange platform of claim 11, wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:
receive, by the screening microservice, a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determine, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure;
based on a determination that the third transaction details overlap with fourth transaction details of a fourth payment transaction, send a request inquiring whether the third payment transaction is a duplicate of the fourth payment transaction;
receive, by the screening microservice from the first user device, a response indicating that the third payment transaction is a duplicate of the fourth payment transaction; and
in response to receiving the response, delete the third transaction object.

### Claim 17 (depends on 16)

The transaction exchange platform of claim 16, wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:
generate, based on a determination that the third payment transaction is frequently duplicated, one or more rules to automate payment for the third payment transaction.

### Claim 18 (depends on 11)

The transaction exchange platform of claim 11, wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:
receive, by the screening microservice, a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determine, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure; and
based on a determination that the third transaction details do not overlap with the transaction details of the plurality of payment transactions, add the third transaction object to the streaming data platform.

### Claim 19 (depends on 11)

The transaction exchange platform of claim 11, wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:
determine, by the client registry microservice and prior to prepending the client identifier to the identification token, whether the first payment transaction is permitted based on one or more rules.

### Claim 20 (depends on 19)

The transaction exchange platform of claim 19, wherein the one or more rules comprise regulatory-based rules to determine whether the first transaction is permitted by law.

### Claim 21

One or more non-transitory computer readable media comprising instructions that, when executed, cause a transaction exchange platform to:
receive, by a screening microservice, a first transaction object corresponding to a first payment transaction, wherein the first transaction object comprises first transaction details;
determine, by the screening microservice, whether the first transaction object is a duplicate payment transaction by comparing the first transaction details to a data structure comprising transaction details of a plurality of payment transactions;
based on a determination that the first transaction details overlap with second transaction details of a second payment transaction, send, by the screening microservice to a first user device, a request inquiring whether the first payment transaction is a duplicate of the second payment transaction;
receive, by the screening microservice from the first user device, a response indicating that the first payment transaction is not a duplicate of the second payment transaction;
in response to receiving the response, generate an identification token for the first transaction object;
add the first transaction object to a streaming data platform, wherein adding the first transaction object to the streaming data platform comprises setting a current workflow stage of the first transaction object to a pre-initialization stage;
retrieve, by a client registry microservice and based on a current workflow stage indicating the pre-initialization stage, a plurality of transaction objects, wherein the plurality of transaction objects comprises the first transaction object;
prepend, by the client registry microservice and based on a determination that the first payment transaction is permitted, a client identifier to the identification token to generate a first transaction identifier;
update, by the client registry microservice, the current workflow stage of the first transaction object to an initialization state;
add, by the client registry microservice, the updated first transaction object to the streaming data platform;
based on a determination that the current workflow stage of the updated first transaction object indicates that the updated first transaction object has completed processing, remove the updated first transaction object from the streaming data platform and output the updated first transaction object to a validation platform;
determine, by the validation platform, whether a format of the first transaction is valid;
based on determination that the format of the first transaction is valid, append a batch identifier to the first transaction identifier and add the first transaction to a file; and
upload the file to a portal to initiate the first transaction and a plurality of transactions contained in the file.

### Claim 22 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the instructions, when executed, cause the transaction exchange platform to:
query, by the screening microservice and via an application programming interface, the data structure to determine the transaction details of the plurality of payment transactions.

### Claim 23 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein determining whether the first transaction object is a duplicate payment transaction uses one or more machine learning models.

### Claim 24 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the first transaction details comprise at least one of:
identification of an account holder;
identification of a payor;
identification of a payee;
a payment amount; or
a payment date.

### Claim 25 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the instructions to determine that the first transaction details overlap with the second transaction details cause the transaction exchange platform to:
determine that a number of the first transaction details match a number of the second transaction details, wherein the number is greater than or equal to a threshold amount.

### Claim 26 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the instructions, when executed, cause the transaction exchange platform to:
receive, by the screening microservice, a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determine, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure;
based on a determination that the third transaction details overlap with fourth transaction details of a fourth payment transaction, send a request inquiring whether the third payment transaction is a duplicate of the fourth payment transaction;
receive, by the screening microservice from the first user device, a response indicating that the third payment transaction is a duplicate of the fourth payment transaction; and
in response to receiving the response, delete the third transaction object.

### Claim 27 (depends on 26)

The one or more non-transitory computer readable media of claim 26, wherein the instructions, when executed, cause the transaction exchange platform to:
generate, based on a determination that the third payment transaction is frequently duplicated, one or more rules to automate payment for the third payment transaction.

### Claim 28 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the instructions, when executed, cause the transaction exchange platform to:
receive, by the screening microservice, a third transaction object corresponding to a third payment transaction, wherein the third transaction object comprises third transaction details;
determine, by the screening microservice, whether the third transaction object is a duplicate payment transaction by comparing the third transaction details to the data structure; and
based on a determination that the third transaction details do not overlap with the transaction details of the plurality of payment transactions, add the third transaction object to the streaming data platform.

### Claim 29 (depends on 21)

The one or more non-transitory computer readable media of claim 21, wherein the instructions, when executed, cause the transaction exchange platform to:
determine, by the client registry microservice and prior to prepending the client identifier to the identification token, whether the first payment transaction is permitted based on one or more rules.

### Claim 30 (depends on 29)

The one or more non-transitory computer readable media of claim 29, wherein the one or more rules comprise regulatory-based rules to determine whether the first transaction is permitted by law.
