TRON - Error: Cannot send TRC-20 callback is not defined

When attempting to send TRC-20 tokens, you may encounter an error looking as follows or similar:

 {
    "statusCode": 403,
    "errorCode": "tron.trc20.tx.send.error",
    "message": "Cannot send TRC-20 transaction.",
    "cause": "callback is not defined"
  }

This error is usually related to a malformed payload where the amount has more decimals than a TRC-20 token supports.

Example request:

curl --location 'https://api.tatum.io/v3/tron/trc20/transaction' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {YOUR_API_KEY}' \
--data '{
    "to": "TLY7qkYdFaskWaWaMASdp6XJFqqvA18Bhz",
    "tokenAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
    "amount": "10.00448335", //This TRC-20 token supports 6 decimals while the amount has 8
    "feeLimit": 1000,
    "fromPrivateKey": "####"
}'

By checking the TokenAddress over the Tronscan Explorer, we can confirm that the token "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t" supports six (6) decimals, not eight (8).

After the decimals are corrected to match what the token supports, the transaction should be possible to execute.