diff --git a/api/layer/object.go b/api/layer/object.go
index e50febbf2..c522584c7 100644
--- a/api/layer/object.go
+++ b/api/layer/object.go
@@ -2,6 +2,7 @@ package layer
 
 import (
 	"context"
+	"encoding/hex"
 	"errors"
 	"fmt"
 	"io"
@@ -260,7 +261,7 @@ func (n *layer) PutObject(ctx context.Context, p *PutObjectParams) (*data.Object
 		CreationEpoch: meta.CreationEpoch(),
 		Headers:       p.Header,
 		ContentType:   p.Header[api.ContentType],
-		HashSum:       payloadChecksum.String(),
+		HashSum:       hex.EncodeToString(payloadChecksum.Value()),
 	}, nil
 }
 
diff --git a/api/layer/util.go b/api/layer/util.go
index e3a1588cb..f5a7c9c2f 100644
--- a/api/layer/util.go
+++ b/api/layer/util.go
@@ -2,6 +2,7 @@ package layer
 
 import (
 	"context"
+	"encoding/hex"
 	"fmt"
 	"os"
 	"strconv"
@@ -126,7 +127,7 @@ func objectInfoFromMeta(bkt *data.BucketInfo, meta *object.Object, prefix, delim
 		Headers:       userHeaders,
 		Owner:         meta.OwnerID(),
 		Size:          size,
-		HashSum:       payloadChecksum.String(),
+		HashSum:       hex.EncodeToString(payloadChecksum.Value()),
 	}
 }
 
diff --git a/api/layer/util_test.go b/api/layer/util_test.go
index 33de78388..5f8d78f1d 100644
--- a/api/layer/util_test.go
+++ b/api/layer/util_test.go
@@ -1,6 +1,7 @@
 package layer
 
 import (
+	"encoding/hex"
 	"net/http"
 	"strconv"
 	"testing"
@@ -58,7 +59,7 @@ func newTestInfo(oid *oid.ID, bkt *data.BucketInfo, name string, isDir bool) *da
 		Created:     time.Unix(defaultTestCreated.Unix(), 0),
 		Owner:       bkt.Owner,
 		Headers:     make(map[string]string),
-		HashSum:     hashSum.String(),
+		HashSum:     hex.EncodeToString(hashSum.Value()),
 	}
 
 	if isDir {