Troubleshooting a TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given
After updating to WHMCS 8.4.0, installations using the Stripe Payment Gateway may experience the following
TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given, called in /whmcs/modules/gateways/stripe.php
This error occurs because a transaction that exists in your Stripe account references a settlement currency that is not configured in WHMCS.
Apply the 8.4.1 Maintenance Release via the Utilities > Update WHMCS page.
A hotfix has been created for 8.4.0 only to correct this behavior:
Adding your Stripe account's settlement currency to WHMCS will resolve the error.
To do this:
1. Log in to the WHMCS Admin Area and go to Billing > Gateway Log.
2. Use the Search/Filter tab to search for Stripe transactions that occured between 31st August 2021 (the date on which this problem began) and the current date. For example:
3. Review the debugging data from the search results for the
currency values. For example:
fee_details => 0 => amount => 49 application => currency => eur description => Stripe processing fees type => stripe_fee
A single log entry contains more than one currency value. Make certain that you review all of them.
4. Compare the currencies in the Gateway Log entries to the currencies at Configuration > System Settings > Currencies.
5. Use interface to add the extra currencies that you identified in Step 4.
This example adds the
6. When you are finished entering the currency's details, click Add Currency
After you add the Stripe settlement currency to WHMCS, the daily automation tasks will run at the next scheduled time.