What has worked well in the shipping modules I wrote is to use the error information provided by the API and inject the appropriate error messages into the checkout process.  I feel pretty strongly that clearing something the user has typed in without explaining why is not the best practice.