diff --git a/src/Web/Stripe/Types.hs b/src/Web/Stripe/Types.hs
--- a/src/Web/Stripe/Types.hs
+++ b/src/Web/Stripe/Types.hs
@@ -131,7 +131,7 @@
     , chargeAmount               :: Amount
     , chargeCurrency             :: Currency
     , chargeRefunded             :: Bool
-    , chargeCreditCard           :: Card
+    , chargeCreditCard           :: Maybe Card
     , chargeCaptured             :: Bool
     , chargeRefunds              :: StripeList Refund
     , chargeBalanceTransaction   :: Maybe (Expandable TransactionId)
@@ -160,7 +160,7 @@
                <*> (Amount <$> o .: "amount")
                <*> o .: "currency"
                <*> o .: "refunded"
-               <*> o .: "card"
+               <*> o .:? "card"
                <*> o .: "captured"
                <*> o .: "refunds"
                <*> o .:? "balance_transaction"
@@ -394,7 +394,7 @@
     , cardExpMonth          :: ExpMonth
     , cardExpYear           :: ExpYear
     , cardFingerprint       :: Text
-    , cardCountry           :: Text
+    , cardCountry           :: Maybe Text
     , cardName              :: Maybe Name
     , cardAddressLine1      :: Maybe AddressLine1
     , cardAddressLine2      :: Maybe AddressLine2
@@ -406,6 +406,7 @@
     , cardAddressLine1Check :: Maybe Text
     , cardAddressZipCheck   :: Maybe Text
     , cardCustomerId        :: Maybe (Expandable CustomerId)
+    , cardMetaData          :: MetaData
     } deriving (Read, Show, Eq, Ord, Data, Typeable)
 
 ------------------------------------------------------------------------------
@@ -444,7 +445,7 @@
              <*> (ExpMonth <$> o .: "exp_month")
              <*> (ExpYear <$> o .: "exp_year")
              <*> o .: "fingerprint"
-             <*> o .: "country"
+             <*> o .:? "country"
              <*> o .:? "name"
              <*> (fmap AddressLine1 <$> o .:? "address_line1")
              <*> (fmap AddressLine2 <$> o .:? "address_line2")
@@ -456,6 +457,7 @@
              <*> o .:? "address_line1_check"
              <*> o .:? "address_zip_check"
              <*> o .:? "customer"
+             <*> o .: "metadata"
     parseJSON _ = mzero
 
 ------------------------------------------------------------------------------
@@ -538,6 +540,12 @@
     deriving (Read, Show, Eq, Ord, Data, Typeable)
 
 ------------------------------------------------------------------------------
+-- | JSON Instance for `SubscriptionId`
+instance FromJSON SubscriptionId where
+    parseJSON (String x)   = pure (SubscriptionId x)
+    parseJSON _            = mzero
+
+------------------------------------------------------------------------------
 -- | Subscription Object
 data Subscription = Subscription {
       subscriptionId                    :: SubscriptionId
@@ -919,7 +927,7 @@
     , invoiceItemDescription  :: Maybe Description
     , invoiceItemInvoice      :: Maybe (Expandable InvoiceId)
     , invoiceItemQuantity     :: Maybe Quantity
-    , invoiceItemSubscription :: Maybe Subscription
+    , invoiceItemSubscription :: Maybe SubscriptionId
     , invoiceItemMetaData     :: MetaData
     } deriving (Read, Show, Eq, Ord, Data, Typeable)
 
diff --git a/stripe-core.cabal b/stripe-core.cabal
--- a/stripe-core.cabal
+++ b/stripe-core.cabal
@@ -1,5 +1,5 @@
 name:                stripe-core
-version:             2.2.1
+version:             2.2.2
 synopsis:            Stripe API for Haskell - Pure Core
 license:             MIT
 license-file:        LICENSE
@@ -20,7 +20,7 @@
 
 library
   hs-source-dirs:      src
-  build-depends:       aeson                >= 0.8 && < 0.10 || >= 0.11 && < 1.1
+  build-depends:       aeson                >= 0.8 && < 0.10 || >= 0.11 && < 1.3
                      , base                 >= 4.7   && < 5
                      , bytestring           >= 0.10  && < 0.11
                      , mtl                  >= 2.1.2 && < 2.3
