X_MONEY_NOT_DECIMAL
Means
a fromDecimal input that is not a plain decimal string
Typical cause
a number, null or undefined where a string was expected (a JSON body carrying 12.99), or a string with grouping separators, a currency symbol or exponent notation
Fix
fromDecimal('12.99', 'USD') — send the amount as a decimal string; for text a person typed, parseAmount(text, { currency, locale })