Hi,
If you want to only allow certain values in custom fields, you can create a custom field of the type dropdown or radio or checkbox.
If you want to allow everything except some values, there is no option.
If you want to add extra costs that can be done by developing a custom plugin. But I would recommend to try to use options or characteristics instead of custom fields which can already answer to some needs.
Regarding the payment approval, it depends on your payment method. In some cases, it's not possible, in others that might require to change one line of code.