I am aware of the relationship between the attributes amount, surcharge and foreignExchangeFeeTransaction.
It is stated in the documentation for amount:
The amount of the transaction, inclusive of all fees you assess for the transaction, including currency conversion fees. If the originator is populating the surcharge or foreignExchangeFeeTransaction field, they must be included in the amount field.
Regardless as to all of that, the issue I reported still stands, namely that the Sandbox API currently does not support 3 fraction digits. It only supports 2 fraction digits.
Next, after further research into the matter, I came to understand that for Visa to be accepting a static amount of fraction digits would be deceiving, as that should be currency dependent. Currencies define their own minor digits. For example, the smallest currency denomination for USD is cents, 100 cents make up 1 dollar, so USD as a currency can have at most 2 minor digits.
Other currencies, such as Iranian Rial, IRR do not have any minor digits, so to send an amount of 1.5 in such cases would be nonsensical.
As such, I believe that the documentation needs to be updated on part of the attributes: amount, surcharge and foreignExchangeFeeTransaction that the amount of fractional digits depend on the currency. Also, since it pertains to currencies, the correct terminology should be 'minor digits' as opposed to 'fractional digits'.