FeelConnect▍
ProductsDocsPricingChangelog
Sign inGet API keys
FeelConnect▍

The developer-first financial data platform.

All systems operational

Products

Open banking APIBank data APITransaction enrichmentFinancial data APIPricing

Developers

DocumentationAPI explorerInstitution directoryDashboardGet API keys

Company

HomePlaid alternativeChangelogfeels.moneySign in

Legal

PrivacyTermsSecurityData processing
© 2026 FeelConnect. All rights reserved./v1 · FC-Version 2026-07-01
  1. FeelConnect
  2. Institutions
  3. Import from file
IM

// file import · any institution

Import statements from any institution

Import from file is in the institution catalog as inst_manual_import. This page shows how it routes, what each connector in that chain can read, and the exact calls that start a connection.

institution_id
inst_manual_import
type
bank
countries
US
auth
File upload
mfa
Not expected
catalog status
healthy

Retail and commercial banks. Checking, savings, card, and loan accounts with transaction history. Link takes a CSV, OFX, or QFX statement upload and turns it into normalized accounts and transactions. No multi-factor step is expected in the normal flow, though a connector may still challenge.

// what you can read

Products available for Import from file.

Support is a property of the connector that serves the connection, not of the institution alone — so the honest answer is a matrix, not a badge.

Rows are this institution’s routing chain in order. Balances, transactions, assets, and recurring streams are available from every connector, because the last two are computed by FeelConnect from the first two. The rest exist only where the connector implements them.
ConnectorBalancesTransactionsRecurringAssets
Manual importself-serveAlways on. The user uploads a CSV, OFX, or QFX statement inside Link.

At connect time the registry walks this chain and uses the first connector whose credentials are present in the deployment. Connecting Import from file to real data therefore requires the relevant provider credentials to be configured — without them the connection falls through to the sandbox, which serves realistic simulated data and never contacts Import from file. Test keys resolve to the sandbox regardless.

// Connecting Import from file for real

FeelConnect does not hold bank connections of its own. Every institution in the catalog carries an ordered chain of connectors, and live traffic goes to the first one whose credentials are present in the deployment you are calling.

Some connectors an operator can switch on alone in minutes — GoCardless Bank Account Data (UK and EU banks, free self-signup under their PSD2 licence), Coinbase, Kraken, PayPal, public-address crypto wallets, and CSV / OFX / QFX import. Others need a signed business relationship before they will serve production data, including Plaid, MX, Finicity, Akoya, and Stripe Financial Connections. Where an institution has no enabled connector, a live call returns provider_error rather than pretending.

The sandbox is the exception and it is always on: test keys resolve to the simulated network regardless of credentials, so the full integration is buildable on day one. See going live for the provider-by-provider breakdown.

// how to connect it

Two calls and one modal.

Passing institution_id opens Link directly on Import from file instead of the picker — useful when your own UI already asked which bank.

import { FeelConnect } from "@feelconnect/node";
const fc = new FeelConnect({
apiKey: process.env.FEELCONNECT_SECRET_KEY!,
baseUrl: "https://connect.feels.money/v1",
});
// Pin the flow to Import from file: Link opens straight on its auth step
// instead of the institution picker.
const { link_token } = await fc.link.createToken({
client_name: "Your app",
user: { client_user_id: "user-123" },
products: ["balances", "transactions", "recurring"],
institution_id: "inst_manual_import",
});

The browser receives only the link_token, which expires in thirty minutes. Link runs the institution’s auth step, any MFA challenge, account selection, and the consent screen, then hands back a public_token. Exchange it once on your server with fc.link.exchangeToken and store the resulting access_token encrypted. Full walkthrough in the quickstart.

// in the api

Import from file as the API returns it.

The response below is generated from this institution's row, so it is the shape and the values a real call gets back.

# Look the institution up by id.
curl https://connect.feels.money/v1/institutions/get_by_id \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{ "institution_id": "inst_manual_import" }'

logo_url is a path on this origin rather than a third-party CDN, so rendering the mark never tells anyone else which institution your user is looking at. primary_color and monogram are the fallback tile for clients that would rather not load an image at all. Field by field in the institutions reference.

In the sandbox this institution connects today. Link shows a credential form; user_good / pass_good succeeds, user_mfa / pass_good adds a challenge whose code is 1234, and user_locked produces an item error. Either way the item comes back with 24 months of deterministic history — enough to build and demo the whole integration before any provider agreement exists. Sandbox reference.

// related

Institutions that route the same way.

Same category or same market — useful when you are checking coverage rather than one name.

  • Chase logoChaseUS
  • Bank of America logoBank of AmericaUS
  • Wells Fargo logoWells FargoUS
  • Capital One logoCapital OneUS
  • Citi logoCitiUS
  • USAA logoUSAAUS
  • American Express National Bank logoAmerican Express National BankUS
  • PNC Bank logoPNC BankUS
  • U.S. Bank logoU.S. BankUS
  • Truist logoTruistUS
  • TD Bank logoTD BankUS
  • Chime logoChimeUS

// keep reading

Where to go next.

  • All institutionsThe full catalog, grouped by type and country.
  • QuickstartKeys to synced transactions in about ten minutes.
  • Link referenceThe modal, update mode, and the postMessage protocol.
  • Going liveWhich providers are self-serve and which need an agreement.
  • PricingRequests, AI requests, connected users, and rate limits.
  • Bank data APIWhat you read once the connection exists.