<?php
$post_data = ['foo' => 'bar', 'baz' => 48];
$url = "http://www.example.com/api/endpoint";
$ch = curl_init($url);
// diz ao CURL para retornar a resposta em vez de enviá-la para stdout
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// define os dados POST e o método correspondente
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
// define o cabeçalho necessário
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
// envia a requisição e obtém a resposta
$response = curl_exec($ch);
if(curl_error($ch)) {
// trata o erro, ou apenas
throw new RuntimeException(curl_error($ch));
}