422
payments.invalid_amountpaymentsRule R1Amount is zero, negative, or in a currency you have not enabled
amount.minor must be a positive integer in the currency's minor units — satang for THB, so 1,250.00 THB is 125000, not 1250. The currency must also be one your tenant has enabled.
Why the API refuses
WHEN CreatePayment is executed, THE SYSTEM SHALL reject it unless amount.minor is greater than 0 and amount.currency is in the tenant setting currencies.
What to do
- Send the minor-unit integer, never a decimal.
{"minor": 125000, "currency": "THB"}. - Never compute a minor amount in a float:
12.5 * 100is1249.9999999999998in IEEE-754 and truncates to a wrong amount. Multiply integers, or use your language's decimal type. - If the currency is the problem, enable it in the merchant dashboard under Settings → Currencies, or use one that is already enabled.
errors[0].fieldnames which half failed.