IP Library Granted Patent US 11,216,814
Granted Patent B1
US 11,216,814 · App. 16/800,543 · Granted Jan 4, 2022

System and method for facilitating programmatic verification of transactions

Inventors: William Hockey (San Francisco, CA); Zach Perret (San Francisco, CA); Charles Li (San Francisco, CA)
Assignee: Plaid Inc.
G06Q20/4014
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 11,216,814
App. No.
16/800,543
Granted
Jan 4, 2022
Kind
B1
Abstract

Systems and methods for programmatic access of a financial institution system. A normalized API request provided by an application system specifies user information corresponding to at least one account endpoint of an external financial institution system. Responsive to the request, at least one application proxy instance associated with the normalized API request is used to collect transaction information from a corresponding financial institution system by providing the financial institution system with a proprietary API request that specifies at least account credentials associated with the user information. The transaction information is included in at least one proprietary API response provided by the financial institution system. A normalized API response is generated based on the collected transaction information and provided to the application system. Each application proxy instance is constructed to simulate an application of the corresponding financial institution system on behalf of a user associated with the application proxy instance.

Claims (52)

1. A computer system comprising:

one or more computer-readable storage devices configured to store a plurality of computer executable instructions; and

one or more hardware computer processors in communication with the one or more computer-readable storage devices and configured to execute the plurality of computer executable instructions in order to cause the computer system to:

receive, from a first computing device, a request for data associated with a user, the request including authentication credentials associated with the user;

identify an institution associated with the request;

instantiate a simulated instance of a software application associated with the institution, wherein the simulated instance of the software application is configured to interface, via an application programming interface (“API”), with a second computing device that is associated with the institution;

request, by the simulated instance of the software application and via the API, at least one of: account data, transaction data, or an electronic document associated with the user, from the second computing device;

receive the at least one of the account data, the transaction data, or the electronic document from the second computing device; and

analyze the received at least one of the account data, the transaction data, or the electronic document to determine an item of account information.

2. The computer system of claim 1 , wherein the item of account information comprises at least one of: a sufficient funds status, or an available funds amount.

3. The computer system of claim 1 , wherein the item of account information comprises a fraud pattern.

4. The computer system of claim 3 , wherein the fraud pattern comprises at least one of: an account age, a transaction history, a range of types of transactions, or a range of values of transactions.

5. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

trigger, based at least in part on the item of account information, at least one of: a notification, a programmatic event, a callback event.

6. The computer system of claim 5 , wherein the item of account information includes at least one of: a transaction amount, an available funds amount, a frequency of transactions, or an entity involved in a transaction.

7. The computer system of claim 6 , wherein trigger is initiated in response to the item of account information satisfying a condition or threshold.

8. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

authenticate the simulated instance of the software application with the second computing device based on at least one of: an identifier code, an authentication token, or a Media Access Control (MAC) address.

9. The computer system of claim 8 , wherein the simulated instance of the software application is configured to appear, from the perspective of the second computing device, to be the software application executing on a physical computing device of the user.

10. The computer system of claim 8 , wherein:

the authentication credentials associated with the user include at least a username associated with the user, and a password associated with the user; and

requesting the at least one of the account data, the transaction data, or the electronic document further includes providing, to the second computing device, the username associated with the user and the password associated with the user.

11. The computer system of claim 1 , wherein analyzing the electronic document comprises at least one of:

electronically scraping data from the electronic document including the item of account information,

executing an extraction script on the electronic document, or

performing an optical character recognition process on the electronic document.

12. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to, at least one of:

initiate, by the simulated instance of the software application and via the API, a transaction to or from an account indicated by the item of account information; or

initiate, via the API or another API, a transaction to or from an account indicated by the item of account information.

13. The computer system of claim 12 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

determine, via the API or the another API, a status of the transaction; and

provide, to another computing device, the status of the transaction.

14. The computer system of claim 13 , wherein providing the status of the transaction comprises causing electronically initiating communication via at least one of: email, text message, platform message, phone call, HTTP message, or programmatic event.

15. The computer system of claim 14 , wherein providing the status of the transaction comprises providing a notification indicating at least one of: a transaction value exceeding a threshold, or a transaction value being less than a threshold.

16. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

receive a request to initiate a transaction using the account information;

determine a parameter value of an account indicated by the account information;

determine whether the parameter value satisfies a condition of the request; and

in response to the parameter value not satisfying the condition, provide a notification.

17. The computer system of claim 16 , wherein the parameter value indicates at least one of: a transaction availability of the account, an age of the account, a range of transactions of the account, or a likelihood of fraud associated with the account.

18. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

receive a request to execute a transaction, wherein the transaction indicates an other account; and

in response to receiving the request:

initiate, by the simulated instance of the software application and via the API, a first transaction from an account indicated by the account information to a first proxy account; and

initiate, via the API or another API, a second transaction from a second proxy account to the other account.

19. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

receive a request to execute a transaction, wherein the transaction indicates an other account; and

in response to receiving the request:

initiate, by the simulated instance of the software application and via the API, a first transaction to an account indicated by the account information from a first proxy account; and

initiate, via the API or another API, a second transaction to a second proxy account from the other account.

20. The computer system of claim 1 , wherein the one or more hardware computer processors are configured to execute the plurality of computer executable instructions in order to further cause the computer system to:

provide, to another computing device, the item of account information.

Assignments (3)
SECURITY INTEREST Recorded Jul 15, 2020
From: PLAID INC.; QUOVO, INC.; RAMBLER TRELLIS LLC
To: SILICON VALLEY BANK
Reel/Frame 053211/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: HOCKEY, WILLIAM; PERRET, ZACH; LI, CHARLES
To: PLAID TECHNOLOGIES, INC.
Reel/Frame 052675/0758 →
CHANGE OF NAME Recorded May 15, 2020
From: PLAID TECHNOLOGIES, INC.
To: PLAID INC.
Reel/Frame 052679/0573 →
Continuity (4)
Continuation 15455959 · Mar 10, 2017
Continuation 14790897 · Jul 2, 2015
Continuation 14719117 · May 21, 2015
Provisional Application 62001461 · May 21, 2014
Cited By (4)
US 12,259,907 US 12,361,213 US 12,450,652 US 12,506,724