Skip to navigation

Link Plaid Item

View as Markdown

Available to: All authenticated users

Environments: Live

Rate Limit: No endpoint-specific limit

Submit the public token and selected depository account returned by a successful Plaid Link session. The response returns the ACH application’s ID in achApplicationId.

Set dormanAccountId and dormanAccountName to the selected NinjaTrader account’s ID and exact name. Set accountId to Plaid’s account ID and publicToken to the public token from the same Plaid Link session. Map the remaining client-visible Plaid values as follows:

  • Set financialInstitutionName to the institution name, or an empty string when Plaid doesn’t provide one.
  • Set accountNumber to the account mask, or "****" when Plaid doesn’t provide one. This field must be non-empty.
  • Set routingNumber to the Plaid institution ID, or an empty string when Plaid doesn’t provide one.

The service replaces the account and routing numbers with the verified values returned by Plaid before storing the application.

For a new connection, the application starts as UnderReview. It changes to Approved during the request when the verified bank-account owner matches the NinjaTrader account holder; otherwise, it remains UnderReview for manual review. An UnderReview application is valid but can’t be used for funding until it becomes Approved. Refresh the user’s ACH applications once after this request, and use bounded later checks when the application needs review.

For a relink, first create the Plaid Link token with the existing RequiresRelink application’s ID. After the user reconnects, this request updates the existing application and returns it to Approved. For a tokenized account, a relink attempt fails if the selected bank account doesn’t match the original persistent bank account.

Warning: Business failures return HTTP 200 with errorText and no achApplicationId. Check errorText before treating the link as complete.

Common Failure Scenarios

  • The NinjaTrader account ID and name don’t match.
  • Another active ACH application already exists for the NinjaTrader account.
  • Plaid doesn’t return the selected account, ACH account numbers, or identity information.
  • The institution is blocked, the routing number isn’t for a United States bank, or the bank account is already linked to the profile.
  • The selected NinjaTrader account is an IRA.
  • A tokenized-account relink uses a different persistent bank account.

Error Messages

MessageResponseTrigger
"Only one active ACH application is allowed."200 (in errorText)An active application already exists for the NinjaTrader account.
"Wrong parameters"200 (in errorText)dormanAccountName doesn’t match the account identified by dormanAccountId.
"IRA Accounts are not allowed to setup ACH."200 (in errorText)dormanAccountId identifies an IRA.
"Institution details must be provided for Instant Auth."200 (in errorText)Plaid doesn’t provide an institution name and financialInstitutionName is absent.
"Unable to find Plaid account associated with this item."200 (in errorText)accountId isn’t present in Plaid’s account data for the exchanged token.
"No ACH numbers found for this account."200 (in errorText)Plaid doesn’t return ACH account and routing numbers for accountId.
"Unable to retrieve identity information for this account."200 (in errorText)Plaid doesn’t return account-owner identity data.
"Institution can't be linked via compliance regulation, please try with a different institution."200 (in errorText)The selected institution is blocked.
"Only USA banks are allowed to link via ACH."200 (in errorText)Plaid returns an international routing number.
"This bank account is already linked to this profile."200 (in errorText)The same persistent bank account is already active for this profile and NinjaTrader account.
"Your bank connection needs to be restored. Please relink your account using the same bank."200 (in errorText)A tokenized-account relink selects a different persistent bank account.
"Something went wrong, try again. If it keeps happening, choose another funding method."200 (in errorText)An unexpected error occurs while linking.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
accountTypeenumRequired
BrokerageCash, CD, Checking, Educational, EmployeeRetirementAccount401k, HealthSavingsAccount, Individual, IndividualRetirementAccount, JointTenantsWithRightsOfSurvivorship, MoneyMarket, Other, RothIRA, Savings
accountNumberstringRequired<=64 characters
dormanAccountIdlongRequired
Dorman Account
dormanAccountNamestringRequired<=64 characters
accountIdstringRequired<=8192 characters
publicTokenstringRequired<=8192 characters
financialInstitutionNamestringOptional<=64 characters
routingNumberstringOptional<=64 characters

Response

AchApplicationResponse
errorTextstringOptional<=8192 characters

Non-empty if the request failed

achApplicationIdlongOptional