The shipment functions seem to be flawed such that shipment.create can trigger an email, but the shipment template includes values that cannot be filled in because tracking numbers cannot be added until after the shipment is created. The workaround seems to be using shipment.addcomment and adjusting that template to include the track fields.
Magento – How to properly trigger shipment emails via the SOAP API
apishipment
Best Answer
I had exactly the same problem and it seems that there is solution without extending the API!
The shipment API has an undocumented function called sendInfo. Thanks to cameronhimself for pointing this.
So you need something like this (for SOAP V1)