None of the examples really do it for me.Note: you should NOT need to hard-code any XML.Here is an example of creating a nested header and including a parameter.$client = new SoapClient(WSDL,array());$auth = array( 'UserName'=>'USERNAME', 'Password'=>'PASSWORD', 'SystemId'=> array('_'=>'DATA','Param'=>'PARAM'), ); $header = new SoapHeader('NAMESPACE','Auth',$auth,false); $client->__setSoapHeaders($header);Gives the following header XML: <SOAP-ENV:Header> <ns1:Auth> <ns1:SystemId Param="PARAM">DATA</ns1:SystemId> <ns1:UserName>USERNAME</ns1:UserName> <ns1:Password>PASSWORD</ns1:Password> </ns1:Auth> </SOAP-ENV:Header>