Остановился на вот таком варианте
$result = file_get_contents("{$site}/callback.php?{$_SERVER["QUERY_STRING"]}", false, stream_context_create(array('http' =>
array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
"Authorization: Basic " . base64_encode("dev:$dev_pass"),
'content' => http_build_query($_POST)
)
)));
Можно доработать на заголовки в контексте через функцию headers_list() но пока лень) большинство уведомлений от оплат не используют специфичных заголовков.