WHMCS module on GitHub
Find the installation package, source code, and release notes.
Requirements
- A currently supported WHMCS version running on PHP 8.2 or 8.3 with the cURL extension.
- A Billions Public API key stored on the WHMCS server.
- A public HTTPS WHMCS System URL, including its subdirectory if it has one.
- Outbound HTTPS access from WHMCS to
https://api.billions.worksand a publicly reachable gateway callback URL. - Invoice currencies accepted by your Billions merchant account. USD and EUR can be invoice currencies.
Install the module
- Download the latest module ZIP.
-
Extract it into the root directory of your WHMCS installation. The
package installs only these files:
- In WHMCS, open System Settings → Payment Gateways and activate Billions.works.
Configure the gateway
Do not change the instance ID after accepting payments. It contributes to
stable invoice identifiers and idempotency keys.
Set the WHMCS System URL to its public HTTPS address, including any
subdirectory. For example, if WHMCS runs at
https://billing.example.com/whmcs/, Billions sends notifications to:
How payment confirmation works
The gateway creates a Billions invoice when the customer selects Pay Now. Its stableorder_no and idempotencyKey prevent a new invoice from being
created whenever the WHMCS invoice page is reopened. If the WHMCS invoice
amount changes after its Billions invoice is created, the gateway refuses to
reuse the old payment link; an administrator must reconcile the payment.
When a notification arrives, the gateway retrieves the invoice from the
authenticated Billions API. It checks the order number, currency, amount,
selected payment gateway, and current WHMCS balance before applying a verified
completed payment. Other Billions statuses leave the WHMCS invoice unpaid.
The callback body and a customer’s return from checkout are not payment proof.
This verification flow uses the API key and does not require an HMAC secret.
Test the checkout and callback with a small payment before enabling the gateway
for customers. If a notification cannot be verified, the callback returns a
non-success HTTP response. Reconcile missed payments in the Billions dashboard.
Current limitations
- Subscriptions and automatic refunds are not implemented.
- The Public API does not currently provide a checkout return URL for this gateway. Customers should return to WHMCS manually to view the updated invoice.