Store plugins
Install, paste your private key and webhook secret, done. The customer picks a chain on a
hosted checkout page and the order completes from a signed webhook. No code.
Your store currency must be USD. BuxAPI prices invoices in USD and does no
currency conversion, so a store selling in euros would charge the euro figure as dollars. All
three plugins hide themselves at checkout on any other currency rather than take a payment for
the wrong amount.
WooCommerce
WordPress 6.0+, WooCommerce 7.0+
Download Install
- Plugins, Add New, Upload Plugin, choose the zip, activate.
- WooCommerce, Settings, Payments, BuxAPI.
- Paste your private key and webhook secret, enable, save.
Notes
- Verifies the key against the API as you save and names the wallet it connected to.
- Compatible with High-Performance Order Storage.
- Falls back to asking the API directly on the order-received page if a webhook never arrives.
- Size
- 39 kB
- SHA-256
- 0f29851d9cb58a3dda06e19c1117da4994cb92c4da6f0f4056d579139f208c77
PrestaShop
PrestaShop 1.7 and 8.x
Download Install
- Modules, Module Manager, Upload a module, choose the zip.
- Configure, then paste your private key and webhook secret.
- Save. The module checks the key immediately.
Notes
- Adds an "Awaiting crypto payment" order state on install, so a payment in progress does not display to the customer as a failure.
- The order is created before the customer leaves, so a closed tab after paying is still a reconcilable order.
- Size
- 41 kB
- SHA-256
- 63ca48363a9534616cf725849b3e6d55b98bf97ca6e452397d28bbc94a885c8c
Install
- Extensions, Installer, Upload, choose the zip.
- Extensions, choose Payments, find BuxAPI, install, then edit.
- Paste your private key and webhook secret, set the order statuses, enable.
Notes
- OpenCart 3.x uses an incompatible extension layout and is not supported. A 3.x port is separate work.
- Creates its own table mapping an invoice to an order, so a webhook resolves to exactly one order.
- Size
- 47 kB
- SHA-256
- 124af3223c01bcf5e9cfd9af8aab5d39cfeb8f915a06dece0eb4ad6c9c81cf34
Before you take a real payment
Put one payment through for the smallest amount the API allows, on a real store, and watch
the order move from awaiting payment to paid. That single test exercises the whole path:
invoice creation, the checkout page, the on-chain deposit, the webhook and its signature
check, and the order transition. Anything broken in that chain shows up in the one place it
matters, before a customer finds it.
Check that your webhook URL is reachable from outside. A staging site behind HTTP auth, an
IP allowlist, or a security plugin that blocks unknown POSTs will all accept the invoice and
then never confirm the order.
Writing your own
The plugins are GPL, so one that is close to what you need is a starting point rather than a
dead end. If you are integrating a platform these do not cover, the whole contract is four
steps: create an invoice, redirect to checkout_url, verify the
webhook signature, move the order. The two apps we run do exactly
that, and you can open either one to see the shape before you write anything.
POST /your/webhook
X-Buxapi-Event: invoice.paid
X-Buxapi-Delivery: 90218
X-Buxapi-Signature: t=1786012800,v1=7d3a...
signature = HMAC-SHA256(webhook_secret, "{t}.{raw body}")
Three things to get right, in every language: sign over the raw body, because
re-serialising parsed JSON changes the bytes; compare with a constant-time function, because
a short-circuiting comparison leaks how much of the signature was correct; and reject
timestamps older than a few minutes, because otherwise a captured delivery replays forever.
The webhook reference has the rest.
Something else
Magento, Shopify, OpenCart 3.x and custom carts are not covered yet. Tell us what you are on and we will say whether it
is on the list or quote you for it.