Webhook Hub · A2 Digital Products

Every biller notification, once, verified, recorded.

Shared CCBill and Epoch handlers for all your sites. Retries deduplicated, signatures checked, every payload logged. Installs in an afternoon.

webhook hub · ledger
Webhook Hub ledger: renewals, signups, cancels and chargebacks across twelve sites, three duplicate retries ignored, one bad signature rejected

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.

CCBill + EpochAny number of sitesDedupes retriesSignature verifiedFull payload logOne-time purchase
Why operators install it

The three problems it ends

No more duplicate credits

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.

No more silent misses

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.

One handler, all sites

Stop maintaining a half-working copy per site. One shared handler set, a per-site shim, one ledger with a site column.

How it works

Installed in an afternoon

1

Drop in the handlers

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.

2

Set the keys

Per-site biller credentials and signature secrets go in one config file. Hub verifies every incoming notification against them.

3

Watch the ledger fill

Signups, renewals, cancels, chargebacks and refunds land in one table with site, subscription, event and timestamp. Duplicates are marked, not stored twice.

4

Wire your membership logic

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.

What you get

Boring, in the best way

Ledger view

A ledger you can trust

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.

1 handler
for every site, every biller event type. One place to fix anything, ever.
0 double credits
Idempotency keyed on the biller's transaction ID. Retries are logged and ignored.
100% logged
Every payload written before processing. Replayable, auditable, searchable.
Pricing

Buy once. Install on your server.

Webhook Hub
$490one-time
Handler set, per-site shim pattern, ledger schema, install guide.
  • CCBill postback + DataPlus handlers
  • Epoch postback handlers
  • Signature verification per site
  • Deduplication on biller transaction ID
  • Ledger schema (SQL) + full payload log
  • Install walkthrough and sample config
  • 30 days email support
  • Not a managed service; no access to your server
Get Webhook Hub
Updates
$29/month
Optional. Biller API changes, new event types, fixes.
  • Handler updates as billers change
  • New event types
  • Email support
Ask about updates

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.

Subscription site operatorsMulti-site membership networksDevelopers maintaining biller integrations
Questions

What operators ask first

Which billers does it support?

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.

Will it work with my membership system?

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.

How does deduplication work?

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.

What if the biller sends something malformed or unsigned?

It is logged in full, rejected, and never written to the ledger. You can see every rejection and why.

Is this a hosted service?

No. It runs entirely on your server under your control. We never see your traffic or your biller credentials.

What does the updates subscription cover?

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.

Stop losing renewals to a flaky handler

One afternoon to install. Years of not thinking about it again.

Get Webhook Hub