Skip to main content
The BillManager integration adds:
  • a payment method (PawPayments) plugged into the standard BillManager payment flow,
  • a small CGI page for client‑initiated top‑ups that credit the client account on payment.

Download the plugin (.zip)

Ready-to-install pawpayments-billmgr-<version>.zip (includes install.sh).

View source on GitHub

Source, releases, and issue tracker.

File layout

After installation the files live under /usr/local/mgr5/:

Install

The release ships an install.sh that copies everything into place and reloads the BillManager core worker.
To install manually:
The new payment method appears as PawPayments under Settings → Payment methods.

Configure the payment method

Use the BillManager UI: Settings → Payment methods → Add → Module: PawPayments and fill the wizard. For headless deployments you can also seed the row directly:
You will still need to attach the new paymethod to your project (paymethod2project) and to a group (paymethod2group) for it to appear in the customer area.

Webhook URLs

Both endpoints must be reachable over HTTPS. If you front BillManager with Nginx, make sure /mancgi/ is proxied to the BillManager ihttpd (port 1500):

Lifecycle

Checkout. The CGI builds a Paw invoice via POST /api/v2/invoices, redirects to payment_url, and on webhook success calls payment.setpaid exactly once — payment status is checked first, so retries never re‑mark a payment as paid. Top‑up. The customer enters an amount on pawpaymentstopup.php; the CGI creates a Paw invoice and stores its order_id. The webhook handler verifies the signature, checks externalid for duplicates, and creates a BillManager payment row already marked as paid — BillManager itself converts that row into account credit on the next billing cycle event. Webhooks carrying a permanent_address_id are silently acknowledged with 200 OK.

Smoke test

Expected: Missing data with HTTP 200 — confirms the script loads and parses JSON. End‑to‑end check with a valid signature:
Expected: OK with HTTP 200.

Troubleshooting

Plugin debug messages are written to BillManager’s main log:

Uninstall

Existing payment history is preserved — BillManager keeps payment rows even after the method is removed.