From fondo-pack
Provides TypeScript patterns to parse Fondo CSV exports with Zod, integrate QuickBooks Online API for trial balance, and Gusto API for payroll data in internal tools.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin fondo-packThis skill is limited to using the following tools:
Patterns for consuming Fondo financial data in your internal tools. Since Fondo is a managed platform without a public API, integration happens through CSV exports, QuickBooks Online sync, and payroll provider APIs (Gusto, Rippling).
Guides local workflows for Fondo financial data: export CSVs/PDFs, parse transactions in TypeScript, calculate burn rates and R&D spend for dashboards.
Generates QuickBooks Online financial reports including Profit & Loss, Balance Sheet, Accounts Receivable Aging, Accounts Payable Aging, General Ledger. Covers report parameters, date ranges, column customization, and MSP analysis like client profitability.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Share bugs, ideas, or general feedback.
Patterns for consuming Fondo financial data in your internal tools. Since Fondo is a managed platform without a public API, integration happens through CSV exports, QuickBooks Online sync, and payroll provider APIs (Gusto, Rippling).
// Gusto API — access payroll data that Fondo also ingests
// https://docs.gusto.com/embedded-payroll/reference
const GUSTO_BASE = 'https://api.gusto-demo.com'; // or api.gusto.com for production
async function getPayrollData(companyId: string, accessToken: string) {
const res = await fetch(`${GUSTO_BASE}/v1/companies/${companyId}/payrolls`, {
headers: { 'Authorization': `Bearer ${accessToken}` },
});
const payrolls = await res.json();
return payrolls.map((p: any) => ({
period: `${p.pay_period.start_date} to ${p.pay_period.end_date}`,
grossPay: p.totals.gross_pay,
taxes: p.totals.employer_taxes,
netPay: p.totals.net_pay,
employeeCount: p.employee_compensations.length,
}));
}
// QuickBooks Online API — mirrors what Fondo syncs
// https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities
const QBO_BASE = 'https://quickbooks.api.intuit.com/v3/company';
async function getTrialBalance(realmId: string, accessToken: string) {
const res = await fetch(
`${QBO_BASE}/${realmId}/reports/TrialBalance?start_date=2025-01-01&end_date=2025-03-31`,
{ headers: { 'Authorization': `Bearer ${accessToken}`, 'Accept': 'application/json' } },
);
return res.json();
}
import { z } from 'zod';
const FondoTransactionSchema = z.object({
date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
description: z.string(),
amount: z.number(),
category: z.string(),
account: z.string(),
isRnD: z.boolean(),
});
type FondoTransaction = z.infer<typeof FondoTransactionSchema>;
Apply patterns in fondo-core-workflow-a for monthly close workflows.