code: func (api *API) SendTransfer(seed Trytes, depth uint64, mwm uint64, transfers bundle.Transfers, options *SendTransfersOptions) (bundle.Bundle, error) {
  	if err := Validate(ValidateSeed(seed), ValidateTransfers(transfers...)); err != nil {
  		return nil, err
  	}
  	var opts PrepareTransfersOptions
  	refs := Hashes{}
  	if options == nil {
  		opts = getPrepareTransfersDefaultOptions(PrepareTransfersOptions{})
  	} else {
  		opts = getPrepareTransfersDefaultOptions(options.PrepareTransfersOptions)
  		if options.Reference != nil {
  			refs = append(refs, *options.Reference)
  		}
  	}
  
  	trytes, err := api.PrepareTransfers(seed, transfers, opts)
  	if err != nil {
  		return nil, err
  	}
  
  	return api.SendTrytes(trytes, depth, mwm, refs...)
  }
docs: // SendTransfer calls PrepareTransfers and then sends off the bundle via SendTrytes.