Processor endpoints
API reference for endpoints for use with or by Plaid partners
Processor token endpoints
Processor token endpoints are used to create tokens that are then sent to a Plaid partner for use in a Plaid integration. For a full list of integrations, see the developer dashboard. For specific information on Auth integrations, see Auth payment partners.
In this section | |
---|---|
/processor/token/create | Create a processor token |
/processor/stripe/bank_account_token/create | Create a bank account token for use with Stripe |
See also | |
---|---|
/sandbox/processor_token/create | Create a test Item and processor token (Sandbox only) |
/processor/token/create
Create processor token
Used to create a token suitable for sending to one of Plaid's partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see /processor/stripe/bank_account_token/create
for creating tokens for use with Stripe integrations. Processor tokens can also be revoked, using /item/remove
.
Request fields and example
client_id stringYour Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret stringYour Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
access_token requiredstringThe access token associated with the Item data is being requested for. |
account_id requiredstringThe account_id value obtained from the onSuccess callback in Link |
processor requiredstringThe processor you are integrating with. Possible values: dwolla , galileo , modern_treasury , ocrolus , prime_trust , vesta , drivewealth , vopay , achq , check , checkbook , circle , sila_money , rize , svb_api , unit , wyre , lithic , alpaca , astra , moov , treasury_prime , marqeta , checkout , solid , highnote , apex_clearing , gusto |
1const { Configuration, PlaidApi, PlaidEnvironments, ProcessorTokenCreateRequest } = require('plaid');2// Change sandbox to development to test with live users;3// Change to production when you're ready to go live!4const configuration = new Configuration({5 basePath: PlaidEnvironments[process.env.PLAID_ENV],6 baseOptions: {7 headers: {8 'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,9 'PLAID-SECRET': process.env.PLAID_SECRET,10 'Plaid-Version': '2020-09-14',11 },12 },13});1415const plaidClient = new PlaidApi(configuration);1617try {18 // Exchange the public_token from Plaid Link for an access token.19 const tokenResponse = await plaidClient.itemPublicTokenExchange({20 public_token: PUBLIC_TOKEN,21 });22 const accessToken = tokenResponse.access_token;2324 // Create a processor token for a specific account id.25 const request: ProcessorTokenCreateRequest = {26 access_token: accessToken,27 account_id: accountID,28 processor: 'dwolla',29 };30 const processorTokenResponse = await plaidClient.processorTokenCreate(31 request,32 );33 const processorToken = processorTokenResponse.data.processor_token;34} catch (error) {35 // handle error36}
Response fields and example
processor_token stringThe processor_token that can then be used by the Plaid partner to make API requests |
request_id stringA unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "processor_token": "processor-sandbox-0asd1-a92nc",3 "request_id": "xrQNYZ7Zoh6R7gV"4}
Was this helpful?
/processor/stripe/bank_account_token/create
Create Stripe bank account token
Used to create a token suitable for sending to Stripe to enable Plaid-Stripe integrations. For a detailed guide on integrating Stripe, see Add Stripe to your app. Bank account tokens can also be revoked, using /item/remove
.
Request fields and example
client_id stringYour Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret stringYour Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
access_token requiredstringThe access token associated with the Item data is being requested for. |
account_id requiredstringThe account_id value obtained from the onSuccess callback in Link |
1// Change sandbox to development to test with live users and change2// to production when you're ready to go live!3const { Configuration, PlaidApi, PlaidEnvironments, ProcessorStripeBankAccountTokenCreateRequest } = require('plaid');4const configuration = new Configuration({5 basePath: PlaidEnvironments[process.env.PLAID_ENV],6 baseOptions: {7 headers: {8 'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,9 'PLAID-SECRET': process.env.PLAID_SECRET,10 'Plaid-Version': '2020-09-14',11 },12 },13});1415const plaidClient = new PlaidApi(configuration);1617try {18 // Exchange the public_token from Plaid Link for an access token.19 const tokenResponse = await plaidClient.itemPublicTokenExchange({20 public_token: PUBLIC_TOKEN,21 });22 const accessToken = tokenResponse.access_token;2324 // Generate a bank account token25 const request: ProcessorStripeBankAccountTokenCreateRequest = {26 access_token: accessToken,27 account_id: accountID,28 };29 const stripeTokenResponse = await plaidClient.processorStripeBankAccountTokenCreate(30 request,31 );32 const bankAccountToken = stripeTokenResponse.stripe_bank_account_token;33} catch (error) {34 // handle error35}
Response fields and example
stripe_bank_account_token stringA token that can be sent to Stripe for use in making API calls to Plaid |
request_id stringA unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "stripe_bank_account_token": "btok_5oEetfLzPklE1fwJZ7SG",3 "request_id": "xrQNYZ7Zoh6R7gV"4}
Was this helpful?
Partner endpoints
Partner endpoints are used by Plaid partners to integrate with Plaid. Instead of using an access_token
associated with a Plaid Item
, these endpoints use a processor_token
to identify a single financial account. These endpoints are used only by partners and not by developers who are using those partners' APIs. If you are a Plaid developer who would like to learn how to move money with one of our partners, see Move money with Auth.
In this section | |
---|---|
/processor/auth/get | Fetch Auth data |
/processor/balance/get | Fetch Balance data |
/processor/identity/get | Fetch Identity data |
/processor/auth/get
Retrieve Auth data
The /processor/auth/get
endpoint returns the bank account and bank identification number (such as the routing number, for US accounts), for a checking or savings account that''s associated with a given processor_token
. The endpoint also returns high-level account data and balances when available.
Versioning note: API versions 2019-05-29 and earlier use a different schema for the numbers
object returned by this endpoint. For details, see Plaid API versioning.
Request fields and example
client_id stringYour Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret stringYour Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
processor_token requiredstringThe processor token obtained from the Plaid integration partner. Processor tokens are in the format: processor-<environment>-<identifier> |
1const request: ProcessorAuthGetRequest = {2 processor_token: processorToken,3};4const response = plaidClient.processorAuthGet(request);
Response fields and example
request_id stringA unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. | ||||||||||||||||||
numbers objectAn object containing identifying numbers used for making electronic transfers to and from the account . The identifying number type (ACH, EFT, IBAN, or BACS) used will depend on the country of the account. An account may have more than one number type. If a particular identifying number type is not used by the account for which auth data has been requested, a null value will be returned.
| ||||||||||||||||||
account objectA single account at a financial institution.
|
1{2 "account": {3 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",4 "balances": {5 "available": 100,6 "current": 110,7 "iso_currency_code": "USD",8 "limit": null,9 "unofficial_currency_code": null10 },11 "mask": "0000",12 "name": "Plaid Checking",13 "official_name": "Plaid Gold Checking",14 "subtype": "checking",15 "type": "depository"16 },17 "numbers": {18 "ach": {19 "account": "9900009606",20 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",21 "routing": "011401533",22 "wire_routing": "021000021"23 },24 "eft": {25 "account": "111122223333",26 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",27 "institution": "021",28 "branch": "01140"29 },30 "international": {31 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",32 "bic": "NWBKGB21",33 "iban": "GB29NWBK60161331926819"34 },35 "bacs": {36 "account": "31926819",37 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",38 "sort_code": "601613"39 }40 },41 "request_id": "1zlMf"42}
Was this helpful?
/processor/balance/get
Retrieve Balance data
The /processor/balance/get
endpoint returns the real-time balance for each of an Item's accounts. While other endpoints may return a balance object, only /processor/balance/get
forces the available and current balance fields to be refreshed rather than cached.
Request fields and example
client_id stringYour Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. | |
secret stringYour Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. | |
processor_token requiredstringThe processor token obtained from the Plaid integration partner. Processor tokens are in the format: processor-<environment>-<identifier> | |
options objectAn optional object to filter /processor/balance/get results.
|
1const request: ProcessorBalanceGetRequest = {2 processor_token: processorToken,3};4const response = plaidClient.processorBalanceGet(request);
Response fields and example
account objectA single account at a financial institution.
| ||||||||||||||
request_id stringA unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "account": {3 "account_id": "QKKzevvp33HxPWpoqn6rI13BxW4awNSjnw4xv",4 "balances": {5 "available": 100,6 "current": 110,7 "limit": null,8 "iso_currency_code": "USD",9 "unofficial_currency_code": null10 },11 "mask": "0000",12 "name": "Plaid Checking",13 "official_name": "Plaid Gold Checking",14 "subtype": "checking",15 "type": "depository"16 },17 "request_id": "1zlMf"18}
Was this helpful?
/processor/identity/get
Retrieve Identity data
The /processor/identity/get
endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses.
Request fields and example
client_id stringYour Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret stringYour Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
processor_token requiredstringThe processor token obtained from the Plaid integration partner. Processor tokens are in the format: processor-<environment>-<identifier> |
1const request: ProcessorIdentityGetRequest = {2 processor_token: processorToken,3};4const response = plaidClient.processorIdentityGet(request);
Response fields and example
account objectA single account at a financial institution.
| ||||||||||||||||||||||||||||||||
request_id stringA unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "account": {3 "account_id": "XMGPJy4q1gsQoKd5z9R3tK8kJ9EWL8SdkgKMq",4 "balances": {5 "available": 100,6 "current": 110,7 "iso_currency_code": "USD",8 "limit": null,9 "unofficial_currency_code": null10 },11 "mask": "0000",12 "name": "Plaid Checking",13 "official_name": "Plaid Gold Standard 0% Interest Checking",14 "owners": [15 {16 "addresses": [17 {18 "data": {19 "city": "Malakoff",20 "country": "US",21 "postal_code": "14236",22 "region": "NY",23 "street": "2992 Cameron Road"24 },25 "primary": true26 },27 {28 "data": {29 "city": "San Matias",30 "country": "US",31 "postal_code": "93405-2255",32 "region": "CA",33 "street": "2493 Leisure Lane"34 },35 "primary": false36 }37 ],38 "emails": [39 {40 "data": "accountholder0@example.com",41 "primary": true,42 "type": "primary"43 },44 {45 "data": "accountholder1@example.com",46 "primary": false,47 "type": "secondary"48 },49 {50 "data": "extraordinarily.long.email.username.123456@reallylonghostname.com",51 "primary": false,52 "type": "other"53 }54 ],55 "names": [56 "Alberta Bobbeth Charleson"57 ],58 "phone_numbers": [59 {60 "data": "1112223333",61 "primary": false,62 "type": "home"63 },64 {65 "data": "1112224444",66 "primary": false,67 "type": "work"68 },69 {70 "data": "1112225555",71 "primary": false,72 "type": "mobile1"73 }74 ]75 }76 ],77 "subtype": "checking",78 "type": "depository"79 },80 "request_id": "eOPkBl6t33veI2J"81}