Обмен json-ом между PHP-скриптами на разных серверах
Надо передавать массив или же принимать сырые данные - $HTTP_RAW_POST_DATA или php://input
Думаю, проблема в том, что ты явно не указываешь в каком поле передавать данные. Попробуй следующую конструкцию:curl_setopt($curl, CURLOPT_POSTFIELDS, array(
    'apikey' => $api_key,
    'data' => $json_data,
));
Также можешь попробовать указать сразу целиком файл для передачи.Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу. Тип файла также может быть указан с помощью формата ';type=mimetype', следующим за именем файла.
Original: www.php.net/manual/ru/function.curl-setopt.php