Skip to main content
The Blesta integration ships as a single non-merchant payment gateway (PawPayments (Crypto)) that pays any Blesta invoice with cryptocurrency. Customers are redirected to the hosted PawPayments paywall to pick an asset and network; the invoice is reconciled automatically once the on-chain payment confirms and PawPayments delivers a signed webhook to Blesta’s gateway callback URL.

Download the plugin (.zip)

Ready-to-upload pawpayments-blesta-<version>.zip.

View source on GitHub

Source, releases, and issue tracker.

Install

Download pawpayments-blesta-<version>.zip from the GitHub Releases page and unzip it. The archive mirrors the Blesta install tree — one non-merchant gateway:
Drop the pawpayments folder into your Blesta root at components/gateways/nonmerchant/, then restore ownership:

Activate the gateway

  1. Settings → Payment Gateways → Available.
  2. Click Install next to PawPayments (Crypto).
  3. Fill the fields:
  4. Under Settings → Company → Currencies, enable the currencies you invoice in — the gateway supports the fiats listed in config.json.

Webhook URL

PawPayments sends notify_url on every invoice it creates, so manual webhook setup is not required. Blesta routes the callback to the gateway’s validate() method at:
The settings page prints the exact URL for your company. It must be reachable over HTTPS from the public internet — PawPayments requires notify_url to use the https scheme and refuses to deliver to private, loopback, or link-local hosts.

Lifecycle

Because the Paw order_id is used as the Blesta transaction_id, duplicate webhook deliveries and the browser return never double-pay an invoice. Webhooks carrying a permanent_address_id (not bound to a Blesta invoice) are silently acknowledged.

Status mapping

Smoke test (checkout)

The webhook body carries the Blesta invoice list in metadata.invoices (id=amount pairs joined by |) and the client ID in metadata.client_id:
Expected: HTTP 200, and invoice 101 transitions toward Paid once the transaction is applied. A wrong or missing signature returns HTTP 401. You can also replay the real webhook for an existing invoice with POST /api/v2/invoices/{order_id}/notify.

Troubleshooting

Gateway activity is logged under Settings → Company → Gateway Logs (or the per-gateway Logs tab).

Uninstall

Uninstall the gateway from Settings → Payment Gateways → Installed, then remove the files: