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.
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.
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
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.
| SpreadSpace account | Account id | Code and name in Abrigo |
|---|---|---|
| Revenue | pl.revenue.sales | 4010 Sales revenue |
| Cost of goods sold | pl.cogs.purchases | 5010 Purchases |
| Officer compensation | pl.opex.officer | 6020 Officer compensation |
| Interest expense | pl.interest | 7100 Interest expense |
| Inventory | bs.current_assets.inventory | 1200 Inventory |
| Accounts payable | bs.current_liabilities.accounts_payable | 2000 Accounts payable |
| Notes payable, long term | bs.longterm_liabilities.notes_loans_payable | 2700 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
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
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.
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