AUTOMATION & APIAvailable now · Webhooks

The moment it happens,your endpoint knows

Nightly exports leave your other systems living a day in the past. CashFish webhooks deliver a signed JSON payload to your endpoint as each financial event happens, so your warehouse, portal and internal tools stay current.

Engineering teamsData teamsCustomer portalsInternal tools

Scale plan · $44/mo billed yearly ($529) · 4-day free trial · Full refund guarantee

01A day behind, by design

The export ran at 2am.
It is four in the afternoon.

Batch exports were a reasonable answer when moving data was expensive. What they leave behind is a set of systems all describing a business that existed yesterday.

THE PORTAL
A customer pays, and the portal still says overdue
The payment landed at 9:14. The portal reads last night's file, so the customer sees a red balance and writes in to ask about it — support answers a question the database already knew.
paid 09:14 · portal 02:00
THE MEETING
Two dashboards, two answers, one question
One reads the export, the other reads a copy of the export made at a different hour. Half the meeting goes on deciding which number to believe instead of what to do about it.
which figure is current?
THE POLL
A script that asks every five minutes, all night
Polling for changes that mostly have not happened burns through rate limit and still finds out late. The event knew the instant it existed; nobody had told it where to go.
288 calls · 6 changes

Push beats poll for the same reason a doorbell beats checking the door — the thing that knows does the telling.

02What leaves CashFish

Seven events,
signed and delivered.

Subscribe an endpoint to the events it cares about. Each one arrives as a signed JSON payload within seconds of the record changing, with no export window and no polling loop in between.

One way out. Webhooks flow one way out of CashFish to endpoints you control — they never accept inbound writes to your account.

invoice.created & invoice.paiddelivered to your endpoint as signed JSON when the record changes
payment.receivedstreams into your warehouse or ledger pipeline without a batch export
expense.approvedlets your ERP or reimbursement flow react in the same minute
client.created & client.updatedkeeps external portals and internal tools aware of new records
Delivery log & replayevery attempt kept 30 days with request body, response code, and manual replay

Up to 10 endpoints per account, each with its own event subscription. Every attempt is kept for 30 days with the request body, the response code and a replay button beside it.

03What fires, and what it carries

Every event names itself,
and carries its own evidence.

Five of the seven event types, the fields inside each payload, and the system that usually listens for it. Nothing is inferred at your end — the record that changed is in the body.

invoice.createdOUT
  • invoice id + number
  • client
  • amount + due date
Your billing portal, before the email goes out
POST · signed JSON
invoice.paidOUT
  • invoice id
  • amount settled
  • paid timestamp
Portal, dashboard and follow-up, from one source
POST · signed JSON
payment.receivedOUT
  • payment id
  • client
  • amount + method
The warehouse table your revenue dashboard reads
POST · signed JSON
expense.approvedOUT
  • expense id
  • category
  • amount + approver
Your ERP or reimbursement run, the same minute
POST · signed JSON
client.createdOUT
  • client id
  • name
  • created timestamp
Internal tools that keep their own account list
POST · signed JSON

Each delivery is signed with a secret unique to your account, and each endpoint can be disabled or its secret rotated in developer settings at any time. Scoped API keys, used for the other direction, are revoked the same way — immediately, and independently of each other.

04What changes

Your systems stop
reading yesterday's file.

Three things that are different a week after the first endpoint goes live — with the numbers each one actually produces.

01
Your stack finds out first
An invoice.paid event reaches your endpoint in seconds, so the customer portal, the internal dashboard and the follow-up email all update from one source instead of three exports.
invoice.paidinv_2041 · Harbor & Co.200 OK
expense.approvedexp_0817 · travel200 OK
invoice.overdueinv_1994 · day 3retrying
02
A brief outage loses nothing
If your server answers with anything but a 2xx, CashFish retries up to 5 times with exponential backoff over 24 hours, then logs the event as undelivered so you can replay it by hand.
Delivered · 200Attempt 2 of 5 · retry in 5 minReplay window · 30 days
03
A warehouse that is never a week behind
Data teams consume the event stream directly into their pipeline, so revenue dashboards reflect this morning's activity rather than last Friday's export.
Events delivered this month, week by week
05Three steps to wired

Set it up once.
Then let it run.

An HTTPS URL, a list of event types and a signature check on your side. Most teams see their first delivery land inside ten minutes.

01
Register an endpoint
Add your HTTPS URL in developer settings. CashFish sends a verification ping straight away — answer with a 200 and the endpoint is live. You can register up to 10.
02
Choose events, copy your secret
Subscribe each endpoint to specific event types or all of them, then copy the signing secret unique to your account.
03
Verify before you trust
On every request, compute the HMAC-SHA256 of the raw body with your secret and compare it to the signature header. Match confirmed, process the payload.
Endpoint URL registered in developer settings + HMAC-SHA256 signing secret

Webhooks carry events outward only — nothing can be written into your account through them. Data is protected with 256-bit encryption under SOC 2 Type II, ISO 27001 and GDPR, and every connection can be reviewed or disconnected from the Connection Health panel in settings.

06Wires well with

One automation
is rarely the whole loop.

API Keys
Scoped, revocable credentials so your own code reads and writes the same records you see.
Zapier
One connection key, 1,000+ apps — orders, won deals and form entries arriving as finished records.
Stripe
Card takings and payouts read in as records from the Growth plan up.
Slack
Invoice and payment events posted into the channel your team already watches.

Duplicate detection runs across every source, so the same sale arriving through an automation and through an emailed receipt is recorded once. Accounting sync with QuickBooks and Xero is a one-way import into CashFish — your accounting file stays the ledger and is never written to. Shopify is in private beta and available by request only.

07The plan for this

Events out,
on Scale and Teams.

Scale is the plan on this page because webhooks and custom API access belong to it, alongside advanced forecasting, profitability by client and vendor, contract intelligence with renewal alerts and the revenue leakage dashboard.

Webhooks and custom API access are part of Scale and above; email and document extraction work from Starter.

$44/mo billed yearly ($529) · or $59/mo monthly

4-day free trial · Full refund guarantee

Your subscription begins after the 4-day trial unless canceled beforehand. Full refund guarantee within the first 4 days.

Compare all plans →

Give your systems a direct line. Available on Scale and Teams. Register an endpoint, subscribe to your first events, and retire the nightly export.

08Straight answers

What people ask
before they wire up Webhooks.

Current events include invoice.created, invoice.paid, invoice.overdue, payment.received, expense.approved, client.created, and client.updated. Each endpoint can take all events or a subset — many teams route invoice events to one system and expense events to another. New events are announced in the developer changelog.

Start managing money smart.

Start managing money smart.

4-day free trial · Cancel anytime · Full refund guarantee

© 2026 CashFish Inc. All rights reserved.

CashFish

CashFish

CashFish