FinShare
Menu

API and embedding

Owner-approved QuickBooks reports, inside your own product.

Deal rooms, lending platforms and advisory tools use the same core as FinShare's own dashboard: create a request, send the owner to a hosted consent page, and receive tied-out reports by webhook. You never touch an Intuit token.

1 · Create a request

curl https://app.finshare.io/v1/requests \
  -H "Authorization: Bearer fl_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: deal-42-financials" \
  -d '{
    "items": [
      { "report_type": "profit_and_loss",
        "period": { "kind": "trailing_months", "months": 12 },
        "basis": "accrual", "options": { "summarize_by": "month" } },
      { "report_type": "balance_sheet", "period": { "kind": "as_of" } }
    ],
    "requester": { "name": "Dana Reyes", "email": "dana@harborpoint.example" },
    "owner": { "name": "Sam Ortiz", "email": "sam@business.example" },
    "access_days": 90,
    "external_ref": "deal-42",
    "return_url": "https://app.example.com/deals/42",
    "send_owner_email": false
  }'

2 · Send the owner to consent_url

The response includes a consent_url, shown once. The owner reviews, connects QuickBooks and approves on FinShare’s page, then gets a button back to your return_url.

3 · Receive report.ready

{
  "id": "evt_…",
  "type": "report.ready",
  "created_at": "2026-10-28T19:35:02Z",
  "data": {
    "request_id": "req_…",
    "external_ref": "deal-42",
    "report": { "files": { "xlsx": "…" } }
  }
}

Webhooks

Fourteen events across the request lifecycle.

Signed with Standard Webhooks. Delivery is at least once, with retries for about two to three days; dedupe on the webhook-id header.

Request

request.viewed

request.approved

request.declined

request.cancelled

Round

round.awaiting_approval

round.approved

round.declined

round.delivered

Report

report.ready

report.failed

Grant

grant.revoked

grant.expired

Connection

connection.needs_reconnect

connection.reconnected

Periods that move

Periods are relative to a period end: as of, trailing months, year to date, the last N fiscal years. Roll a request forward and every report moves with it.

Raw data when you need it

Download any report as Excel, CSV or JSON, or fetch the raw QuickBooks response behind it with the query, fetch time and a SHA-256 hash.

Connector mode

For trusted host apps: the owner connects once, then reports are pulled when they click in your product. Enabled per account; email us.

In the dashboard

Keys and webhook endpoints, managed by your team.

app.finshare.io/app/developers
FinShare's Developers page with API keys and webhook endpoints.

Build it into your product.

API access is included with every account. Create one, then make a key on the Developers page. Building FinShare into a platform? Ask us about volume pricing.