diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
 ## [Unreleased]
 
 
+<a name="0.0.0.5"></a>
+## [0.0.0.5] - 2022-06-23
+### Chore
+- bump development version to 0.0.0.5
+
+### Feat
+- **accounting:** add Aeson instances to Haspara.Accounting.Journal module
+
+### Pull Requests
+- Merge pull request [#11](https://github.com/telostat/haspara/issues/11) from telostat/vst/add-missing-aeson-instances
+
+
 <a name="0.0.0.4"></a>
 ## [0.0.0.4] - 2022-06-22
 ### Chore
@@ -9,6 +21,7 @@
 - start working on Haspara.Accounting.Journal module
 - add new functions to Haspara.Quantity module
 - bump development version to 0.0.0.4
+- **release:** 0.0.0.4
 
 ### Feat
 - add Haspara.Accounting.Side module
@@ -106,7 +119,8 @@
 - Merge pull request [#1](https://github.com/telostat/haspara/issues/1) from telostat/init
 
 
-[Unreleased]: https://github.com/telostat/haspara/compare/0.0.0.4...HEAD
+[Unreleased]: https://github.com/telostat/haspara/compare/0.0.0.5...HEAD
+[0.0.0.5]: https://github.com/telostat/haspara/compare/0.0.0.4...0.0.0.5
 [0.0.0.4]: https://github.com/telostat/haspara/compare/0.0.0.3...0.0.0.4
 [0.0.0.3]: https://github.com/telostat/haspara/compare/0.0.0.2...0.0.0.3
 [0.0.0.2]: https://github.com/telostat/haspara/compare/0.0.0.1...0.0.0.2
diff --git a/haspara.cabal b/haspara.cabal
--- a/haspara.cabal
+++ b/haspara.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           haspara
-version:        0.0.0.4
+version:        0.0.0.5
 synopsis:       A library providing definitions to work with monetary values.
 description:    Please see the README on GitHub at <https://github.com/telostat/haspara#readme>
 category:       Finance
diff --git a/src/Haspara/Accounting/Journal.hs b/src/Haspara/Accounting/Journal.hs
--- a/src/Haspara/Accounting/Journal.hs
+++ b/src/Haspara/Accounting/Journal.hs
@@ -5,6 +5,7 @@
 
 module Haspara.Accounting.Journal where
 
+import qualified Data.Aeson                 as Aeson
 import qualified Data.Text                  as T
 import           Data.Time                  (Day)
 import           GHC.Generics               (Generic)
@@ -12,6 +13,7 @@
 import           Haspara.Accounting.Account (Account(accountKind))
 import           Haspara.Accounting.Amount  (Amount(..), amountFromQuantity, amountFromValue)
 import           Haspara.Accounting.Side    (Side(..))
+import           Haspara.Internal.Aeson     (commonAesonOptions)
 import           Haspara.Quantity           (Quantity, UnsignedQuantity, sumUnsignedQuantity)
 
 
@@ -23,9 +25,17 @@
 newtype Journal (precision :: Nat) account event = Journal
   { journalEntries :: [JournalEntry precision account event]
   }
-  deriving (Show)
+  deriving (Generic, Show)
 
 
+instance (KnownNat precision, Aeson.FromJSON account, Aeson.FromJSON event) => Aeson.FromJSON (Journal precision account event) where
+  parseJSON = Aeson.genericParseJSON $ commonAesonOptions "journal"
+
+
+instance (KnownNat precision, Aeson.ToJSON account, Aeson.ToJSON event) => Aeson.ToJSON (Journal precision account event) where
+  toJSON = Aeson.genericToJSON $ commonAesonOptions "journal"
+
+
 -- | Data definition for a journal entry.
 --
 -- A journal entry has a (unique) identifier, date and description, and a list
@@ -37,9 +47,17 @@
   , journalEntryItems       :: ![JournalEntryItem precision account event]
   , journalEntryDescription :: !T.Text
   }
-  deriving (Show)
+  deriving (Generic, Show)
 
 
+instance (KnownNat precision, Aeson.FromJSON account, Aeson.FromJSON event) => Aeson.FromJSON (JournalEntry precision account event) where
+  parseJSON = Aeson.genericParseJSON $ commonAesonOptions "journalEntry"
+
+
+instance (KnownNat precision, Aeson.ToJSON account, Aeson.ToJSON event) => Aeson.ToJSON (JournalEntry precision account event) where
+  toJSON = Aeson.genericToJSON $ commonAesonOptions "journalEntry"
+
+
 -- | Returns the total debit amount of a journal entry.
 journalEntryTotalDebit
   :: KnownNat precision
@@ -89,6 +107,14 @@
   , journalEntryItemEvent   :: !event
   }
   deriving (Eq, Generic, Show)
+
+
+instance (KnownNat precision, Aeson.FromJSON account, Aeson.FromJSON event) => Aeson.FromJSON (JournalEntryItem precision account event) where
+  parseJSON = Aeson.genericParseJSON $ commonAesonOptions "journalEntryItem"
+
+
+instance (KnownNat precision, Aeson.ToJSON account, Aeson.ToJSON event) => Aeson.ToJSON (JournalEntryItem precision account event) where
+  toJSON = Aeson.genericToJSON $ commonAesonOptions "journalEntryItem"
 
 
 -- | Creates a 'JournalEntryItem' from the given signed /quantity/, the account
