When creating an External Pricing Service is it possible to have default values in an arbitrary quantity field? What are the other settings that can be used on the field? Can suppressions be used? Can we show an error to the user?

Is it possible to have default values in an arbitrary quantity field?
 
Yes, this is possible. You can set default value via Settings:
{ 'id':'Height','label':'Height', 'Settings' : [{'Key':'default','Value':'0.00'}]}
 
What are the other settings that can be used on the field besides the default?
 
Default - The default value for the parameter.
    
Visible - If "false" then it will not appear on the product page, but it will be presented in item's options list.
    
Required - If "true" then Pressero will not allow to add the product to the cart without a value.
    
Suppression - Several rules can possibly be defined like parameterId=someValue and if parameter with key "parameterId" has value "someValue " then parameter with this suppression will be hidden.
 
For more detail on suppressions, we have an article that shows how it looks when using a Spreadsheet Method Price Engine. A spreadsheet method price engine is of course a different situation than an external pricing service, but this shows how the suppressions can work.

 Is there a way to show an error to the user from an external pricing service?
 
This is possible, Pressero will still need to do a call to your pricing service, but in the response you can define any custom error message you want.
 
For example, if you return: {"Error":"Invalid parameters","Price":0,"Weight":0.0,"WeightUnit":0,"Options":null,"Attributes":null}
 
Then on the site you will see: