KashFlow Accounting

From WHMCS Documentation

KashFlow is an accounting system primarily for UK small businesses but with customers worldwide and this addon module for WHMCS automates the entry of paid invoices into the KashFlow system.

Once installed & configured, the sync process runs as part of the daily cron and creates clients, invoices & transactions in KashFlow to mirror the invoice and transaction records in your WHMCS system.

Additional Requirement

The KashFlow API requires SOAP is compiled into your server's PHP build. To check if you have this, inside your WHMCS admin area navigate to Utilities > System > PHP Info & if you see no mention of SOAP then you will need to recompile.


Installation can be completed in 4 simple steps:

  1. Begin by downloading the latest version from https://marketplace.whmcs.com/product/2546
  2. Now unzip the files to a folder on your computer
  3. Next upload the "kashflow" folder from the zip file to the /modules/addons/ directory of WHMCS on your server
  4. To complete the process, navigate to Configuration () > System Settings > Addon Modules or, prior to WHMCS 8.0, Setup > Addon Modules within the WHMCS Admin Area. Click Activate next to the new KashFlow module


Kashflow API Settings
Kashflow IP Authorisation
Kashflow Module Configuration
  1. Login to the Kashflow control panel and then go to Settings > External Services > API Settings
  2. Tick the following options:
    1. Enabled
    2. Restrict Access to specific IP Addresses
    3. Separate API password
  3. Click the edit addresses list link and add your server's IP address to the Authorised IP Addresses list.
  4. Return to the previous screen and enter an API password. You will enter this into WHMCS shortly.
  5. Now, login to your WHMCS Administration Area
  6. To configure the module, begin by going to Configuration () > System Settings > Addon Modules or, prior to WHMCS 8.0, Setup > Addon Modules and Activate
  7. Here you will first be asked to enter your KashFlow Username & API Password configured in step 4. Once you have done this click Save Changes
  8. The API login will then be tested and if there's a problem with the username and/or password you entered an error will be displayed on screen.
  9. If the login was successful, you will see a new selection of fields appear for each of your active payment gateways in WHMCS
  10. This is where you need to choose the corresponding KashFlow payment method and bank account that transactions for each of the gateways in your WHMCS system should be assigned to when syncing (for more information on this refer to KashFlow's documentation)
  11. Once you've done that for each payment gateway you have in use, simply save the changes and you're now all set - the first KashFlow synchronisation will run as part of the next daily cron job execution

The Syncing Process

  • The sync process will run as part of the daily cron whilever the Enable box is checked - to disable again simply untick the box
  • The module will process a maximum of 200 invoices for each time the sync runs
  • Should any errors occur when sending data to KashFlow, they will be recorded in the Activity Log under the Utilities menu so you should review it periodically to check for any errors
  • The first few runs will attempt to sync all existing customers & paid invoices and so may take longer than normal


Both WHMCS and Kashflow support the use of multiple currencies, so if you wish to operate in more than one currency this section explains how the integration between WHMCS and Kashflow handles setups:

  • WHMCS connects to KashFlow and obtains the currencies configured within the users account.
  • WHMCS then matches the currency code configured in Kashflow with that configured in WHMCS and then when creating the client account in KashFlow sends the appropriate currency ID.
  • The currency code must match in order to work. Therefore you should configure all the same currencies in KashFlow that you have configured in WHMCS under Configuration () > System Settings > Currencies or, prior to WHMCS 8.0, Setup > Payments > Currencies.

Common Problems

KashFlow: Error Inserting Transaction xx

Seeing this error in the Activity Log when the Kashflow synchronisation runs means that the transaction data being sent does not meet Kashflow's requirements. Review the Billing > Transactions List and Billing > Invoices pages to ensure all transactions and invoices have a payment Gateway assigned and that Transactions have a Transaction ID entered.

Error Inserting Customer x: Customer Code is not unique

Seeing this error in the Activity Log when the Kashflow synchronisation runs means the client's email address has been changed and no longer matches the email address stored in Kashflow. To resolve this, update the client's email address in Kashflow to match WHMCS.