Guides & Tutorials8.4 Update TroubleshootingTroubleshooting a TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given

Troubleshooting a TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given

Symptom

After updating to WHMCS 8.4.0, installations using the Stripe Payment Gateway may experience the following TypeError error:

TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given, called in /whmcs/modules/gateways/stripe.php

Cause

This error occurs because a transaction that exists in your Stripe account references a settlement currency that is not configured in WHMCS.

Solution

Apply the 8.4.1 Maintenance Release via the Utilities > Update WHMCS page.

Hotfix

Workaround

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:

WHMCS - Gateway Transaction Log

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 EUR currency:

WHMCS - Currencies

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.