Using the required field validation in custom element types/plugins?
Custom field validation happens automatically for you when you pass your element into craft()-&gt;elements-&gt;saveElement(). That function will return true or false, largely depending on whether custom field validation passes.

See EntriesService::saveEntry() for an example.