Yes, ideally it's best to have a direct match where the definition (XSD or WSDL) contains all the fields that you'd expect to be populated during runtime. The best way would always be to get it from the third party who owns the service.
It's just in the case where you can't get a hold on such a "complete" definition, then you can make do with an incomplete one as a start, and make adjustments as you go along.
Anyway, glad that it's all sorted for you now!