fondo-webhooks-events

'Implement event-driven financial workflows using webhooks from Fondo-connected

4 Tools
fondo-pack Plugin
saas packs Category

Allowed Tools

ReadWriteEditBash(npm:*)

Provided by Plugin

fondo-pack

Claude Code skill pack for Fondo (18 skills)

saas packs v1.0.0
View Plugin

Installation

This skill is included in the fondo-pack plugin:

/plugin install fondo-pack@claude-code-plugins-plus

Click to copy

Instructions

Fondo Webhooks & Events

Overview

Fondo itself does not send webhooks. Instead, build event-driven workflows using webhooks from the same providers Fondo connects to: Stripe (revenue), Gusto (payroll), Plaid (bank transactions), and Mercury (banking).

Provider Webhooks

Provider Key Events Use Case
Stripe charge.succeeded, invoice.paid Revenue tracking, MRR alerts
Gusto payroll.processed, employee.created Payroll cost alerts, headcount
Plaid transactions.sync, item.error Expense monitoring
Mercury transaction.created Real-time spend tracking

Instructions

Stripe Revenue Webhook


import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_API_KEY!);

app.post('/webhooks/stripe', express.raw({ type: '*/*' }), (req, res) => {
  const sig = req.headers['stripe-signature'] as string;
  const event = stripe.webhooks.constructEvent(
    req.body, sig, process.env.STRIPE_WEBHOOK_SECRET!
  );

  switch (event.type) {
    case 'charge.succeeded':
      const amount = (event.data.object as Stripe.Charge).amount / 100;
      console.log(`Revenue: $${amount}`);
      // Update internal dashboard
      break;
    case 'invoice.paid':
      // MRR tracking
      break;
  }
  res.sendStatus(200);
});

Gusto Payroll Webhook


// Gusto sends webhooks when payroll is processed
app.post('/webhooks/gusto', express.json(), async (req, res) => {
  const { event_type, data } = req.body;

  if (event_type === 'payroll.processed') {
    const totalPayroll = data.totals.gross_pay;
    console.log(`Payroll processed: $${totalPayroll}`);
    // Alert if significantly different from budget
    if (totalPayroll > monthlyPayrollBudget * 1.1) {
      await sendAlert(`Payroll exceeded budget by ${((totalPayroll / monthlyPayrollBudget - 1) * 100).toFixed(0)}%`);
    }
  }
  res.sendStatus(200);
});

Resources

Next Steps

For performance optimization, see fondo-performance-tuning.

Ready to use fondo-pack?