diff --git a/kms/kmsetsi.go b/kms/kmsetsi.go
index 9abf1396f8ac524ef432f01a45b74294e13e6215..8dc0e4f79910eabdd55fa373dea405411700be93 100644
--- a/kms/kmsetsi.go
+++ b/kms/kmsetsi.go
@@ -145,10 +145,6 @@ func (es *etsiServer) ETSISendPayload(ctx context.Context, in *pb.ETSISendPayloa
 		return nil, status.Errorf(codes.Internal, "No route found for path id: %s", in.GetPathId())
 	}
 
-	if err := route.Next.SendPayload([]byte(in.GetPayload()), pathId); err != nil {
-		return nil, status.Errorf(codes.Internal, "Failed to send payload: ", err)
-	}
-
 	// NOTE: For demo purpose only
 	json, err := json.Marshal(KMSInfo{
 		Name:             es.handlingEkms.kmsName,
@@ -164,6 +160,10 @@ func (es *etsiServer) ETSISendPayload(ctx context.Context, in *pb.ETSISendPayloa
 		log.Println("Failed to send KMS info message: ", err)
 	}
 
+	if err := route.Next.SendPayload([]byte(in.GetPayload()), pathId); err != nil {
+		return nil, status.Errorf(codes.Internal, "Failed to send payload: ", err)
+	}
+
 	return &pb.ETSISendPayloadResponse{
 		Timestamp: time.Now().Unix(),
 	}, nil