Skip to main content

Overview

An external account is a customer’s account at another financial institution — checking, savings, credit card, or investment. To use one, you must verify ownership. Synctera has partnered with Plaid and Finicity to verify ownership and retrieve balance and transaction information. Verifying an external account unlocks capabilities such as balance checks before issuing ACH debits (to reduce overdrafts) and account-owner validation. You can originate ACH credits without verifying the owner, but ACH debits require the customer to have verified that they own the external account. Key characteristics:
  • Ownership-verified — accounts are linked through Plaid Link or Finicity Connect, which confirm the customer controls the account.
  • Vendor-backed — link through PLAID or FINICITY; each has slightly different flows.
  • Actionable — once added, you can list transactions and fetch balances (except for micro-deposit links).
  • Manageable — accounts can be listed, viewed, updated (for manual accounts), synced, and deleted.
If you use another provider such as MX, you can create external accounts directly by posting to the /v0/external_accounts API. Synctera confirms that customers validate ownership of the external account as part of the launch process.

Prerequisites

This guide assumes you have: You should also be familiar with: Throughout, provide customer_id for personal customers or business_id for business customers. If you have not created a customer yet, do so first via the Customer API.
Plaid vs Finicity. Both provide similar services; the main difference is account linking. Plaid Link requires you to integrate Plaid’s SDKs directly. Finicity Connect is a web interface hosted by Finicity where users enter their account credentials. Note that micro-deposits are only supported by Plaid.

Verification steps (Plaid)

1

Request a link token and launch Plaid Link

A link token is the first step to verifying an external account; it grants access to Plaid Link, the UI where customers provide their bank details. Integrate Plaid Link (Android, iOS, WebView, React Native, web), or use our test page to try calls before integrating.Request a link token with Create Link Token:
The type of link token determines what kind of account can be verified:
Use the link_token to launch Plaid Link. When the customer confirms their account, Plaid sends an onSuccess callback with account metadata and a public_token — the input for the next step. (On the test page, enter the link_token, click Link Account, and the public_token appears at the top.)
2

Request an access token

The access token holds the details Plaid retrieved and lets you manage the account through Synctera. Create one with Access Token. For all link token types except MICRO_DEPOSIT, Plaid’s success response includes vendor_public_token and vendor_institution_id, which must be included here.
The response returns the vendor_access_token; verification is complete. For the micro-deposit variant, see Micro-deposits flow.
3

Add the verified external accounts

Persist the vendor_access_token and add the accounts the customer selected with Add External Accounts. Include:
  • customer_id or business_id — the customer associated with these accounts.
  • customer_typePERSONAL or BUSINESS.
  • vendorPLAID for this flow.
  • vendor_access_token — from the previous step.
  • vendor_account_ids — the vendor account IDs the customer chose to link (Plaid account_ids).
  • verify_owner — whether to verify account-owner info against Synctera records. Not supported for business customers or the micro-deposit flow.
The response lists both added and failed accounts, so check which succeeded:
You can also retrieve all linked accounts with List External Accounts.

Micro-deposits flow

Micro-deposits verify a depository account by depositing $0.01 whose transaction description contains a code the customer must confirm. This flow assumes you have already created a MICRO_DEPOSIT link token and launched Plaid Link (choosing Manual, or Link With Account Numbers), entered the account information, and received a public_token.
1

Request an access token

Create an access token as usual, but because institution information is not returned in the micro-deposit flow, set vendor_institution_id to "-":
The response returns the vendor_access_token. Wait up to 48 hours for the micro-deposit to arrive (or use the test data to proceed immediately).
2

Create a second link token

Create another link token, this time including the vendor_access_token. This secondary token lets the customer enter the code from the micro-deposit’s transaction description via Plaid Link.
Launch Plaid Link with this token and prompt the customer to submit the 3-letter code from the micro-deposit description.
3

Add the verified account

Once the code is submitted, verification is complete. Add the account as in the standard Add the verified external accounts step.

Update mode

Update mode lets you re-authenticate a disconnected account or link additional accounts at the same bank. Create a new link token that includes both vendor_institution_id and vendor_access_token:
Launch Plaid Link with the returned token: already-linked accounts appear in the list, and the customer can add or remove accounts. After submitting, you receive a new access token — use it to persist the changes with Sync Vendor Accounts.

Verification steps (Finicity)

1

Request a Connect URL from Finicity

The Connect URL opens Finicity’s hosted web interface where customers link their accounts. Request it with Create Link Token:
Finicity supports DEPOSITORY, CREDIT, and INVESTMENT link tokens (no micro-deposits).
Save the vendor customer ID for later — it is the customerId query parameter in the URL (here, 6003202401).
2

Link the accounts

Load the returned URL so the customer can search for their financial institution, provide credentials, and link their accounts.
3

Add the external accounts

Persist the linked accounts with Sync External Accounts. Include:
  • customer_id or business_id — the customer associated with these accounts.
  • customer_typePERSONAL or BUSINESS.
  • vendorFINICITY for this flow.
  • vendor_customer_id — the customer ID returned by the vendor.
  • verify_owner — not supported for business customers.
All accounts selected in Finicity Connect are added as verified external accounts. Re-run the call after linking or unlinking accounts to add or remove them.
The Finicity flow only supports adding accounts through Sync External Accounts, not through Add External Accounts.

Operations

Once an account is linked and added, you can list transactions and fetch balances. These operations are not available for micro-deposit links, since Plaid does not allow Auth on micro-deposits.

List transactions

Retrieve transactions for an external account with List Transactions. start_date is inclusive and end_date is exclusive — for all transactions on 2022-01-01, use start_date=2022-01-01&end_date=2022-01-02.

Get balance

Fetch an account balance by external_account_id. The response reports available and current balances in cents (1000 = $10.00), the ISO 4217 currency, and the balance limit.

Account management

List external accounts

View all external accounts, optionally filtered by customer_id or business_id, with List External Accounts:

View a specific external account

Fetch a single account by ID with Get External Account:

Sync vendor accounts

After running Plaid Link in update mode, persist the changes (adds the newly linked accounts and deletes the unlinked ones) with Sync Vendor Accounts. Owner-identity verification is not supported for business customers — omit verify_owner or set it to false.
The response contains added_accounts, deleted_accounts, and failed_accounts.
Deleting an account from Synctera does not unlink it from Plaid. To fully unlink, follow this section before deleting.
Create a link token in update mode (include vendor_institution_id), launch Plaid Link, uncheck the accounts to unlink, and click Continue. The unlinked accounts can then be deleted from Synctera. If you linked new accounts, persist them with Sync Vendor Accounts.

Delete an external account

Delete an account from Synctera with Delete External Account. If it is still linked at Plaid, you can add it back.

Create an external account manually

If you verify account ownership outside Synctera’s API, create the external account manually with Add an External Account:

Update an external account

Update details of a manually created account with Update External Account. Do not use this for accounts whose details came directly from a vendor.

Troubleshooting

Common errors when using the External Accounts API:

Best practices

  • Verify before debiting — ACH debits require a verified external account; only ACH credits can be originated without owner verification.
  • Check balances first — call the balance endpoint before ACH debits to reduce the chance of overdrafts (not available for micro-deposit links).
  • Handle failed accounts — always inspect failed_accounts in add/sync responses rather than assuming every account linked.
  • Unlink before deleting — deleting in Synctera does not unlink at Plaid; follow the unlink flow first.
  • Use update mode to re-auth — resolve ITEM_LOGIN_REQUIRED by re-running Plaid Link in update mode instead of recreating the account.

Create a Personal Customer

Create the customer an external account belongs to.

Create a Business Customer

Link external accounts to a business customer.

Sandbox Test Cases

Test data for micro-deposit and linking scenarios.

API reference