Nosotros lo hacemos así, no se si te servirá:
Código PHP:
try {
$client = new SoapClient("https://ec.europa.eu/taxation_customs/tin/services/checkTinService.wsdl", [
'trace' => 0,
'exceptions' => true,
]);
$params = [
'countryCode' => $codigo_pais,
'tinNumber' => $nif,
];
$response = $client->__soapCall('checkTin', [$params]);
if ($response->validStructure) {
if ($response->validSyntax) {
$nif_valido[$id_res] = 1;
if ($codigo_pais == 'ES') {
$res_dni[$id_res]['dni_tipo'] = '07';
}
} else {
$nif_valido[$id_res] = 0;
}
} else {
$nif_valido[$id_res] = 0;
}
} catch (SoapFault $e) {
// Manejo de errores
enviarLog('ERROR', $opcion, $vista, 'Error en la petición al webservice de validación de NIF: ' . $e->getMessage());
$nif_valido[$id_res] = 0;
}