How can we improve WHMCS?

Share, discuss and vote for what you would like to see added to WHMCS

Disable Payment Reminder Notifications on a Per Account Basis



The automated 'Payment Reminder Notification' is useful in most situations, however, for clients that have setup automated payments on the day that the invoice is due - it's a redundant reminder, and we've received a few requests to disable it.

Similar to how the "Don't Send Overdue Emails" option can be set on a per account basis, a similar "Don't Send Payment Reminders" checkbox in each client's profile would also be a huge help.

19 Comments

Login to post a comment.

Customer just made this request to me. It would be better is this was part of the programming to have a group where no invoice reminders are sent.
I also need this for a couple of clients that have expressly asked not to be sent reminders - they have automatic credit set up
Or just the option that whmcs doesn't send out reminders for payment to accounts that have active subscriptions.

This could be done, I'm shure off it
Yes this is bery much needed. Like why would you send out Customer Invoice, Invoice Payment Reminder if it will automaticly charge them later on?
I second this idea, our customers will find this useful too.
We need this feature!! :)
@Greg

There is some conditional language in the templates.
Now - I don't know how the "Credit Card Invoice" template is triggered, but our system seems to send out the "Invoice Created" template.
I use the following block as part of the template:

[co]
  • {if $invoice_payment_method eq "Automatic Credit Card Withdrawal"}Payment will be charged automatically on or after {$invoice_date_due} to your credit card on file with us.
  • To update or change the credit card details please contact us at 250-860-0572.{else}Your payment method is: {$invoice_payment_method}.

  • You can log in to your client area to view and pay the invoice at {$invoice_link}.{/if}
  • [/co]

    "Automatic Credit Card Withdrawal" is how we named our credit card gateway.
    Great suggestion, but only works if you only offer subscription services. I use WHMCS for way more then subscriptions, general web design invoices, maintenance work, web care plans and hosting, my clients have option to pay with whatever they choose (credit card, snailmail etc...) and for some, subscriptions work for them.
    ...update on this. So you can get it to work on only "specific" clients that you signed up with autopay. I did a work around leveraging client groups.
    I created a client group named "Automatic Withdrawal" and assigned it to those specific Autopay clients. Then used similar conditional language in the invoice/reminder templates starting with {if $client_group_name eq "Automatic Withdrawal"}. Hope this helps others while we wait for couple more years to get this solution implemented. - All the best.
    Of course, due to the limitation of only being able to assign (1) client group to client, this won't work if you already use a client group for your clients. (Here's the feature request for allowing a client to belong to multiple client groups = https://requests.whmcs.com/topic/add-client-to-multiple-client-groups ), make sure to head over there and give it a thumbs up too.
    These two features alone would provide huge functionality and improve automation ability.
    That's a great idea, @nwd. I don't currently use client groups so this may work for me, although I definitely agree that we should be able to assign clients to multiple groups. Not being able to makes them slightly useless, I would think. Thanks for the input!
    Hm. Just realized that this won't work after all. If I have clients that are on a PayPal subscription for their hosting and I put them in that group, then the emails will tell them that the payment will go through automatically for everything, including other things that do not have an associated PayPal subscription, such as domains or other random invoices.

    Back to the drawing board.
    Very True @Greg. It's for those cases where I, for example, have bundled domain, hosting, web care services all in one package, one recurring invoice,, so they won't get any other billing besides the subscription one. If I do need to send a very rare one-off, I will just remove them from the client group temporarily for that one to fire off correctly.
    Still be much better if this could be built in option of course, preferably a tick box for each service (so hosting = subscription, all else (domains etc...) get normal billing).
    Hooo boy. I figured it out but this is unacceptably complicated for such an essential aspect of customer service...
    1. Add a client group (in my case, Automatic Hosting Payments) and check the box saying to separate invoices.
    2. Add the following to your configuration.php file:


    [co]
  • // Smarty custom email based template policy:
    $smarty_security_policy = array(
    'mail' => array(
    'php_functions' => array(
    'strpos',
    'isset',
    'empty',
    'count',
    'sizeof',
    'in_array',
    'is_array',
    'time',
    'nl2br',
    'var_dump',
    ),
    ),
    );


  • [/co]
    3. The invoice items that you want this to apply to need some kind of common string. In my case, all my hosting plans have "Level" in the title.
    4. Add the following to the top of your email template and adjust the first two variables - the first is the string that's used in the names of the invoice items, the second is the name of the client group:


    [co]
  • {assign var = "search_term" value = "Level"}
    {assign var = "group_name" value = "Automatic Hosting Payments"}
    {assign var = "auto_pay_true" value = []}
    {foreach key = k item = v from = $invoice_items}
    {var_dump( strpos($v.description, $search_term) )}
    {if strpos($v.description, $search_term) === false}
    {$auto_pay_true[] = "false"}
    {else}
    {$auto_pay_true[] = "true"}
    {/if}
    {/foreach}
    {if ( $client_group_name eq $group_name ) and ( in_array( 'true', $auto_pay_true ) )}
    {assign var = "auto_pay" value = "true"}
    {else}
    {assign var = "auto_pay" value = "false"}
    {/if}


  • [/co]
    5. After that you can use


    [co]
  • {if $auto_pay eq 'true'}Do stuff.{/if}
  • [/co] in your email template to display something that should only be displayed if the client is BOTH in the group AND the invoice contains an item with your common string.
    Holy hell. Hope this helps someone. But I hope more that WHMCS adds some kind of core solution for this.
    Sorry, won't let me edit now -- realized you don't need to add [co]
  • var_dump
  • [/co] to the configuration file, only [co]
  • strpos
  • [/co] and the others, which are the default allowed PHP functions.
    A million +1s for this. In my personal ideal world it'd work like:

    - Global checkbox for "Disable invoice emails for subscriptions," where both the "new invoice" email and the reminders would be disabled if the client sets up automatic payments.

    - Would work for Stripe, PayPal, or any other gateway that allows auto payments.

    - The first invoice, as well as manually-emailed invoices, would still be sent.

    - Could be overridden on a per-client basis, in case there are people who do want to receive reminders.

    - Some kind of conditional language in the email templates saying "your invoice will be automatically paid on..." so that clients who do want reminders and who've set up auto payments aren't confused.

    I don't know how much of that is possible but if anyone knows how to accomplish at least the last one, please let me know. I keep getting people thinking they need to pay their invoice and it's a pain emailing everyone back to tell them that no, it'll be automatically paid...
    Agree, worst yet, you get folks pay it manually, then it is ALSO paid automatically on subscription date, then have to deal with communication and reimbursement and the headaches that come with it. I pay a ISP via Moon Clerk, and they provide an "Upcoming Payment" notification stating I will be charged in 3 days as part of a recurring plan you set up with "ISP". The recurring amount is "$xx.xx" . It should be that easy.
    So to add on to this, There are Multiple Domains on Each customer account. Those Multiple emails could be (On a per client basis) for renewals - imagine for a large customer account, customer getting alert mails constantly.

    So this feature should be also able to give the Manager a complete control to configure emails - Fo which Alerts etc. So Basically a Small Module can be made form where the email Alerts can be controlled, configured and Designed (Customized) for the organisation.
    Agree with Jesse. Need to be able to disable any sort of invoice email per customer. Be that Reminder, New Invoice or Paid.

    Having "per client automation controls" mirror the global ones would be good.
    This! Also for regular invoices.

    My clients all have PayPal subscriptions and they only want the recipe of payment, they don't want the invoice.