wp_remote_post sends empty body

The following code worked source.
The 'Content-Type' => 'application/json' header was missing causing the problem

$url="myAPIURL HERE";
$username="apiuser";
$password = 'passwd';
$headers = array( 
     'Authorization' => 'Basic ' . base64_encode( "$username:$password" ), 
     'Content-Type' => 'application/json' 
);
$fields = array(
    'body' => json_encode(
        array(
         'email'     => '[email protected]',
         'name'      => 'Pixelbart',
         'password' => 'Pass#your!word'
        )
    ),
    'headers'     => $headers,
    'method'      => 'POST',
    'data_format' => 'body'
);

$response = wp_remote_post($url,$fields);

if ( is_wp_error( $response ) ) {
     $error_message = $response->get_error_message();
     echo "Something went wrong: $error_message";
} else {
     echo 'Response:<pre>';
     print_r( $response );
     echo '</pre>';
}