Integrations
Q2 integration for financial spreading
How a finished SpreadSpace spread serves a lender on Q2: an export map in its codes, file and API handoffs, and Q2 Innovation Studio for the digital channel.
Q2 provides the digital banking platform many banks and credit unions put in front of their customers, with commercial credit pricing through PrecisionLender, embedded finance through Helix, and loan origination and servicing for non-bank lenders through Symphonix. Its Innovation Studio lets partners and the institutions themselves build into the Q2 digital banking channel. A lender on Q2 that reviews borrowers in SpreadSpace needs the finished spread in its origination system and, where it chooses, the borrower’s document requests and reviewed figures in the digital channel.
This guide covers that handoff as it works today. SpreadSpace names every account in the receiving system’s terms through a per-workspace export map, hands the finished spread over as a file, through the API when the analyst finalizes, or inside an embedded workspace, and Q2 receives it through the paths Q2 documents, the Innovation Studio among them. There is no Q2-built connector, and none of the routes needs one.
Where a spread lands on Q2
Q2’s digital banking platform is the channel, not the credit file. A bank on Q2 originates commercial loans in its loan origination system, prices the relationship in PrecisionLender and shows the customer the result in Q2. Q2 Innovation Studio is the documented way outside software reaches that channel: an SDK and a partner program through which institutions and fintechs extend the platform, with more than a thousand external developers and hundreds of institutions building on it by Q2’s own count. For non-bank lenders, Q2’s Symphonix handles origination, servicing and collections directly.
A spread finished in SpreadSpace lands in the origination system, in the accounts its templates expect, and the reviewed figures reach PrecisionLender or Symphonix through the imports those products provide. The export map below names every SpreadSpace account in the terms the receiving system expects.
What SpreadSpace hands to Q2
Four things leave SpreadSpace. The first is the extracted document: every line a tax return, financial statement or bank statement prints, each with the page and the boxed region it was read from. The second is the mapped statement: the profit and loss statement and the balance sheet placed on the workspace’s chart of accounts, with each account’s figure per period and the arithmetic that walks the printed lines to the printed totals. The third is the finalized spread: the attribute snapshot an analyst approved, with its figures, periods and source document references, frozen at a version number. The fourth is the credit memo as a PDF.
Each has a file form and an API form. One document exports as CSV or JSON on its own, and a set of documents on one loan bundles in the background as CSV, JSON or, for bank statements, XLSX. The loan’s spread comes out as two Excel workbooks, one of statements and one of tables, with the rows a figure is derived from indented under it. The finalized figures are read from the loan’s attributes endpoint and the mapped statements from the borrower’s mapping endpoints. Q2 receives whichever form its import takes.
Exports in the API documentation
Name every account in Q2’s terms
The chart of accounts is the workspace’s own. Its accounts carry SpreadSpace ids such as pl.opex.rent and bs.current_assets.cash, and Q2 holds the same accounts under its own codes and names. The export map is the translation. In Settings, open Chart of accounts and then Export map, choose Q2 as the system, and give each account the code and the name Q2 uses for it. The map is saved once per workspace and applies to every loan, and the system is recorded as q2 on everything it codes.
| SpreadSpace account | Account id | Code and name in Q2 |
|---|---|---|
| Revenue | pl.revenue.sales | 4000 Revenue |
| Cost of goods sold | pl.cogs.purchases | 5000 Cost of revenue |
| Officer compensation | pl.opex.officer | 6050 Officer pay |
| Interest expense | pl.interest | 7000 Interest |
| Cash | bs.current_assets.cash | 1000 Cash |
| Accounts payable | bs.current_liabilities.accounts_payable | 2000 Trade payables |
| Notes payable, long term | bs.longterm_liabilities.notes_loans_payable | 2500 Long-term notes |
From then on every mapped statement carries the codes. Each account in the mapping’s tree answers with its external code and label beside its figure per period, the payload names the system, and the accounts the map codes that the statement does not use are listed, so nothing posts blind. A map can also be saved through the API, up to 1,000 entries and the whole map each time, and a save that crosses another is refused rather than merged. After any save, each mapping reads as stale until it has been prepared again with the new codes, and a webhook announces the fresh one.
Statement mapping and the export map in the API documentation
Three routes into Q2
The first route is a file. An analyst downloads a document’s export or a bundle from the document list, a job requests the two workbooks, and the files are loaded through Q2’s import or attached to the loan. It needs no engineering and suits a team that files a few spreads a day.
The second route is the API. When an analyst finalizes a spread, SpreadSpace sends a spread.finalized event to your endpoint, signed with a shared secret, naming the loan and the snapshot. Your service reads the snapshot from the loan’s attributes endpoint and the mapped statements from the borrower’s mapping endpoints, with Q2’s codes already on every account, and posts them into Q2 through the path Q2 documents. SDKs for TypeScript, Python and C# wrap the calls, and the event carries the snapshot id, so a handler that records the ids it has posted stays idempotent under a retry.
The third route is the embedded workspace. Your application asks SpreadSpace for a single-use signed URL and seats the spread in an iframe beside the Q2 record, so an analyst opens the source documents without leaving the loan, and no token crosses the parent frame. The figures still finalize into the same snapshot and reach Q2 by either route above.
Webhooks in the API documentation
Q2’s side of the handoff
Q2’s documented path into the digital channel is the Innovation Studio. A lender that wants the borrower to upload statements or see the review’s result inside Q2 builds that surface there, with SpreadSpace’s API behind it, and the spread’s figures still go to the origination system by the routes above. Symphonix and PrecisionLender take outside data through their own imports and APIs, arranged with Q2 for the institution’s environment.
On the API route your service receives the finalize event, reads the snapshot and the mapped statements with the receiving system’s codes on every account, and posts them there. On the file route the analyst attaches the statements workbook or the CSV bundle to the credit file. The embedded workspace, a signed iframe your application seats beside the record, keeps the source documents in reach in either case.
Set up the handoff
Create an API key with the scopes the route needs: extractions read and export for the files and the mapped statements, spreads read for the snapshot, chart of accounts write to save the map from code, webhooks write to register the endpoint and embed write for the iframe. Save the export map for Q2. Register the webhook endpoint, send the test event and verify its signature. Then run the whole loop on a test key against the sandbox loan, whose sample spread finalizes on request, before the first live loan.
SpreadSpace ships no connector written by Q2, and no step above depends on one. The file, the API payload and the embedded frame are SpreadSpace’s side of the handoff. Q2’s side is its documented import, its API or its services team, and the section above names the public pages that describe it. A lender that wants the two sides joined for it can ask sales.
API keys and scopes in the documentation
Sample documents and the sandbox loan in the documentation
Integrating financial spreading with a loan origination system