> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.spreadspace.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.spreadspace.app/_mcp/server.

# Sample documents

Test mode (`ss_test_…` keys) runs against an isolated sandbox that comes pre-seeded
with the document set below. Uploads through a test key return premade sample
extractions (no processing, no metered pages, no charge), so you can exercise your
integration end to end (upload → processing events → extraction retrieval) with
realistic files and known-correct output.

The PDFs here are the same documents the premade extractions were built from.
Upload them, or any file: test mode always answers with sample data, never a
parse of your upload.

To measure extraction on your own documents you need a live key: test mode
never runs the extraction pipeline, so it cannot show you how one of your
files reads. Ask [support@spreadspace.app](mailto:support@spreadspace.app) for an evaluation key.

## Bank statements

Ten monthly statements (January to October 2025) for the Greenfield sample business.
Their extractions carry statement balances and the full transaction ledger.

| Statement      | Download                                                                                        |
| -------------- | ----------------------------------------------------------------------------------------------- |
| January 2025   | [bank_greenfield_2025_01.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_01.pdf) |
| February 2025  | [bank_greenfield_2025_02.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_02.pdf) |
| March 2025     | [bank_greenfield_2025_03.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_03.pdf) |
| April 2025     | [bank_greenfield_2025_04.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_04.pdf) |
| May 2025       | [bank_greenfield_2025_05.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_05.pdf) |
| June 2025      | [bank_greenfield_2025_06.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_06.pdf) |
| July 2025      | [bank_greenfield_2025_07.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_07.pdf) |
| August 2025    | [bank_greenfield_2025_08.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_08.pdf) |
| September 2025 | [bank_greenfield_2025_09.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_09.pdf) |
| October 2025   | [bank_greenfield_2025_10.pdf](https://spreadspace.app/sandbox-docs/bank_greenfield_2025_10.pdf) |

## Tax returns

One return per major form family, tax year 2025. Their extractions carry the
full form-line detail.

The 1065 is the same Greenfield Construction LLC as the bank statements, and it
reconciles outward from there: its two Schedule K-1s go to Michael R Chen and
Daniel J Morrison at 50% each, and Chen's own Form 1040 is in the set. His
Schedule E picks up both K-1s he holds, so the 1120-S ties in too. The 1120 is
Pacific Rim Imports, Inc., Chen's employer: his W-2 and paystub come from it,
and its statement of stockholders' equity rolls its Schedule L and Schedule M-2.

| Return                      | Filer                          | Download                                                                      |
| --------------------------- | ------------------------------ | ----------------------------------------------------------------------------- |
| Form 1040 (individual)      | Michael R Chen                 | [tax_form_1040.pdf](https://spreadspace.app/sandbox-docs/tax_form_1040.pdf)   |
| Form 1065 (partnership)     | Greenfield Construction LLC    | [tax_form_1065.pdf](https://spreadspace.app/sandbox-docs/tax_form_1065.pdf)   |
| Form 1120 (C corporation)   | Pacific Rim Imports, Inc.      | [tax_form_1120.pdf](https://spreadspace.app/sandbox-docs/tax_form_1120.pdf)   |
| Form 1120-S (S corporation) | Meridian Health Partners, Inc. | [tax_form_1120s.pdf](https://spreadspace.app/sandbox-docs/tax_form_1120s.pdf) |

## SBA forms

The guarantor side of the Greenfield file, both as of December 31, 2025. The
personal financial statement is Michael R Chen's; the schedule of liabilities is
the company's. Both ship as live AcroForms, the way SBA publishes them.

| Form                                        | Applicant                   | Download                                                                                      |
| ------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------- |
| SBA Form 413 (personal financial statement) | Michael R Chen              | [pfs_sba_413.pdf](https://spreadspace.app/sandbox-docs/pfs_sba_413.pdf)                       |
| SBA Form 2202 (schedule of liabilities)     | Greenfield Construction LLC | [debt_schedule_sba_2202.pdf](https://spreadspace.app/sandbox-docs/debt_schedule_sba_2202.pdf) |

These two cross-foot against the returns above, so you can exercise a real
tie-out rather than two unrelated extractions:

* The 413's Section 1 income column is the 1040's income. Salary is line 1a,
  net investment income is lines 2b plus 3b, and "other income" is line 8, the
  Schedule C profit plus both K-1s. The four sum to line 9 total income. Real
  estate income is blank because that 1040's Schedule E has no rental property.
* The 413's accounts receivable is the 1040's refund: total payments less total
  tax.
* The two closely held positions in Section 3 are carrying values off the
  returns: 50% of the 1065's ending partners' capital, and 30% of the 1120-S's
  ending equity.
* The 413's contingent liability is the company bank debt on the 2202, which
  Chen guarantees personally.
* The 2202's rows foot to the 1065's Schedule L: the two term loans are the
  current and long-term notes payable, the revolving line and the affiliate note
  are their named Schedule L statements, and trade payables are line 15. The
  schedule totals to Schedule L's total liabilities less accrued payroll, which
  is not a note, mortgage, or payable and so is out of scope for the form.

## Payroll

Michael R Chen's wage documents from Pacific Rim Imports, Inc. for 2025: his
Form W-2 (Copy B) and his last paystub of the year.

| Document                            | Download                                                                        |
| ----------------------------------- | ------------------------------------------------------------------------------- |
| Form W-2, tax year 2025             | [tax_form_w2.pdf](https://spreadspace.app/sandbox-docs/tax_form_w2.pdf)         |
| Paystub, pay date December 31, 2025 | [paystub_2025_12.pdf](https://spreadspace.app/sandbox-docs/paystub_2025_12.pdf) |

The pair ties to the returns and to each other:

* The W-2's box 1 wages are the 1040's line 1a, its employee is the 1040's
  filer (the same last four of the Social Security number), and its employer's
  EIN last four is the 1120's.
* The paystub is the year's last, so its year-to-date column is the W-2: gross
  pay less the 401(k) deferral and the pre-tax medical premium is box 1, gross
  pay less the medical premium is box 5, and the federal, Social Security,
  Medicare and Colorado withholding rows are boxes 2, 4, 6 and 17. The 401(k)
  deferral is box 12 code D and the FAMLI premium is box 14.

## Financial statements

One statement per schema for the Pinnacle Manufacturing sample business, fiscal
year 2024. Their extractions carry the full line detail as printed: line items,
printed subtotals, and (for the agings) the per-counterparty bucket rows.

The set is one company's books and reconciles as such: the cash flow opens with
the profit and loss's net income and closes on the balance sheet's cash, and each
aging foots to the receivable or payable the balance sheet prints. The two aging
detail listings are the open items behind their summary, so footing the detail
reproduces the summary exactly.

| Statement                           | Download                                                                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Profit and loss                     | [financial_profit_loss.pdf](https://spreadspace.app/sandbox-docs/financial_profit_loss.pdf)                               |
| Balance sheet                       | [financial_balance_sheet.pdf](https://spreadspace.app/sandbox-docs/financial_balance_sheet.pdf)                           |
| Cash flow statement                 | [financial_cash_flow.pdf](https://spreadspace.app/sandbox-docs/financial_cash_flow.pdf)                                   |
| Accounts receivable aging (summary) | [financial_accounts_receivable.pdf](https://spreadspace.app/sandbox-docs/financial_accounts_receivable.pdf)               |
| Accounts receivable aging (detail)  | [financial_accounts_receivable_detail.pdf](https://spreadspace.app/sandbox-docs/financial_accounts_receivable_detail.pdf) |
| Accounts payable aging (summary)    | [financial_accounts_payable.pdf](https://spreadspace.app/sandbox-docs/financial_accounts_payable.pdf)                     |
| Accounts payable aging (detail)     | [financial_accounts_payable_detail.pdf](https://spreadspace.app/sandbox-docs/financial_accounts_payable_detail.pdf)       |

Greenfield Construction LLC, the company the bank statements, the Form 1065
and the lease note belong to, has its own two statements: a statement of income
and a balance sheet, each for December 31, 2025 and 2024. They tie to the 1065:
contract revenue is line 1a gross receipts (9,200,000), gross profit plus other
income is line 8 total income (2,990,000), depreciation is Form 4562 line 22
(172,000), and net income is Schedule M-1 line 1, net income per books
(984,000). Every balance sheet line is Schedule L's beginning and ending
balance, except the right-of-use assets and lease liabilities, which Schedule L
on the tax basis does not carry; the lease note's present values are the
balance sheet's operating and finance lease liabilities.

| Statement                        | Download                                                                                                              |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Statement of income (Greenfield) | [financial_greenfield_profit_loss.pdf](https://spreadspace.app/sandbox-docs/financial_greenfield_profit_loss.pdf)     |
| Balance sheet (Greenfield)       | [financial_greenfield_balance_sheet.pdf](https://spreadspace.app/sandbox-docs/financial_greenfield_balance_sheet.pdf) |

## Equity and comprehensive income

Pacific Rim Imports, Inc.'s statement of stockholders' equity for 2025 and
2024, and a statement of comprehensive income for Coralbend Marine Supply,
Inc., a standalone sample of its family: no other company in the set carries
other comprehensive income.

| Statement                         | Company                       | Download                                                                                                      |
| --------------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Statement of stockholders' equity | Pacific Rim Imports, Inc.     | [financial_equity_statement.pdf](https://spreadspace.app/sandbox-docs/financial_equity_statement.pdf)         |
| Statement of comprehensive income | Coralbend Marine Supply, Inc. | [financial_comprehensive_income.pdf](https://spreadspace.app/sandbox-docs/financial_comprehensive_income.pdf) |

The equity statement's 2025 roll-forward is the 1120's Schedule M-2: the
opening retained earnings is line 1, net income is line 2 (and Schedule M-1's
net income per books), the prior period adjustment is line 3, and the closing
balance is line 8. Every balance row is Schedule L at the beginning and end of
the year: common stock on line 22b, additional paid-in capital on line 23 and
retained earnings on line 25. The comprehensive income statement reconciles
within itself: the two other comprehensive income items add to the printed
total, and net income plus that total is comprehensive income, in both years.

## Notes to the financial statements

Greenfield Construction LLC's lease maturity ladder as of December 31, 2025,
one table from the notes to its financial statements: operating and finance
lease payments by year, the undiscounted total, imputed interest and the
present value of the lease liabilities. The present values, 317,000 operating
and 22,000 finance, are the balance sheet's lease liabilities.

| Table                 | Company                     | Download                                                                                            |
| --------------------- | --------------------------- | --------------------------------------------------------------------------------------------------- |
| Lease maturity ladder | Greenfield Construction LLC | [notes_lease_maturity.pdf](https://spreadspace.app/sandbox-docs/notes_lease_maturity.pdf)           |
| Debt maturity ladder  | Pacific Rim Imports, Inc.   | [financial_debt_maturities.pdf](https://spreadspace.app/sandbox-docs/financial_debt_maturities.pdf) |

Pacific Rim Imports, Inc.'s debt maturity ladder as of December 31, 2025 is
the long-term debt note from its financial statements: the principal due in
each of the next five years and the printed total. Its 2026 line is the
Form 1120's Schedule L line 17 ending (mortgages, notes and bonds payable in
less than one year), and the 2027 to 2030 lines add to the line 20 ending
(payable in one year or more), so the note ties to the return: the total is
the two lines together.

## Selecting a sample

In test mode the confirm call decides which seeded extraction an upload
returns. Send `sample_document` in the body of
`POST /api/documents/{job_id}/confirm-upload` (or of
`POST /api/documents/confirm-uploads`, where it applies to every job in the
batch) with one of the ids below. An id outside this list is refused with 400;
the field is ignored on live keys.

| Sample id                    | Document                                 |
| ---------------------------- | ---------------------------------------- |
| `bank-greenfield-2025-01`    | bank_greenfield_2025_01.pdf              |
| `bank-greenfield-2025-02`    | bank_greenfield_2025_02.pdf              |
| `bank-greenfield-2025-03`    | bank_greenfield_2025_03.pdf              |
| `bank-greenfield-2025-04`    | bank_greenfield_2025_04.pdf              |
| `bank-greenfield-2025-05`    | bank_greenfield_2025_05.pdf              |
| `bank-greenfield-2025-06`    | bank_greenfield_2025_06.pdf              |
| `bank-greenfield-2025-07`    | bank_greenfield_2025_07.pdf              |
| `bank-greenfield-2025-08`    | bank_greenfield_2025_08.pdf              |
| `bank-greenfield-2025-09`    | bank_greenfield_2025_09.pdf              |
| `bank-greenfield-2025-10`    | bank_greenfield_2025_10.pdf              |
| `tax-1040-2024`              | tax_form_1040.pdf                        |
| `tax-1065-2024`              | tax_form_1065.pdf                        |
| `tax-1120-2024`              | tax_form_1120.pdf                        |
| `tax-1120s-2024`             | tax_form_1120s.pdf                       |
| `fin-pnl-2025`               | financial_profit_loss.pdf                |
| `fin-balance-sheet-2025`     | financial_balance_sheet.pdf              |
| `fin-cash-flow-2025`         | financial_cash_flow\.pdf                 |
| `fin-ar-aging-2025`          | financial_accounts_receivable.pdf        |
| `fin-ar-detail-2025`         | financial_accounts_receivable_detail.pdf |
| `fin-ap-aging-2025`          | financial_accounts_payable.pdf           |
| `fin-ap-detail-2025`         | financial_accounts_payable_detail.pdf    |
| `pfs-413-2025`               | pfs_sba_413.pdf                          |
| `debt-schedule-2202-2025`    | debt_schedule_sba_2202.pdf               |
| `w2-2025`                    | tax_form_w2.pdf                          |
| `paystub-2025-12`            | paystub_2025_12.pdf                      |
| `equity-statement-2025`      | financial_equity_statement.pdf           |
| `comprehensive-income-2025`  | financial_comprehensive_income.pdf       |
| `notes-lease-maturity-2025`  | notes_lease_maturity.pdf                 |
| `supporting-table-debt-2025` | financial_debt_maturities.pdf            |
| `fin-greenfield-pnl-2025`    | financial_greenfield_profit_loss.pdf     |
| `fin-greenfield-bs-2025`     | financial_greenfield_balance_sheet.pdf   |

Without `sample_document`, the file name decides. Tax returns are picked by
form number in the name (`1040`, `1065`, `1120`, `1120s`; a K-1 resolves to
the 1065, and a name that says `tax` with no form number resolves to
`tax-1120s-2024`), the financial statements and agings by keyword (`balance`,
`profit`, `cash flow`, `receivable`, `payable`, with `detail` selecting the
detail listing), a name that says `greenfield` with `profit`, `income` or
`pnl` picks Greenfield's statement of income and with `balance` its balance
sheet, and the SBA forms by `413`, `pfs` or `personal financial` and by
`2202`, `debt schedule` or `schedule of liabilities`. A W-2 is picked
by `w2` or `w-2` in the name or by `wage and tax`; a paystub by `paystub`,
`pay stub`, `earnings statement` or `payroll`; the equity statement by
`equity`, `stockholders`, `shareholders` or `retained earnings`; and the
comprehensive income statement by `comprehensive` or `oci`; the lease
maturity ladder by `lease`; the debt maturity ladder by `maturit`,
`supporting table` or `notes table`. Every bank statement, whatever its name,
and any file the keywords do not place, falls back to
`bank-greenfield-2025-01`, so name the month you want explicitly with
`sample_document`.

## Resetting the sandbox

The sandbox is created and seeded with this set the first time you mint a test
key. To get back to a known-clean state between test runs, wipe and reseed it.
The reset needs the `sandbox:reset` scope (in the default scope set) and a
test-mode key:

```bash
curl -X POST https://api.spreadspace.app/api/sandbox/reset \
  -H "Authorization: Bearer ss_test_..."
```

The reset also removes the webhook endpoints registered with a test key, with
their signing secrets and delivery history, and ends the sandbox's embed
sessions. Register the endpoint again after a reset.