diff --git a/design/types.go b/design/types.go
index 19076b7ef18affd404c1fa3cc3452d56271e5295..3ea641e275ca9fed03207bd7d3e052865ae005c3 100644
--- a/design/types.go
+++ b/design/types.go
@@ -11,7 +11,7 @@ var CacheGetRequest = Type("CacheGetRequest", func() {
 })
 
 var CacheSetRequest = Type("CacheSetRequest", func() {
-	Field(1, "data", Bytes)
+	Field(1, "data", Any)
 	Field(2, "key", String)
 	Field(3, "namespace", String)
 	Field(4, "scope", String) // Initial implementation with a single scope
diff --git a/internal/service/cache/service.go b/internal/service/cache/service.go
index c2a3bc8eeedd703bbdc6cd6bb01662584671ccd2..3e89fe1e5725e096b0f28cbd9cb166e296faece8 100644
--- a/internal/service/cache/service.go
+++ b/internal/service/cache/service.go
@@ -2,6 +2,7 @@ package cache
 
 import (
 	"context"
+	"encoding/json"
 	"fmt"
 	"time"
 
@@ -51,7 +52,8 @@ func (s *Service) Get(ctx context.Context, req *cache.CacheGetRequest) ([]byte,
 
 func (s *Service) Set(ctx context.Context, req *cache.CacheSetRequest) error {
 	var operation = zap.String("operation", "set")
-	if req.Key == "" || req.Namespace == "" || req.Scope == "" || len(req.Data) == 0 {
+
+	if req.Key == "" || req.Namespace == "" || req.Scope == "" || len(req.Data.(map[string]interface{})) == 0 {
 		s.logger.Error("bad request: missing key or namespace or scope or data", operation)
 		return errors.New(errors.BadRequest, "bad request")
 	}
@@ -60,7 +62,13 @@ func (s *Service) Set(ctx context.Context, req *cache.CacheSetRequest) error {
 
 	// create key from the input fields
 	key := makeCacheKey(req.Namespace, req.Scope, req.Key)
-	if err := s.cache.Set(ctx, key, req.Data, 0); err != nil {
+	// encode payload to json bytes for storing in cache
+	value, err := json.Marshal(req.Data)
+	if err != nil {
+		s.logger.Error("error encode payload to json", zap.Error(err), operation)
+		return errors.New("error encode payload to json", err)
+	}
+	if err := s.cache.Set(ctx, key, value, 0); err != nil {
 		s.logger.Error("error setting value in cache", zap.Error(err), operation)
 		return errors.New("error setting value in cache", err)
 	}