diff --git a/mandrill.cabal b/mandrill.cabal
--- a/mandrill.cabal
+++ b/mandrill.cabal
@@ -1,5 +1,5 @@
 name:                mandrill
-version:             0.2.2.0
+version:             0.2.2.1
 synopsis:            Library for interfacing with the Mandrill JSON API
 description:         Pure Haskell client for the Mandrill JSON API
 license:             MIT
@@ -39,7 +39,7 @@
     , http-types >= 0.8.0
     , http-client >= 0.3.0
     , http-client-tls >= 0.2.0.0
-    , aeson >= 0.7.0.3 && < 0.9
+    , aeson >= 0.7.0.3 && < 0.10.0.0
     , lens >= 4.0
     , blaze-html >= 0.5.0.0
     , QuickCheck >= 2.6 && < 2.9
diff --git a/src/Network/API/Mandrill.hs b/src/Network/API/Mandrill.hs
--- a/src/Network/API/Mandrill.hs
+++ b/src/Network/API/Mandrill.hs
@@ -12,6 +12,7 @@
   , emptyMessage
   , newTextMessage
   , newHtmlMessage
+  , newTemplateMessage
   , liftIO
 
   -- * Appendix: Example Usage
@@ -106,6 +107,16 @@
 newHtmlMessage f t subj html = let body = mkMandrillHtml html in
   ((mmsg_html .~ body) . (mmsg_subject .~ subj)) $ (emptyMessage f t)
 
+--------------------------------------------------------------------------------
+-- | Create a new template message (no HTML).
+newTemplateMessage :: EmailAddress
+                   -- ^ Sender email
+                   -> [EmailAddress]
+                   -- ^ Receivers email
+                   -> T.Text
+                   -- ^ Subject
+                   -> MandrillMessage
+newTemplateMessage f t subj = (mmsg_subject .~ subj) $ (emptyMessage f t)
 
 --------------------------------------------------------------------------------
 -- | Create a new textual message. By default Mandrill doesn't require you
diff --git a/src/Network/API/Mandrill/Messages.hs b/src/Network/API/Mandrill/Messages.hs
--- a/src/Network/API/Mandrill/Messages.hs
+++ b/src/Network/API/Mandrill/Messages.hs
@@ -24,3 +24,22 @@
      -> Maybe Manager
      -> IO (MandrillResponse [MessagesResponse])
 send k msg async ip_pool send_at = toMandrillResponse MessagesSend (MessagesSendRq k msg async ip_pool send_at)
+
+-- | Send a new transactional message through Mandrill using a template
+sendTemplate :: MandrillKey
+             -- ^ The API key
+             -> MandrillTemplate
+             -- ^ The template name
+             -> [MandrillTemplateContent]
+             -- ^ Template content for 'editable regions'
+             -> MandrillMessage
+             -- ^ The email message
+             -> Maybe Bool
+             -- ^ Enable a background sending mode that is optimized for bulk sending
+             -> Maybe T.Text
+             -- ^ ip_pool
+             -> Maybe UTCTime
+             -- ^ send_at
+             -> Maybe Manager
+             -> IO (MandrillResponse [MessagesResponse])
+sendTemplate k template content msg async ip_pool send_at = toMandrillResponse MessagesSendTemplate (MessagesSendTemplateRq k template content msg async ip_pool send_at)
diff --git a/src/Network/API/Mandrill/Messages/Types.hs b/src/Network/API/Mandrill/Messages/Types.hs
--- a/src/Network/API/Mandrill/Messages/Types.hs
+++ b/src/Network/API/Mandrill/Messages/Types.hs
@@ -27,6 +27,19 @@
 makeLenses ''MessagesSendRq
 deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MessagesSendRq
 
+--------------------------------------------------------------------------------
+data MessagesSendTemplateRq = MessagesSendTemplateRq {
+    _mstrq_key              :: MandrillKey
+  , _mstrq_template_name    :: T.Text
+  , _mstrq_template_content :: [MandrillTemplateContent]
+  , _mstrq_message          :: MandrillMessage
+  , _mstrq_async            :: Maybe Bool
+  , _mstrq_ip_pool          :: Maybe T.Text
+  , _mstrq_send_at          :: Maybe UTCTime
+  } deriving Show
+
+makeLenses ''MessagesSendTemplateRq
+deriveJSON defaultOptions { fieldLabelModifier = drop 7 } ''MessagesSendTemplateRq
 
 --------------------------------------------------------------------------------
 data MessagesResponse = MessagesResponse {
diff --git a/src/Network/API/Mandrill/Types.hs b/src/Network/API/Mandrill/Types.hs
--- a/src/Network/API/Mandrill/Types.hs
+++ b/src/Network/API/Mandrill/Types.hs
@@ -331,7 +331,18 @@
                               <*> pure []
 
 --------------------------------------------------------------------------------
+-- | Key value pair for replacing content in templates via 'Editable Regions'
+data MandrillTemplateContent = MandrillTemplateContent {
+    _mtc_name    :: T.Text
+  , _mtc_content :: T.Text
+  } deriving Show
+
+makeLenses ''MandrillTemplateContent
+deriveJSON defaultOptions { fieldLabelModifier = drop 5 } ''MandrillTemplateContent
+
+--------------------------------------------------------------------------------
 type MandrillKey = T.Text
+type MandrillTemplate = T.Text
 
 newtype MandrillDate = MandrillDate {
   fromMandrillDate :: UTCTime
