diff --git a/src/Web/Telegram/Types.hs b/src/Web/Telegram/Types.hs
--- a/src/Web/Telegram/Types.hs
+++ b/src/Web/Telegram/Types.hs
@@ -92,6 +92,7 @@
 
 import Data.Aeson
 import Data.Coerce
+import Data.Hashable
 import Data.OpenUnion
 import Data.Text (Text)
 import Deriving.Aeson
@@ -106,7 +107,7 @@
 data ChatId
   = ChatId Integer
   | ChanId Text
-  deriving (Show, Eq, Generic, Default)
+  deriving (Show, Eq, Generic, Default, Hashable)
   deriving (FromJSON, ToJSON) via UntaggedSum ChatId
 
 instance ToHttpApiData ChatId where
diff --git a/src/Web/Telegram/Types/Interaction.hs b/src/Web/Telegram/Types/Interaction.hs
--- a/src/Web/Telegram/Types/Interaction.hs
+++ b/src/Web/Telegram/Types/Interaction.hs
@@ -29,6 +29,7 @@
 where
 
 import Data.Aeson
+import Data.Hashable
 import Data.OpenUnion
 import Deriving.Aeson
 import Servant.API
@@ -65,6 +66,6 @@
   | FindLocation
   | RecordVideoNote
   | UploadVideoNote
-  deriving (Show, Eq, Ord, Generic, Default)
+  deriving (Show, Eq, Ord, Generic, Default, Hashable)
   deriving (ToJSON, FromJSON) via Snake Action
   deriving (ToHttpApiData) via Serialize Action
diff --git a/telegram-types.cabal b/telegram-types.cabal
--- a/telegram-types.cabal
+++ b/telegram-types.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: fa0715f82fba82b6c5df10eb271dcfbf056c6b45435ed0b9ff2855ec5c4c1c99
+-- hash: 1ce7c0f493d00addea341e93ceca1fa8a7969c97530ec77dfbe79d03bc90e100
 
 name:           telegram-types
-version:        0.3.0
+version:        0.3.1
 synopsis:       Types used in Telegram bot API
 description:    Defines various datatypes and their serialization methods useful for writing bindings to Telegram bot API.
 category:       Web
