Отправляем данные в формате Json на указанный шлюз методом POST:

$data = ["name" => "John Smith", "age" => 35];
$data_string = json_encode ($data, JSON_UNESCAPED_UNICODE);
$curl = curl_init('https://domain.com/api');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
// Принимаем в виде массива. (false - в виде объекта)
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
   'Content-Type: application/json',
   'Content-Length: ' . strlen($data_string)
]);
$result = curl_exec($curl);
curl_close($curl);
echo '<pre>';
print_r($result);

Переменная $result будет содержать ответ сервера на переданные данные.