Introducing SpreadSpace Markets, our new market research workspace. Starting at $129/mo per seat. Floor volume discounts

Integrations

Abrigo integration for financial spreading

How a finished SpreadSpace spread reaches Abrigo Sageworks: an export map in Abrigo’s codes, file and API handoffs on finalize, and an embedded workspace.

By Gabe Hack

Abrigo’s Sageworks lending and credit risk software runs a loan from application through credit analysis, approval and portfolio review, and its Credit Analysis module spreads financial statements and tax returns into ratios, global cash flow and scenarios. A lender that reviews borrowers in SpreadSpace needs the finished spread back in Sageworks, in the accounts its templates and its credit memo read.

This guide covers that handoff as it works today. SpreadSpace names every account in Abrigo’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 Sageworks receives it through the paths Abrigo documents. There is no Abrigo-built connector, and none of the routes needs one.

Where a spread lands in Sageworks

Sageworks Credit Analysis holds a borrower’s spreads as financial statement periods on the customer record, and its global cash flow, ratio and scenario tools read those periods. Abrigo moves data in and out of Sageworks through its API network. Its Salesforce integration sends new loan opportunities into Sageworks and refreshes Salesforce from it nightly or on request, and its LaserPro Connect integration sends approved loan, party and collateral data to Finastra for closing documents.

A spread finished in SpreadSpace lands in those same statement periods. The account names decide whether Sageworks’ templates read it correctly, so the export map below gives every SpreadSpace account its Sageworks name and code before anything moves.

Abrigo credit analysis

Abrigo on its Salesforce data integration

Abrigo and Finastra partner page

What SpreadSpace hands to Abrigo

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. Abrigo receives whichever form its import takes.

Exports in the API documentation

Loan workbooks in the API documentation

Spreads and attribute snapshots in the API documentation

Name every account in Abrigo’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 Abrigo 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 Abrigo as the system, and give each account the code and the name Abrigo uses for it. The map is saved once per workspace and applies to every loan, and the system is recorded as abrigo on everything it codes.

An export map for Abrigo, with illustrative codes
SpreadSpace accountAccount idCode and name in Abrigo
Revenuepl.revenue.sales4010 Sales revenue
Cost of goods soldpl.cogs.purchases5010 Purchases
Officer compensationpl.opex.officer6020 Officer compensation
Interest expensepl.interest7100 Interest expense
Inventorybs.current_assets.inventory1200 Inventory
Accounts payablebs.current_liabilities.accounts_payable2000 Accounts payable
Notes payable, long termbs.longterm_liabilities.notes_loans_payable2700 Notes payable

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

Chart of accounts mapping

Three routes into Abrigo

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 Abrigo’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 Abrigo’s codes already on every account, and posts them into Abrigo through the path Abrigo 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 Abrigo 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 Abrigo by either route above.

Webhooks in the API documentation

The embedded workspace in the documentation

The embedded workspace

Abrigo’s side of the handoff

Abrigo publishes no public API reference for Sageworks. Its integrations are delivered through its API network and its partner program, so the way a lender loads outside spreads into Sageworks is the way its Abrigo account team provides: a statement import, an integration built with Abrigo’s services, or a partner listing. The lender’s integration team or Abrigo’s services own that last step.

The API route from SpreadSpace ends where that import begins. The finalize event arrives, your service reads the snapshot and the mapped statements with Abrigo’s codes on every account, and hands them to the Sageworks import. The file route needs no engineering. The statements workbook or the CSV bundle is loaded or attached by the analyst, and each line already carries the Sageworks code the template expects.

Abrigo lending and credit risk software

Compare SpreadSpace and Abrigo

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 Abrigo. 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 Abrigo, and no step above depends on one. The file, the API payload and the embedded frame are SpreadSpace’s side of the handoff. Abrigo’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