Error message when you try to post an invoice for a purchase order in Microsoft Dynamics AX: "Voucher [voucher number] does not balance"


Microsoft Business Solutions-Axapta 3.0 is now part of Microsoft Dynamics AX 3.0. All references to Microsoft Business Solutions-Axapta and Microsoft Axapta pertain to Microsoft Dynamics AX.

Symptoms


When you try to post an invoice for a purchase order that has a penny difference of 0.10 in Microsoft Dynamics AX, you receive an error message that resembles one of the following:
Error message 1
Voucher '<voucher number>' does not balance. The difference is X.XX USD.
Error message 2
Info Posting
Voucher <voucher number>, date <date>, account <account number>, amount currency <amount currency used on the journal>, amount MST <amount of base currency>, alternative amount 0.00, currency <currency>, text Purchase invoice <invoice number>

Warning Posting the transactions on voucher <voucher number> do not balance as per <date>. (Company currency: 0.10 - secondary currency: 0.00)



Error Posting
Posting has been cancelled.

Error Posting
Operation cancelled

Cause


This problem occurs because Microsoft Dynamics AX has not been set up to handle rounding problems that may occur because of foreign currency exchange or general rounding problems. In this example, the maximum penny difference parameter is set to less than the difference of 0.10, which is indicated at the end of the error message. For example, the maximum penny difference parameter is set to 0.05.

Resolution


To resolve this problem, change the maximum penny difference parameter to a higher amount to allow for the posting. To do this, follow these steps:
  1. Click General ledger, expand Setup, click Parameter, click the Ledger tab, and then type a higher amount than the difference in the journal in the Maximum penny difference field. For example, you can type 0.20.

    Note If you are using secondary currency, type the same amount in the Maximum penny-rounding in secondary currency field.
  2. Click General ledger, expand Setup, expand Posting, and then click System accounts.
  3. Make sure that account numbers are entered for the "Penny difference in default currency" posting type and for the "Maximum penny rounding in secondary currency" posting type if you are using secondary currency.

More Information


Steps to reproduce the problem

  1. Set the maximum penny difference parameter to 0.05.

  2. Set the exchange rate with various decimals. For example, the exchange rate can be 113.7759978155.
  3. Enter a purchase order that has 50 lines in foreign currency with an exchange rate of more than four decimals.
  4. Click the Setup tab, and then enter a different exchange rate. For example, change the exchange rate from 113.7759978155 to 113.6751165517.
  5. Post an invoice for the purchase order.