IP Library Granted Patent US 12,074,880
Granted Patent B2
US 12,074,880 · App. 17/656,528 · Granted Aug 27, 2024

Secure authorization of access to user accounts by one or more authorization mechanisms

Inventors: Jason Pate (San Francisco, CA); Paolo Bernasconi (San Francisco, CA); Jan Dudek (San Francisco, CA); Riley Avron (San Francisco, CA); Maxwell Johnson (San Francisco, CA); Sattvik Kansal (San Francisco, CA); William Hockey (San Francisco, CA); Alexis Hidebrandt (Berlin, DE)
Assignee: Plaid Inc.
H04L63/102G06F9/455G06F21/44
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,074,880
App. No.
17/656,528
Granted
Aug 27, 2024
Kind
B2
Abstract

A permissions management system is disclosed for enabling a user to securely authorize access to user accounts and/or securely authorize execution of transactions related to user accounts via one or more application programming interfaces (“APIs”) and/or one or more authorization mechanisms.

Claims (82)

1. A computer system comprising:

a computer readable storage medium having program instructions embodied therewith; and

one or more hardware processors configured to execute the program instructions to cause the computer system to:

provide permissions code to a computing device operated by a user, wherein the permissions code is configured to generate one or more user interfaces configured to receive, from the user, at least a first account identifier associated with a user account;

receive, from the computing device operated by the user, at least the first account identifier and account credentials associated with the user account;

access a second account identifier associated with the user account through at least an application programming interface (“API”) associated with an institution and using the account credentials;

in response to determining that the first account identifier and the second account identifier match, generate a token usable to authorize access to user account data associated with the user account or initiate transactions related to the user account,

wherein the permissions code is configured provide secure communications, to the computer system, of the first account identifier and the account credentials, and

wherein the first account identifier and the account credentials are not stored by the computing device operated by the user;

in response to determining that at least one of: the institution does not support a first fallback authorization mechanism, or the first fallback authorization mechanism failed:

initiate a second fallback authorization mechanism;

initiate one or more authorization transactions to the user account using the first account identifier and an institution identifier associated with the institution; and

verify the one or more authorization transactions; and

in response to verifying the one or more authorization transactions, generate a token usable to authorize access to the user account data associated with the user account or initiate transactions related to the user account.

2. The computer system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

receive, from the computing device operated by the user, a first institution identifier associated with the institution; and

access a second institution identifier associated with the institution through at least one of: the API associated with the institution, or a database of institution identifiers,

wherein generating the token is performed further in response to determining that the first institution identifier and the second institution identifier match.

3. The computer system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

further in response to determining that the first account identifier and the second account identifier match, access user account information associated with the user account through at least the API associated with the institution.

4. The computer system of claim 1 , wherein the one or more user interfaces are further configured to receive, from the user, at least:

an indication of the institution, and

the account credentials associated with the user account.

5. The computer system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

instantiate a simulated instance of a software application associated with the institution and configured to communicate with a computing device associated with the institution through the API associated with the institution, wherein accessing the second account identifier is performed through the simulated instance of the software application and the API associated with the institution and using the account credentials.

6. The computer system of claim 1 , wherein the second account identifier is accessed through extraction of the second account identifier from a document accessed through the API associated with the institution.

7. The computer system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

receive the institution identifier associated with the institution from at least one of: the computing device operated by the user, or a database of institution identifiers.

8. The computer system of claim 7 , wherein the one or more user interfaces are further configured to receive, from the user, at least: the institution identifier.

9. The computer system of claim 8 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

verify the one or more authorization transactions based on one or more authorization parameters associated with the one or more authorization transactions,

wherein the one or more authorization parameters include at least one of: transaction type, transaction description, transaction amount, transaction identifier, datestamps, timestamps, source, or other transaction metadata.

10. The computer system of claim 9 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

automatically verify the one or more authorization transactions without additional user input, wherein automatically verifying the one or more authorization transactions comprises:

accessing, from the user account data associated with the user account, a first one or more authorization parameters associated with the one or more authorization transactions through the at least an API associated with the institution and using the account credentials; and

comparing the first one or more authorization parameters with a second one or more authorization parameters associated with the one or more authorization transactions to determine that the first one or more authorization parameters and the second one or more authorization parameters match, wherein the second one or more authorization parameters are stored by the computer system upon initiating the one or more authorization transactions.

11. The computer system of claim 10 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

in response to initiating the one or more authorization transactions, and before verifying the one or more authorization transactions, generate an interim token.

12. The computer system of claim 1 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

in response to determining that at least one of: the institution does not support the second fallback authorization mechanism, or the second fallback authorization mechanism failed:

initiate a third fallback authorization mechanism;

if not already initiated, initiate one or more authorization transactions to the user account using the first account identifier and the institution identifier associated with the institution;

receive a first one or more authorization parameters from the computing device operated by the user; and

verify the one or more authorization transactions based at least in part on the first one or more authorization parameters; and

in response to verifying the one or more authorization transactions, generate a token usable to authorize access to user account data associated with the user account or initiate transactions related to the user account.

13. The computer system of claim 12 , wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

receive the institution identifier associated with the institution from at least one of: the computing device operated by the user, or a database of institution identifiers.

14. The computer system of claim 13 , wherein the one or more user interfaces are further configured to receive, from the user, at least:

the institution identifier, and

the first one or more authorization parameters.

15. The computer system of claim 14 , wherein the first one or more authorization parameters include at least one of: transaction type, transaction description, transaction amount, transaction identifier, date stamps, timestamps, source, or other transaction metadata.

16. The computer system of claim 15 , wherein verifying the one or more authorization transactions comprises:

comparing the first one or more authorization parameters with a second one or more authorization parameters associated with the one or more authorization transactions to determine that the first one or more authorization parameters and the second one or more authorization parameters match,

wherein the second one or more authorization parameters are stored by the computer system upon initiating the one or more authorization transactions.

17. A computer-implemented method comprising:

by one or more processors executing program instructions:

providing permissions code to a computing device operated by a user, wherein the permissions code is configured to generate one or more user interfaces configured to receive, from the user, at least a first account identifier associated with a user account;

receiving, from the computing device operated by the user, at least the first account identifier and account credentials associated with the user account;

accessing a second account identifier associated with the user account through at least an application programming interface (“API”) associated with an institution and using the account credentials;

in response to determining that the first account identifier and the second account identifier match, generating a token usable to authorize access to user account data associated with the user account or initiate transactions related to the user account,

wherein the permissions code is configured provide secure communications of the first account identifier and the account credentials, and

wherein the first account identifier and the account credentials are not stored by the computing device operated by the user;

in response to determining that at least one of: the institution does not support a first fallback authorization mechanism, or the first fallback authorization mechanism failed:

initiate a second fallback authorization mechanism;

initiate one or more authorization transactions to the user account using the first account identifier and an institution identifier associated with the institution; and

verify the one or more authorization transactions; and

in response to verifying the one or more authorization transactions, generate a token usable to authorize access to the user account data associated with the user account or initiate transactions related to the user account.

18. The computer-implemented method of claim 17 , wherein the one or more user interfaces are further configured to receive, from the user, at least:

an indication of the institution, and

the account credentials associated with the user account.

19. A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by one or more processors to cause the one or more processors to:

provide permissions code to a computing device operated by a user, wherein the permissions code is configured to generate one or more user interfaces configured to receive, from the user, at least a first account identifier associated with a user account;

receive, from the computing device operated by the user, at least the first account identifier and account credentials associated with the user account;

access a second account identifier associated with the user account through at least an application programming interface (“API”) associated with an institution and using the account credentials;

in response to determining that the first account identifier and the second account identifier match, generate a token usable to authorize access to user account data associated with the user account or initiate transactions related to the user account,

wherein the permissions code is configured provide secure communications of the first account identifier and the account credentials, and

wherein the first account identifier and the account credentials are not stored by the computing device operated by the user;

in response to determining that at least one of: the institution does not support a first fallback authorization mechanism, or the first fallback authorization mechanism failed:

initiate a second fallback authorization mechanism;

initiate one or more authorization transactions to the user account using the first account identifier and an institution identifier associated with the institution; and

verify the one or more authorization transactions; and

in response to verifying the one or more authorization transactions, generate a token usable to authorize access to the user account data associated with the user account or initiate transactions related to the user account.

Assignments (2)
CHANGE OF NAME Recorded Apr 6, 2023
From: PLAID TECHNOLOGIES, INC.
To: PLAID INC.
Reel/Frame 063270/0044 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2023
From: PATE, JASON; BERNASCONI, PAOLO; DUDEK, JAN; AVRON, RILEY; JOHNSON, MAXWELL; KANSAL, SATTVIK; HOCKEY, WILLIAM; HIDEBRANDT, ALEXIS
To: PLAID TECHNOLOGIES, INC.
Reel/Frame 063282/0942 →
Continuity (3)
Continuation 16570630 · Sep 13, 2019
Provisional Application 62731778 · Sep 14, 2018
Related Publication 20220217147A1 · Jul 7, 2022