Learn

Introduction to Auth

Learn how Auth powers funds transfers, including via ACH, EFT, and more

Plaid Auth allows you to request a user's bank account information, making it easy for them to transfer money to or from their bank account. 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. Using Plaid Auth, a user can provide this information in a frictionless way, without having to look up and type their account numbers. Plaid Auth also verifies that the information is correct, increasing the percentage of successful payments by eliminating mistyped data and reducing the risk of fraud.

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. One of those is the bank account number, which identifies the account uniquely among accounts at the same financial institution. The other number is known as a bank code, and it uniquely identifies the bank. A single bank may have multiple bank codes. Auth allows you to obtain these numbers and codes, giving you the information you need to send money to or from these accounts using a payment processor.

Note that interbank funds transfers can only be used with depository-type accounts, such as checking and savings 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 payment processor

When using Auth, you will send Auth data to a payment processor to initiate an interbank transfer. While Plaid is processor-agnostic and allows you to work with any partner you want, the easiest way to make transfers between is to work with a payment processor that partners with Plaid, such as Stripe or Dwolla. Working with these partners, you will not call the Plaid /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 receive a Plaid token that you will provide to the processor 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 payment processor who is not a Plaid partner, you will need to obtain bank account numbers and codes using /auth/get and then provide that information to your processor. The section below explains in detail the data returned by /auth/get and how it can vary depending on where your user's bank account is located.

Interbank transfers 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 recieve 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
2
3
4
5
6
7
8
9
10
11
12
13
"numbers": {
"ach": [
{
"account": "1111222233330000",
"account_id": "bWG9l1DNpdc8zDk3wBm9iMkW3p1mVWCVKVmJ6",
"routing": "011401533",
"wire_routing": "021000021"
}
],
"bacs": [],
"eft": [],
"international": []
}
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
2
3
4
5
6
7
8
9
10
11
12
13
"numbers": {
"ach": [],
"bacs": [],
"eft": [
{
"account": "111122220000",
"account_id": "qVZ3Bwbo5wFmoVneZxMksBvN6vDad6idkndAB",
"branch": "01533",
"institution": "114"
}
],
"international": []
}
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
2
3
4
5
6
7
8
9
10
11
12
"numbers": {
"ach": [],
"bacs": [],
"eft": [],
"international": [
{
"account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",
"bic": "IE64BOFI90583812345678",
"iban": "IE64BOFI90583812345678"
}
]
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
"numbers": {
"ach": [],
"bacs": [
{
"account": "80000000",
"account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",
"sort_code": "040004"
}
],
"eft": [],
"international": [
{
"account_id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo",
"bic": "MONZGB21XXX",
"iban": "GB23MONZ04000480000000"
}
]
}

Covering more institutions

When used in its default configuration, Auth provides access to approximately 90% of financial institution accounts in supported countries. Plaid also offers additional options you can implement to cover more US institutions with Auth. For more information, see Full Auth coverage.

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.