diff --git a/src/Model/Project.php b/src/Model/Project.php
index <HASH>..<HASH> 100644
--- a/src/Model/Project.php
+++ b/src/Model/Project.php
@@ -104,7 +104,10 @@ class Project extends Resource
      */
     public function addDomain($name, $wildcard = false, array $ssl = [])
     {
-        $body = ['name' => $name, 'wildcard' => $wildcard, 'ssl' => $ssl];
+        $body = ['name' => $name, 'wildcard' => $wildcard];
+        if (!empty($ssl)) {
+            $body['ssl'] = $ssl;
+        }
 
         return Domain::create($body, $this->getUri() . '/domains', $this->client);
     }
diff --git a/src/Model/Resource.php b/src/Model/Resource.php
index <HASH>..<HASH> 100644
--- a/src/Model/Resource.php
+++ b/src/Model/Resource.php
@@ -126,7 +126,7 @@ class Resource implements \ArrayAccess
             throw new \InvalidArgumentException($message);
         }
 
-        $request = $client->createRequest('post', $collectionUrl, ['body' => $body]);
+        $request = $client->createRequest('post', $collectionUrl, ['json' => $body]);
         $response = self::send($request, $client);
         $data = (array) $response->json();
         $data['_full'] = true;
Fix - 'body' on create needs to be JSON; the API cannot cope with empty arrays