Product update

Introducing bank data uploads from Plaid and Finicity

Turn supported Plaid and Finicity JSON files into reviewable statements, debt schedules and payroll documents. This guide covers file formats, source pages and retention.

By SpreadSpace7 min read

A borrower’s bank activity may arrive as a JSON response from Plaid or Finicity rather than a PDF statement. SpreadSpace reads supported transaction feeds directly and organizes them into monthly statements for review. The table below also covers supported asset, debt and payroll responses.

Export the transactions response from the provider under your own agreement with it, then upload the JSON file the way you would upload a statement. SpreadSpace does not connect to either provider. It reads the file you give it, records one bank statement for each account and calendar month in the feed, and treats those statements as bank statements everywhere else in the workspace.

This guide covers which file to export from each provider, what SpreadSpace does with it, what it refuses, and how long the file is kept.

What to export from each provider

SpreadSpace reads a transactions response exactly as the provider returns it. There is no need to reshape, flatten or convert the file first, and the file’s own shape tells SpreadSpace which provider it came from.

From Plaid, upload the JSON response body of /transactions/sync or /transactions/get. A sync response carries the accounts roster and the added transactions. A get response carries the accounts roster and the transactions list.

From Finicity, upload the transactions response: GET /aggregation/v3/customers/{customerId}/transactions for a customer, or the v4 transactions response for a single account. You can also merge Finicity’s accounts roster into the same file under an accounts key. That step is optional, and when the roster is there, account names and last-four digits come through to the statements.

One file can carry several accounts and several months.

What to upload
ProviderExportWhat SpreadSpace reads from it
Plaid/transactions/sync response bodyThe accounts roster and the added transactions
Plaid/transactions/get response bodyThe accounts roster and the transactions list
Plaid/asset_report/get response bodyEvery account’s transactions and daily balances; read as monthly statements
Plaid/liabilities/get response bodyMortgage, card and student loan terms; read as a debt schedule
Plaid/credit/payroll_income/get response bodyPaystubs and W-2s; read as paystub and W-2 documents
FinicityGET /aggregation/v3/customers/{customerId}/transactionsThe customer’s transactions, plus account names and last-four digits when the accounts roster is merged in under accounts
Finicityv4 per-account transactionsThe account’s transactions, plus its name and last-four digits when the accounts roster is merged in under accounts
FinicityVOA reportEach deposit account’s transactions and balances; read as monthly statements
FinicityCash flow business reportBusiness account transactions; read as monthly statements
FinicityCustomer accountsLoan, mortgage and card terms; read as a debt schedule
FinicityVOIE payroll reportEach pay period from the payroll provider; read as paystubs
FinicityVOIE paystub reportThe digitized pay statements; read as paystubs
FinicityPay statement reportThe digitized pay statements; read as paystubs

Upload the JSON file

Drag the .json file into the upload dialog, the same way you would add a PDF bank statement. The dialog already notes that Plaid or Finicity data may be submitted via JSON.

To send the file through the API, use the same upload flow you use for other documents and give the file the content type application/json. The API integration guide walks through the upload steps, and the full reference is in the API documentation.

There is no setting to turn on and nothing to tell SpreadSpace about which provider the file came from. The structure of the file identifies it.

Read the API integration guide

Open the SpreadSpace API documentation

What you get: a statement for each account and month

SpreadSpace creates one bank statement for each account and calendar month in the feed. Those statements appear on the bank board and feed rollups, counterparty analysis, spreads and spreadsheets in the same way as uploaded PDF statements.

Providers do not all write amounts the same way. In a Plaid feed a positive amount is money leaving the account, so SpreadSpace converts Plaid’s amounts to its own sign convention. Finicity deposit accounts already match that convention, and Finicity card and credit-line accounts are inverted.

Dates are handled per provider as well. Plaid dates are ISO dates. Finicity dates arrive as epoch seconds, which SpreadSpace reads in UTC, using the posted date first and the transaction date after it.

Pending transactions are left off the statement until they post, so a feed exported after they post carries them. Transactions the provider reports as removed are dropped. A file that covers several accounts produces a separate statement series for each account, and every transaction keeps the last four digits of its account.

When the feed carries a balance, that figure anchors the statement: Plaid’s current balance or the balance on the Finicity accounts roster, carried back through the posted rows, or Finicity’s daily balances when the per-account response carries them. A feed that carries no balance leaves the balance blank. SpreadSpace does not invent one.

A liabilities or accounts response becomes a debt schedule, with one row for each loan or card. A payroll income response becomes one paystub document for each pay period and one W-2 document for each W-2 statement it carries. A Finicity VOIE payroll report becomes one paystub document for each pay period it lists, and a VOIE paystub or pay statement report one for each pay statement it digitized.

Explore income verification

Review the rendered source and category hints

SpreadSpace renders a statement page from the feed so figures in a spread or on the bank board have a source to open and review.

The rendered page says plainly that it is a rendering of the feed and not a bank document. It carries no provider name or mark.

Both providers label transactions with their own categories. Plaid’s personal_finance_category and Finicity’s categorization are read as hints. Where a provider’s category is reliable, it is carried into SpreadSpace’s own counterparty categories, and where it is not, it is left aside. SpreadSpace’s own classification still runs on every row.

What is refused, and what to upload instead

SpreadSpace reads the responses listed above. Anything else is refused with a reason rather than read as a partial statement.

From either provider, that includes brokerage holdings; balance-only, identity and owner responses; the income and recurring-stream analyses a provider derives from the ledger, such as Plaid bank income, Finicity VOI and recurring-transaction responses; and ACH detail. A statements list is refused too: download the statement PDFs and upload those instead.

A VOE payroll report is refused as well, since it verifies employment and carries no pay statements. Upload the VOIE payroll report instead.

A report that is still generating is refused, and so are an empty feed and a file that is not valid JSON.

For everything else, export one of the responses described above and upload that file instead.

How long the file is kept

The feed JSON is deleted from storage, every stored copy of it, as soon as its statements are extracted and recorded. That is sooner than the seven-day rule for other uploads. The statements extracted from the feed stay, like any other statements in SpreadSpace.

Notes

SpreadSpace is not affiliated with, endorsed by or sponsored by Plaid Inc. or by Mastercard, the owner of Finicity. Plaid and Finicity are trademarks of their respective owners and are named here only to identify the file formats SpreadSpace reads.

Your agreement with the provider governs what you may export and upload; SpreadSpace reads the file you give it and nothing more.

Bring a feed to SpreadSpace

Export a transactions response from Plaid or Finicity, upload it beside the rest of the borrower’s documents, and review the monthly statements it produces on the bank board. To walk through the bank workflow with your own files, talk to the SpreadSpace team.

Back to blog