The bug: Plugin versions before 2.1.1 stored the expected USDT amount as a 32 bit integer, which has a maximum of about 2147 USDT. Any invoice above that overflowed the limit and was stored at the maximum instead of its real value. When the customer paid in full, plugin treated the payment as more than expected and over credited the invoice. The excess shows up as client credit in WHMCS and can be spent on other invoices.
You must upgrade if you are accepting USDT payments via the Blockonomics WHMCS plugin.
You are affected if you have accepted USDT payments above 2147 USDT through our plugin.
How to check?
- Run this query against your WHMCS database, using phpMyAdmin or any MySQL client with access to it
SELECT id_order, value, bits, bits_payed FROM blockonomics_orders WHERE bits = 2147483647;
- Compare each one against the invoice's transactions and reverse any excess client credit. If you'd like any help, contact our support team.
How to update:
- Download v2.1.1 from the WHMCS Marketplace.
- Upload the modules folder over your existing installation, replacing the files.
- That's it. The database change runs by itself the first time the gateway settings page is opened or a customer reaches checkout. No other configuration is required.
- If the automatic change can't run (for example the database user has no ALTER permission), you'll see a line starting "Blockonomics: could not change bits/bits_payed" in logs. In that case run this SQL query once on your WHMCS database, using phpMyAdmin or any other MySQL client:
ALTER TABLE blockonomics_orders MODIFY bits BIGINT NOT NULL, MODIFY bits_payed BIGINT NOT NULL;
What's more in this release?
- "Convert To For Processing" is no longer cleared. Earlier versions removed this WHMCS setting each time the gateway settings page was opened. If you use it, set it once more after upgrading.
- USDT payment events are recorded in Gateway Log: when a customer's wallet sends a payment, and any failure to register it with Blockonomics, with the reason. If a USDT payment is ever missing from WHMCS, check this log and share the entries with us.
How to check logs:
- In your admin dashboard, go to Billing → Gateway Log, filter by gateway Blockonomics.
- Search for the transaction hash, or the invoice number, and you will see statements related to it.
This release is part of our commitment to making USDT payments as dependable as our BTC and BCH service. Both fixes came directly from merchant reports, and we'll keep listening and improving. If you run into anything, or have any feedback, reach out via our Support Portal.