# US 12,008,639 B1 · System and method for closing financial accounts using event driven architecture

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

- Number: US 12,008,639 B1
- Document ID: US12008639B1
- Status: Granted
- Kind: B1
- Application number: 17/652,298
- Filed: 2022-02-24
- Granted: 2024-06-11
- Earliest claimed: 2019-05-31
- Assignees: United Services Automobile Association (USAA)
- Applicants: Uipco, LLC
- Inventors: Jason Paul Hendry; Rodney Kalich; Randall Martin Brandt; Marco Aldo Jimenez; David Perry
- Web page: https://patentgrep.com/patent/US12008639B1

## CPC

- G06Q 40/02: Banking, e.g. interest calculation or account maintenance (credit or loans G06Q40/03)
- G06Q 20/108: {Remote banking, e.g. home banking}
- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- G06Q 20/4016: {involving fraud or risk level assessment in transaction processing}
- 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

## Abstract

A system and method of providing real time account information for financial accounts is disclosed. The system includes an event based architecture including an event stream. Financial transaction processing systems publish transaction events to the event stream. A transaction service listening to the event stream detects new transaction events. The transaction service takes action to enrich transaction data. A middleware system reconciles existing transactions and persists transaction records in long term storage. Prior to closing financial accounts, the system can retrieve a list of all scheduled and pending transactions and request that these transactions are canceled before closing the account.

## Claims

### Claim 1

A method for closing a financial account, comprising:
using an event stream system to provide an event driven architecture in a system for generating and using real time enriched financial transaction data;
detecting a transaction event for a financial transaction, the transaction event being published by a financial transaction processing system to an event stream in the system for generating and using real time enriched financial transaction data for subsequent use by event consumers, the transaction event being associated with transaction data;
sending a request to the system for generating and using real time enriched financial transaction data to enrich the transaction data, the enriching occurring in near real time immediately after the detection of the transaction event and being performed by a data enrichment Application Programming Interface;
receiving enriched transaction data from the data enrichment Application Programming Interface and publishing an enriched data event by an event producer to the event stream for use by the event consumers;
reconciling scheduled, manual, and pending transactions using a reconciliation Application Programming Interface to find completed and expired transactions received by a middleware for use when closing the financial account;
aggregating, by a data aggregator, enriched manual and scheduled transaction data from the financial transaction processing system and enriched pending and processed transaction data from the middleware to generate maintained enriched transaction data;
receiving an account closing request;
looking up a list of scheduled and pending transactions in enriched transaction records using the maintained enriched transaction data provided by the data aggregator;
determining sources of the scheduled and pending transactions from source data fields in the enriched transaction records;
using the maintained enriched transaction data and a source of the financial transaction to determine that the financial transaction has not posted, such that the financial transaction is a scheduled transaction, a manual transaction, or a pending transaction;
sending a request to the financial transaction processing system to cancel the financial transaction;
closing the financial account; and
deactivating a credit card associated with the financial account.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
retrieving information about the financial transaction processing system associated with the financial transaction from the enriched transaction data.

### Claim 3 (depends on 1)

The method according to claim 1, further comprising receiving a confirmation that the financial transaction has been canceled.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the method includes sending a notification to an owner of the financial account that the financial transaction has been cancelled.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the notification includes information from the enriched transaction data and the information from the enriched transaction data includes information about an originating party of the financial transaction.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the enriched transaction data is cleaned by removing simple errors and applying a consistent format.

### Claim 7

A method for closing a financial account, comprising:
using an event stream system to provide an event driven architecture in a system for generating and using real time enriched financial transaction data;
detecting a transaction event for a financial transaction, the transaction event being published by a financial transaction processing system to an event stream in the system for generating and using real time enriched financial transaction data for subsequent use by event consumers, the transaction event being associated with transaction data;
sending a request to the system for generating and using real time enriched financial transaction data to enrich the transaction data, the enriching occurring in near real time immediately after the detection of the transaction event and being performed by a data enrichment Application Programming Interface;
receiving enriched transaction data from the data enrichment Application Programming Interface and publishing an enriched data event by an event producer to the event stream for use by the event consumers;
reconciling scheduled, manual, and pending transactions using a reconciliation Application Programming Interface to find completed and expired transactions received by a middleware for use when closing the financial account;
aggregating, by a data aggregator, enriched manual and scheduled transaction data from the financial transaction processing system and enriched pending and processed transaction data from the middleware to generate maintained enriched transaction data;
receiving an account closing request;
looking up a list of scheduled and pending transactions in enriched transaction records using the maintained enriched transaction data provided by the data aggregator;
determining sources of the scheduled and pending transactions from source data fields in the enriched transaction records;
using the maintained enriched transaction data and a source of the financial transaction to determine that the financial transaction has not posted, such that the financial transaction is a scheduled transaction, a manual transaction, or a pending transaction;
sending a request to the financial transaction processing system to cancel the financial transaction;
receiving a confirmation that the financial transaction has been canceled; and
closing the financial account.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising deactivating a credit card associated with the financial account.

### Claim 9 (depends on 7)

The method according to claim 7, further comprising:
retrieving information about the financial transaction processing system associated with the financial transaction from the enriched transaction data.

### Claim 10 (depends on 7)

The method according to claim 7, wherein the enriched transaction data is cleaned by removing simple errors and applying a consistent format.

### Claim 11 (depends on 7)

The method according to claim 7, wherein the enriched transaction data is categorized.

### Claim 12 (depends on 7)

The method according to claim 7, wherein the method includes sending a notification to an owner of the financial account that the financial transaction has been cancelled and the notification includes information from the enriched transaction data.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the information from the enriched transaction data includes information about an originating party of the financial transaction.

### Claim 14 (depends on 7)

The method according to claim 7, wherein the enriched transaction data is captured in at least one local datastore and accessed with a lower latency because the enriched transaction data is accessed directly from the at least one local datastore.

### Claim 15

A method for closing a financial account, comprising:
using an event stream system to provide an event driven architecture in a system for generating and using real time enriched financial transaction data;
listening for transaction events published to an event stream;
detecting a transaction event for a financial transaction, the transaction event being published by a financial transaction processing system to an event stream in the system for generating and using real time enriched financial transaction data for subsequent use by event consumers, the transaction event being associated with transaction data;
sending a request to the system for generating and using real time enriched financial transaction data to enrich the transaction data, the enriching occurring in near real time immediately after the detection of the transaction event and being performed by a data enrichment Application Programming Interface;
receiving enriched transaction data from the data enrichment Application Programming Interface and publishing an enriched data event by an event producer to the event stream for use by the event consumers;
reconciling scheduled, manual, and pending transactions using a reconciliation Application Programming Interface to find completed and expired transactions received by a middleware for use when closing the financial account;
aggregating, by a data aggregator, enriched manual and scheduled transaction data from the financial transaction processing system and enriched pending and processed transaction data from the middleware to generate maintained enriched transaction data;
receiving an account closing request;
looking up a list of scheduled and pending transactions in enriched transaction records using the maintained enriched transaction data provided by the data aggregator;
determining sources of the scheduled and pending transactions from source data fields in the enriched transaction records;
using the maintained enriched transaction data and a source of the financial transaction to determine that the financial transaction has not posted, such that the financial transaction is a scheduled transaction, a manual transaction, or a pending transaction;
sending a request to the financial transaction processing system to cancel the financial transaction; and
closing the financial account.

### Claim 16 (depends on 15)

The method according to claim 15, further comprising deactivating a credit card associated with the financial account.

### Claim 17 (depends on 15)

The method according to claim 15, further comprising receiving a confirmation that the financial transaction has been canceled.

### Claim 18 (depends on 15)

The method according to claim 15, further comprising:
retrieving information about the financial transaction processing system associated with the financial transaction from the enriched transaction data.

### Claim 19 (depends on 15)

The method according to claim 15, wherein the enriched transaction data is cleaned by removing simple errors and applying a consistent format.

### Claim 20 (depends on 15)

The method according to claim 15, wherein the enriched transaction data is captured in at least one local datastore and accessed with a lower latency because the enriched transaction data is accessed directly from the at least one local datastore.
