diff --git a/lib/register.js b/lib/register.js
index <HASH>..<HASH> 100644
--- a/lib/register.js
+++ b/lib/register.js
@@ -135,12 +135,18 @@ function register(req, res) {
   // Handle incoming POST requests from an API-like clients (something like
   // Angular / React / REST).
   if (req.method === 'POST' && accepts === 'json') {
-    application.createAccount(req.body, function(err, account) {
-      if (err) {
-        return res.status(400).json({ error: err.userMessage || err.message });
+    helpers.validateAccount(req.body, config, function(errors) {
+      if (errors) {
+        return res.status(400).json({ error: errors[0].message });
       }
 
-      return res.json(account);
+      application.createAccount(req.body, function(err, account) {
+        if (err) {
+          return res.status(400).json({ error: err.userMessage || err.message });
+        }
+
+        return res.json(account);
+      });
     });
 
   // Handle incoming POST requests from an browser-like clients (something like
Modifying our API for `/register` to handle field validation.

This means that if you've defined custom, required fields -- they'll be asserted
during POST requests to the registration API.

This would typically happen from something like an Angular.js or React.js client
creating a new account on a website.