WorldPay
There are two modules for worldpay - one time invoices and FuturePay. For FuturePay, we use the more versatile Limited Agreements payment system. This offers the ultimate in flexibility and allows charges to be taken from the clients card whenever they are needed. So with this, once the user has setup a FuturePay Agreement, any invoice can be charged to their card at any time. This makes all invoice payments automated. There are however some steps involved in configuring it and we'll go through these below.
Setting up the gateway
You first need to activate the WorldPay and/or WorldPay FuturePay module(s) in Config > Payment Gateways and enter your details as requested.
You should set the callback url for payments in your WorldPay control panel to use the WP callback url that is sent with the payment request using <WPDISPLAY ITEM=MC_callback>
FuturePay Specific Items
If using FuturePay, in the Auth Password field, you'll need to enter the password that is setup to allow remote charges to be made. This is also referred to as the Invisible Auth Password and requires that Remote Admin is added to your WorldPay account which is a free addon.
Next, you need to go to Configuration > Client Custom Fields and setup a custom field with the name FuturePay ID. This should be an admin only field and will store the futurepay id needed to submit charges in the future after the agreement has been setup.
Finally, you need to setup a cron job to run the futurepay charges file which automatically submits the charge requests for all due invoices each day. This needs to be done the your Cron section of your control panel where the WHMCS cron should also be setup. The command you need to use is as follows:
php -q /home/username/public_html/whmcs/modules/gateways/callback/worldpayfuturepaycharges.php