Shared CCBill and Epoch handlers for all your sites. Retries deduplicated, signatures checked, every payload logged. Installs in an afternoon.
Webhook Hub is a set of PHP handlers you install on your own server that receive payment notifications from CCBill and Epoch, including postbacks and DataPlus, for any number of membership sites. Each notification is signature-verified, deduplicated against retries, written to one clean ledger table and logged in full. Sold by A2 Digital as a one-time download with optional updates.
Billers retry when they don't get a fast 200. Hub answers instantly, records once, and ignores the retry, so a member never gets two months for one payment.
A handler that errors quietly loses renewals and cancels. Hub logs every payload before it does anything else, so nothing disappears and you can replay.
Stop maintaining a half-working copy per site. One shared handler set, a per-site shim, one ledger with a site column.
Copy the shared handler directory to your server and point each site's biller notification URL at its shim. Works alongside your existing membership database.
Per-site biller credentials and signature secrets go in one config file. Hub verifies every incoming notification against them.
Signups, renewals, cancels, chargebacks and refunds land in one table with site, subscription, event and timestamp. Duplicates are marked, not stored twice.
Your existing grant/revoke code reads the ledger instead of parsing raw postbacks. The raw payload stays in the log if you ever need it.
One row per real event, with the biller's own IDs preserved. When support asks what happened to a subscription, the answer is one query, not a dig through email.
Prices in USD. Requires PHP 8 and MySQL or MariaDB. The ledger schema is generic; adapting your membership grant/revoke code to read from it is your side of the install, and the guide shows the pattern.
CCBill (approval postbacks and DataPlus webhooks) and Epoch (postbacks and DataPlus). Both share the same ledger and the same dedupe logic. Other billers can be added as handlers; ask.
The handlers are independent of your CMS. They write to a ledger table; your membership logic reads from it. The guide shows how to wire grant and revoke from the ledger. If your system expects to parse raw postbacks itself, the raw payload is still logged.
Each notification is keyed on the biller's own transaction or event ID. The first one is recorded; any retry with the same key is logged, marked duplicate and acknowledged without touching the ledger.
It is logged in full, rejected, and never written to the ledger. You can see every rejection and why.
No. It runs entirely on your server under your control. We never see your traffic or your biller credentials.
Changes to biller formats and APIs, new event types, and fixes. It does not include hands-on support for your site code; email support covers the handlers themselves.
One afternoon to install. Years of not thinking about it again.
Get Webhook Hub