For accountants + bookkeepers
Get the data, skip the dashboard.
What you actually pull
Nine endpoints, all CSV / JSON.
Financial ledger (income + expense)
Every money row for the month: date, income vs expense, category, amount, counterparty, asset, project — including the rows DirtFleet captures on its own from repairs, fuel fills, project-billed hours, and asset sales. Swap in ?format=qbo for the expenses-only, QuickBooks-shaped preset.
/api/export/financials?format=detail
Shop spend rollup
Date, asset, asset class, amount, labor hours, parts, notes, project code. Drop into QuickBooks / Sage as a journal entry batch.
/api/export/service-rollup
Per-asset hours / mileage logs
Date-range CSV of every meter reading. Pair with depreciation schedules.
/api/export/hours
Asset roster
Full fleet roster with VIN, serial, purchase cost, depreciation method. Anchor for the fixed-asset register.
/api/export/assets
Certified payroll (WH-347)
Davis-Bacon weekly worker × week × asset rollup for any project. Drops into the GC's WH-347 cover sheet.
/api/export/certified-payroll
OSHA Form 300 incidents
Recordable injuries / illnesses for the year. Drives the annual safety filing without spreadsheet archaeology.
/api/export/osha300
Full org JSON archive (GDPR-style)
Every member, asset, log, flag, work order, project, incident, certification. Year-end snapshot for the auditor.
/api/export/org-archive
Tools roster + book value + warranty
Twenty-two columns covering tools the same way the asset register covers vehicles: purchaseCost, purchaseDate, warrantyEndDate, supplier, lastServicedAt. Pass ?warrantyExpiringDays=60 for the next quarter's warranty-renewal worksheet, or ?includeBookValue=true on a single /tools/{id} for the straight-line depreciated value.
/api/v1/tools?format=csv
Per-project equipment usage (billing)
Rolls up everything that hit a single project: hours per asset, currently-allocated assets, tools tied to the project, repair cost spent on it, and — when the project has hourlyRate set — an estimated revenue line per asset and a project total. The data feed for the per-project billing CSV you push to QBO at month-end.
/api/v1/projects/{id}/equipment-usage
Handoff rhythm
What to pull when.
Weekly
- →If you're on Davis-Bacon work: pull /api/export/certified-payroll for each active project. WH-347 by Friday.
Monthly
- →Pull /api/export/financials?format=qbo for the prior month — that's the whole expense side, auto-captured plus manual, in one file. Use ?format=detail when you need the income rows too.
- →Pull /api/export/service-rollup for the prior month when you want the repair detail behind those expense lines — parts, labor hours, notes — rather than just the amounts.
- →Per active project, pull /api/v1/projects/{id}/equipment-usage for the billing rollup (hours by asset + currently-allocated equipment + estimated revenue when hourlyRate is set). This is what GoCs reconcile against your invoice line-items.
- →Spot-check the cost-per-hour leaderboard on the fleet manager's dashboard against year-prior. Anomalies become P&L narrative.
Quarterly
- →Pull /api/export/hours for the quarter. Reconcile against depreciation schedule + IFTA filings (if applicable).
- →Pull /api/v1/tools?warrantyExpiringDays=90&format=csv for the next quarter's warranty-renewal worksheet — review with the fleet manager before any auto-renewal hits the budget.
- →Review project-level P&L (hours × billable rate − repair spend) for any reportable margin shifts.
Year-end
- →Pull /api/export/osha300 + post the 300A summary Feb 1.
- →Pull /api/export/org-archive for the auditor's working copy.
- →Review fixed-asset register against asset roster CSV — flag any disposed-of-but-not-recorded units.
QuickBooks Online
OAuth scaffolded, GL mapping next.
Today: pull the financials ledger monthly. Repairs, fuel, project-billed hours and asset sales are already posted to it, so ?format=qbo gives you an expenses-only batch to import, and ?format=detailgives you income and expense together for the P&L. Categorize once per asset class and let QBO memorize the mapping. Roughly 5 minutes per month after the first cycle.
Next: live OAuth + chart-of-accounts mapping is not shipped — lib/integrations/quickbooksis the env contract and token exchange, no live call fires yet. The ledger already carries the sync columns the push will write, so it activates with the first paying QBO customer's connection without a backfill.
Curious?
Pull the exports during the trial.
Get an API key from the org admin during onboarding. The exports are stable; the format won't change without a deprecation window.