code: func (fw *Framework) NewReplyFromTransportJSON(payload []byte, skipvalidate bool) (msg protocol.Reply, err error) {
  	transport, err := fw.NewTransportFromJSON(string(payload))
  	if err != nil {
  		return nil, err
  	}
  
  	sreply, err := fw.NewSecureReplyFromTransport(transport, skipvalidate)
  	if err != nil {
  		return nil, err
  	}
  
  	reply, err := fw.NewReplyFromSecureReply(sreply)
  	if err != nil {
  		return nil, err
  	}
  
  	protocol.CopyFederationData(transport, reply)
  
  	return reply, nil
  }
docs: // NewReplyFromTransportJSON creates a new Reply from a transport JSON