Skip to main content
2,200+ contractors in the research universe benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level
Operations

The API Is Not Enough for Finance Automation

Sam YangEx-CFO across trades, SaaS & services · $2.5B in total PE/banking transactions · Stanford MBA
Updated October 7, 2026·Originally published June 30, 2026·4 minute read
Share

Level data-layer playbook

Use an export, report or approved browser workflow when the API cannot provide a required field, historical period or reporting category

Sam Yang, Level

4 minute readOperations

Choose a route for one missing fact

For recurring booked entities with stable identifiers, a supported API is often the best starting point. For an exact native report definition, UI-only pending state or emailed export, another authorized source may be needed. Document the implemented connector gap rather than claim that the whole vendor lacks an API. Shopify, for example, exposes payout objects subject to permissions.

A rate limit calls for bounded retry, queued work, incremental refresh and caching where appropriate. Switching to a browser does not make the missing object appear or remove permissions. If a native report is chosen, verify the actual period and complete population. If a permitted replica is chosen, inspect entity, freshness and financial joins. Route choice and accounting acceptance remain separate decisions.

Name the missing fact, then choose the route

Missing answerTest before adding browser collectionSuitable next route if the test fails
Which posted transaction exists?Authorized API object, retained ID, complete paging and current versionCorrect the API query or permission; a screenshot does not repair a missing identifier
What is pending in the QBO bank-review queue?Whether the implemented connector actually includes that pending stateControlled native review with account and candidate identity retained
Which jobs have defensible costs?Whether invoice, time, payroll and material populations join at the same job grainCollect the specific missing cost report or relationship, rather than another revenue export
What does the native report mean?Report basis, dates, statuses and dimensions versus the connector projectionNative export with its definition preserved, followed by a comparison to eligible records
How much cash can fund inventory?Bank availability, settlement timing and nonoverlapping obligationsA dated cash-and-obligations bridge; an attribution dashboard answers a different question

These are method choices, not universal product-access claims. A browser helps when it exposes the required authorized native state. It loses when unstable rendering, incomplete rows or ambiguous account selection make that state unverifiable. An API wins for a supported, reproducible population; it still loses if the selected population is wrong for the financial question. The named software playbooks keep those choices specific to each source.

Financial evidence in practice

When should finance automation augment an API?

Augment an API when a required authorized fact is missing from its actual eligible object scope, history or report dimensions. Throttling usually calls for queues, retry and caching first. Browser access cannot restore history the source never retained.

Run the check

  1. Specify the financial fact and eligible object.
  2. Check plan, permissions, history, pagination and limits.
  3. Choose a native report, inbox delivery or permitted browser only for the verified gap.
  4. Reconcile the collected population before accepting the answer.

Fictional example: Complete job and export population

Four exported rows contain three of five expected jobs: 60% identity coverage. One retained job has no cost. Full-scope profit is withheld.

Invented teaching inputs; downloadable files store these dollar amounts in USD cents.

Inspect the expected output
{
  "fictional": true,
  "unit": "USD cents",
  "id": "complete-export",
  "rawRows": 4,
  "distinctRows": 3,
  "coveragePct": 60,
  "missing": [
    "D",
    "E"
  ],
  "costMissing": [
    "B"
  ],
  "completeProfitCents": null,
  "limitation": "This is teaching arithmetic from supplied invented inputs, not source authenticity, financial assurance or authority to post."
}
Reproduce this calculation

Download the code and input into one folder, then run:

node reproduce.mjs complete-export.input.json

The code checks declared units and identities and refuses unsupported inputs. No browser or customer account is used. Source authenticity and accounting approval require separate evidence.

Reviewed 2026-10-06. Level financial-control guidance, with visibly fictional teaching examples. The example shows a control boundary, not a measured customer outcome or industry benchmark.

Read this content revision history

Continue with the related financial decision →

Free benchmark review

See whether your books are benchmark-ready.

Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.

Apply the controls to the chosen browser route

Open the related financial check when the next question concerns that workflow. The Financial Systems Field Guide holds the named-system collection notes, pitfalls and bounded prompts.

Sources and method

Field Guide. This guide shows how to check whether the numbers are ready to use. The examples use made-up numbers, clearly labeled and available to download. They do not include private customer documents or measured customer results. Before using the method, check that your account has the required access and that your reports count the same things.

Share

Get the next one

Want next week's benchmark in your inbox?

One email a week. Real numbers from 2,200+ contractors in the research universe. No fluff. Unsubscribe anytime.

Sam Yang

About the author

Sam Yang

Founder & CEO

Founder of Level, the always-on finance team for contractors, service businesses, and ecommerce brands. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses, $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. The Level founding team's analysis of 2,200+ contractors ($13.25B in job revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.

LinkedIn

See whether your books are benchmark-ready.

Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.

2,200+ businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

No credit card. Start with a 15-min call. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.