Introduction to Auth
Instantly retrieve account information to set up online payments via ACH and more.



Explore API
API Reference
View Auth requests, responses, and example code
View Auth APIQuickstart
Learn about Plaid's key concepts and run starter code
Get startedAuth allows you to request a user's checking or savings account information, making it easy for you to initiate credits or debits. For example, your app might allow users to accumulate a credit balance that they can cash out to a bank account, or it might allow users to pay you using their bank account information. With Auth, a user can provide this information in a frictionless way, simply by authenticating into their bank account.
You can perform an ACH transfer end-to-end by pairing Plaid Auth with one of our ACH processing partners, such as Stripe or Dwolla, and avoid having to access or store a user's bank account information. For more information, see Auth Partnerships.
Auth can be used in combination with other Plaid products, such as Balance (to verify that an account has sufficient funds before initiating an ACH debit) and Identity (to help complement know-your-customer processes and reduce fraud).
Looking for bank-to-bank transfer capabilities and don't have a payment processor yet? Check out Transfer (beta, US only) for a money movement solution.
Introduction to interbank transfers
Every bank account has a set of numbers that uniquely identify it and that are required in order to send money to or from the account: the bank account number, which identifies the account uniquely among accounts at the same financial institution, and the bank code (known in the US as the routing number), which uniquely identifies the bank. Auth retrieves this information, giving you the details you need to send money to or from these accounts using a payment processor.
Note that Auth can only be used with checking or savings accounts, and not with other types of depository accounts, such as money market accounts. Credit-type accounts, including credit cards, cannot receive payments directly via electronic interbank transfers, and Auth data cannot be used to set up credit card payments.
Using a payments service
When using Auth, you will send Auth data to a payments service to initiate an interbank transfer; Plaid does not function as the payment processor. While Plaid is processor-agnostic and allows you to work with any partner you want, one easy way to make transfers is to work with a payments platform that partners with Plaid, such as Stripe or Dwolla. Working with these partners, you will not call the /auth/get
endpoint, so you will not obtain a user's bank account information and do not need to worry about storing it securely. Instead, you will call /processor/token/create
or /processor/stripe/bank_account_token/create
to obtain a Plaid token that you will provide to the partner and that allows them to make these Plaid API calls as needed. For detailed instructions on how to set up Auth with a Plaid partner, as well as a list of supported funds transfer partners, see Auth Partnerships. Plaid Auth partnerships are currently supported for US institutions only.
If you choose to use a payments provider who is not a Plaid partner, you will need to obtain bank account numbers and codes using /auth/get
.
Covering more institutions
When used in its default configuration, Auth provides access to approximately 90% of financial institution accounts in supported countries. In the US, Plaid also offers additional flows you can implement to cover more institutions with Auth. For more information, see Full Auth coverage.
Configuring Link with Auth
By default, only checking and savings accounts will appear when using Auth, and institutions that do not support these accounts will not appear in the Institution Select pane.
When using Auth, you will typically only need access to the one specific account that the end user wants to use to fund the payment, rather than all checking and savings accounts they may have at the same institution. Because of this, it is recommended to use the Account Select Link customization when configuring Link for use with Auth, to limit unnecessary access to user accounts. You can enable Account Select from the Dashboard.
Auth details by country
Just as there are multiple systems for bank codes and account numbers, there are also multiple systems for moving money from bank to bank. These systems are known as interbank transfer systems. The interbank transfer system used for an account depends on which country it is located in. Depending on the country, a bank account may participate in multiple interbank transfer systems and thus have multiple bank codes. For example, UK bank accounts participate in both SEPA and BACS payments. By calling /auth/get
, you will receive all account numbers and bank codes associated with an Item.
United States (ACH)
In the United States, the bank code is known as a routing number, and the interbank transfer system is the Automated Clearing House (ACH) system. Because the ACH system can take several days to move money and can only be used within the United States, banks also have a second routing number, known as the wire transfer routing number, used to accept wire transfers. Wire transfers can be used to receive international payments and are faster than ACH transfers, but often involve a fee.
For a detailed, comprehensive guide to ACH transfers and payments, see Plaid's Modern Guide to ACH.
1"numbers": {2 "ach": [3 {4 "account": "1111222233330000",5 "account_id": "bWG9l1DNpdc8zDk3wBm9iMkW3p1mVWCVKVmJ6",6 "routing": "011401533",7 "wire_routing": "021000021"8 }9 ],10 "bacs": [],11 "eft": [],12 "international": []13}
Canada (EFT)
In Canada, the bank code is also known as a routing number, but it is in a different format than US routing numbers and broken into two pieces: the transit number (also known as the branch number), followed by the institution number. The interbank transfer system in Canada is the Electronic Funds Transfer (EFT) system, which can transfer funds instantaneously.
1"numbers": {2 "ach": [],3 "bacs": [],4 "eft": [5 {6 "account": "111122220000",7 "account_id": "qVZ3Bwbo5wFmoVneZxMksBvN6vDad6idkndAB",8 "branch": "01533",9 "institution": "114"10 }11 ],12 "international": []13}
Europe (SEPA transfers)
In the European Economic Area member states (which includes Euro zone nations, as well as the United Kingdom), the bank code is called a Bank Identifier Code (BIC), also known as a SWIFT code. Each bank account has a number in a standard format, known as the International Bank Account Number (IBAN), which is used along with the BIC for funds transfers. Many bank accounts also have internal, non-IBAN account numbers that cannot be used for funds transfers. The funds transfer system is known as the Shared European Payment Area (SEPA), and it supports three types of funds transfers: SEPA credit transfer, SEPA instant credit transfer, and SEPA direct debit.
1"numbers": {2 "ach": [],3 "bacs": [],4 "eft": [],5 "international": [6 {7 "account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",8 "bic": "IE64BOFI90583812345678",9 "iban": "IE64BOFI90583812345678"10 }11 ]12}
United Kingdom (BACS)
The UK uses the SEPA system as well as its own system, known as the Bankers Automated Clearing System (BACS), in which the bank code is known as a sort code. Similar to the ACH system, payments within the BACS system cannot be made outside the UK and take several days to process. BACS payments are typically used for recurring direct debit payments, such as payroll. UK bank accounts will typically have both a BACS sort code and an IBAN and support both BACS transfers and SEPA transfers.
1"numbers": {2 "ach": [],3 "bacs": [4 {5 "account": "80000000",6 "account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",7 "sort_code": "040004"8 }9 ],10 "eft": [],11 "international": [12 {13 "account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",14 "bic": "MONZGB21XXX",15 "iban": "GB23MONZ04000480000000"16 }17 ]18}
For UK-based implementations, also consider the Payment Initiation API, which allows end-to-end payments directly, without having to integrate an additional payment processor.
Sample app code
For a real-life example of an app that incorporates Auth, see the Node-based Plaid Pattern Account Funding sample app. Pattern Account Funding is a sample account funding app that fetches Auth data in order to set up funds transfers. The Auth code can be found in items.js
Next steps
Now that you understand Auth, add Auth to your app, or see Move Money with Auth partners to see specific instructions for configuring Auth with Plaid partners.