In one of the prior posts I showed you how customer pools can be used for identifying and writing-off small customer balances. (Please see the following two screenshots).
If you are trying to write-off a customer with a negative balance you might receive the following error message that interrupts the write-off process.
The underlying reason for this error is the following Accounts Receivable parameter which ensures a corresponding tax correction posting for the transactions that are written off.
Note that the error message does not pop up if the “separate sales tax” parameter is not activated. Deactivating this parameter is, however, not an option unless you want to pay more tax than necessary and generate wrong sales tax postings.
Please note that you might also encounter the error message shown above in situations where everything seems on first sight ok. Example:
In those cases the underlying reason for the error are usually credit transactions that are included in the total (overall positive) customer balance.
A first option to get the issue fixed is making the following code adjustments in the CustWriteOff class.
Result: Once the code adjustment is implemented, the negative customer balance can be written off.
Please note that Dynamics AX generates the write off transactions including the corresponding tax correction as exemplified in the next screen-print.
Also the small customer balance that includes a credit transaction can be written off.
Please note that Dynamics AX summarizes the different transactions included in the total balance and generates the corresponding tax adjustment transactions. If different tax rates have been used for posting the original transactions, several tax adjustment lines will be created.
If your management does not like to implement a code adjustment and/or if you are working with older Dynamics AX versions that do not have the collection functionalities available, you can alternatively follow the next steps to write off small customer transactions.
Step 3: Select the transactions that need to be written off
Note: Selecting a range of small transaction amounts requires specifying a SQL statement similar to the one exemplified in the previous screen-print. For additional details, please see e.g. this site.
The second approach illustrated here does not refer to small customer balances but instead to individual customer transactions that fall within the $-amount range specified in the SQL statement.
Step 4: Change method of payment
To ensure that the small customer transactions are posted against the correct ledger account, it is wise setting up a new method of payment that is linked to a “depreciation account”; in my example main account no. 618170. Once this method has been setup, all customer transactions that shall be cleansed need to be changed to this method.
Step 5: Select the correct sales tax group/item sales tax group
The last step before posting the journal requires ensuring that the correct sales tax groups and item sales tax groups are selected. Otherwise no tax correction will be posted.
This post deals with the question how small (penny) differences on customer accounts can be avoided that arise when customers pay short.
Please note that the following descriptions and illustrations do only apply in Dynamics AX environments that do not make use of the automatic Accounts Receivable settlement functionality. That is, in systems that do not have the Accounts Receivable parameter “automatic settlement” activated.
Let’s have a look at the issue of small (penny) differences on customer accounts and how they can arise. The next screenshot shows you a customer transaction that was generated when a free-text invoice for a total amount of 5000 $ was posted.
Once the invoice becomes due, the customer pays 4995 $; that is, the customer pays 5$ short. The customer payment is recorded in a customer payment journal by entering the payment amount of 4995$ and marking the invoice that is paid. Please see the next two screenshots for details.
Note that you can reduce the settlement amount highlighted in the previous screenshot from 5000 $ to 4995 $. If you don’t, you will get the following message once you close the settlement form:
After posting the customer payment, the customer transaction form shows the following result:
What you can identify from the previous screenshot is that a small value balance of 5$ remains open. If you do not want to chase your customers for those small (“penny”) differences, the question arises what you can do with those small open customer balances and how they can be avoided altogether?
Cleansing small value customer balances
In order to “clean” small value customer balances you can setup a customer pool and write off the small balance amounts. The next screenshots illustrate you how this can be achieved in a standard Dynamics AX environment.
Step 2: Run the periodic Accounts Receivable “customer aging snapshot“ job
Avoiding small value customer balances altogether
To avoid small value customer balances altogether you can make use of the full settlement functionality that is available for Dynamics AX companies operating in Germany, Austria and Switzerland. To make this feature available in your country environment, simply open the CustOpenTrans form and either delete all country codes in the CountryRegionCodes field or add your country code there.
The next example illustrates the outcome of this system modification.
Example: For the same customer account used previously, a second free-text invoice for a total amount of 6000 $ is recorded. This time, the customer pays 10$ short. As previously, the customer payment is recorded in a customer payment journal as follows:
Once the settlement window is opened you can identify a new check box “full settlement”, which I selected. The result of this selection is that Dynamics AX considers the 10$ underpayment as cash discount and posts the underpayment correspondingly by referring to the automatic posting accounts setup in General Ledger.
If you double check the customer transactions form you can identify the 10$ cash discount posted. What you can also identify from this form is that no balance remains on the customer account from this transaction.
Final remark: Please note that the full settlement functionality can also be made available for vendor transactions simply by modifying the VendOpenTrans form as illustrated above for the CustOpenTrans form.