This saved me from almost giving up, handling a SOAP call with complex types. While I was able passing simple array structures to a SOAP endpoint, I had no idea how to create a deep nested object with an element that was variable. The php docs about SOAP Client are too general, I didn't even know why simple arrays worked in the simple calls while many examples are using objects. With the little knowledge that the wsdl file makes it possible to autogenerate the calls for the methods I started searching for that and ended up with 3 different WSDL2PHP projects where one was vital and under development, but commercial, the other one was a commandline tool with some dependencies I wasn't able to meet and Easy WSDL2PHP which worked almost out of the box (the interface uses short tags that might not work on your server, but it was easy to fix) This script generates all methods and function calls from a WSDL file and after 3 hours trial and error (because I didn't use the Easy WSDL2PHP soap calls initially) I found out that using the generated classmap array, was the key to success. Thank you so so much!