Да дело в общем-то не в Битрикс24, а в механизме работы интернета и функции http_build_query которая не умеет нормально работать с многомерными массивами.
Можно мучаться, пытаться делать двойное кодирование через http_build_query и т.п. а можно просто отправлять json и жить нормальной жизнью.
$queryData = [
'fields' => [
"TITLE" => "lid 1",
"NAME" => "name name",
'PHONE' => [
[
"VALUE" => "654654",
"VALUE_TYPE" => "WORK"
]
]
],
'params' => ["REGISTER_SONET_EVENT" => "Y"]
];
echo sendToBitrix('crm.lead.add', $queryData);
function sendToBitrix( $method, $data )
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://**********/'.$method,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>json_encode($data),
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}