diff --git a/mangopay.cabal b/mangopay.cabal
--- a/mangopay.cabal
+++ b/mangopay.cabal
@@ -1,5 +1,5 @@
 name:           mangopay
-version:        1.9.6
+version:        1.9.7
 cabal-version:  >= 1.8
 build-type:     Simple
 author:         JP Moresmau <jpmoresmau@gmail.com>
@@ -41,7 +41,7 @@
      , http-types
      , http-conduit         >= 2.0  && < 2.2
      , attoparsec           >= 0.10 && < 0.13
-     , aeson                >= 0.7  && < 0.8
+     , aeson                >= 0.7  && < 0.9
      , time
      , data-default
      , lifted-base
diff --git a/src/Web/MangoPay/Payins.hs b/src/Web/MangoPay/Payins.hs
--- a/src/Web/MangoPay/Payins.hs
+++ b/src/Web/MangoPay/Payins.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE DeriveDataTypeable, ScopedTypeVariables, OverloadedStrings, FlexibleContexts, FlexibleInstances, ConstraintKinds #-}
+{-# LANGUAGE ConstraintKinds, DeriveDataTypeable, FlexibleContexts,
+             FlexibleInstances, OverloadedStrings, ScopedTypeVariables #-}
 -- | handle payins
 module Web.MangoPay.Payins where
 
@@ -58,28 +59,28 @@
 -- there are a lot of common fields between all kinds of payments
 -- so this could probably become a "Payment" type
 data BankWire=BankWire {
-  bwId :: Maybe BankWireId
-  ,bwCreationDate :: Maybe POSIXTime
-  ,bwTag :: Maybe Text -- ^  custom data
-  ,bwAuthorId  :: AnyUserId -- ^   The user Id of the author
-  ,bwCreditedUserId  :: AnyUserId -- ^  It represents the amount credited on the targeted e-wallet.
-  ,bwFees :: Maybe Amount -- ^  It represents your fees taken on the DebitedFundsDebitedFunds – Fees = CreditedFunds (amount received on wallet)
-  ,bwCreditedWalletId :: WalletId -- ^ The Id of the credited wallet
-  ,bwDebitedWalletId :: Maybe WalletId -- ^  The Id of the debited wallet
-  ,bwDebitedFunds  :: Maybe Amount -- ^  It represents the amount debited from the bank account.
-  ,bwCreditedFunds :: Maybe Amount -- ^   It represents the amount credited on the targeted e-wallet.
-  ,bwDeclaredDebitedFunds  :: Amount -- ^   It represents the expected amount by the platform before that the user makes the payment.
-  ,bwDeclaredFees  :: Amount -- ^   It represents the expected fees amount by the platform before that the user makes the payment.
-  ,bwWireReference :: Maybe Text -- ^ It is a reference generated by MANGOPAY and displayed to the user by the platform. The user have to indicate it into the bank wire.
-  ,bwBankAccount :: Maybe BankAccount -- ^ The bank account is generated by MANGOPAY and displayed to the user.
-  ,bwStatus  :: Maybe TransferStatus -- ^  The status of the payment
-  ,bwResultCode  :: Maybe Text -- ^  The transaction result code
-  ,bwResultMessage :: Maybe Text -- ^  The transaction result Message
-  ,bwExecutionDate :: Maybe POSIXTime -- ^ The date when the payment is processed
-  ,bwType  :: Maybe TransactionType -- ^  The type of the transaction
-  ,bwNature  :: Maybe TransactionNature -- ^  The nature of the transaction:
-  ,bwPaymentType :: Maybe PaymentType -- ^  The type of the payment (which type of mean of payment is used).
-  ,bwExecutionType :: Maybe PaymentExecution -- ^  How the payment has been executed:
+  bwId                    :: Maybe BankWireId
+  ,bwCreationDate         :: Maybe POSIXTime
+  ,bwTag                  :: Maybe Text -- ^  custom data
+  ,bwAuthorId             :: AnyUserId -- ^   The user Id of the author
+  ,bwCreditedUserId       :: AnyUserId -- ^  It represents the amount credited on the targeted e-wallet.
+  ,bwFees                 :: Maybe Amount -- ^  It represents your fees taken on the DebitedFundsDebitedFunds – Fees = CreditedFunds (amount received on wallet)
+  ,bwCreditedWalletId     :: WalletId -- ^ The Id of the credited wallet
+  ,bwDebitedWalletId      :: Maybe WalletId -- ^  The Id of the debited wallet
+  ,bwDebitedFunds         :: Maybe Amount -- ^  It represents the amount debited from the bank account.
+  ,bwCreditedFunds        :: Maybe Amount -- ^   It represents the amount credited on the targeted e-wallet.
+  ,bwDeclaredDebitedFunds :: Amount -- ^   It represents the expected amount by the platform before that the user makes the payment.
+  ,bwDeclaredFees         :: Amount -- ^   It represents the expected fees amount by the platform before that the user makes the payment.
+  ,bwWireReference        :: Maybe Text -- ^ It is a reference generated by MANGOPAY and displayed to the user by the platform. The user have to indicate it into the bank wire.
+  ,bwBankAccount          :: Maybe BankAccount -- ^ The bank account is generated by MANGOPAY and displayed to the user.
+  ,bwStatus               :: Maybe TransferStatus -- ^  The status of the payment
+  ,bwResultCode           :: Maybe Text -- ^  The transaction result code
+  ,bwResultMessage        :: Maybe Text -- ^  The transaction result Message
+  ,bwExecutionDate        :: Maybe POSIXTime -- ^ The date when the payment is processed
+  ,bwType                 :: Maybe TransactionType -- ^  The type of the transaction
+  ,bwNature               :: Maybe TransactionNature -- ^  The nature of the transaction:
+  ,bwPaymentType          :: Maybe PaymentType -- ^  The type of the payment (which type of mean of payment is used).
+  ,bwExecutionType        :: Maybe PaymentExecution -- ^  How the payment has been executed:
   } deriving (Show,Eq,Ord,Typeable)
 
 -- | to json as per MangoPay format
@@ -91,8 +92,8 @@
 -- | from json as per MangoPay format
 instance FromJSON BankWire where
         parseJSON (Object v) =BankWire <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "AuthorId" <*>
                          v .: "CreditedUserId" <*>
@@ -127,43 +128,43 @@
 
 -- | direct pay in via registered card
 data CardPayin=CardPayin {
-  cpId :: Maybe CardPayinId
-  ,cpCreationDate :: Maybe POSIXTime
-  ,cpTag :: Maybe Text -- ^  custom data
-  ,cpAuthorId  :: AnyUserId -- ^   The user Id of the author
-  ,cpCreditedUserId  :: AnyUserId -- ^  The user Id of the owner of the credited wallet
-  ,cpFees :: Amount -- ^  It represents your fees taken on the DebitedFundsDebitedFunds – Fees = CreditedFunds (amount received on wallet)
-  ,cpCreditedWalletId :: WalletId -- ^ The Id of the credited wallet
-  ,cpDebitedWalletId :: Maybe WalletId -- ^  The Id of the debited wallet
-  ,cpDebitedFunds  :: Amount -- ^  It represents the amount debited from the bank account.
-  ,cpCreditedFunds :: Maybe Amount -- ^   It represents the amount credited on the targeted e-wallet.
-  ,cpSecureModeReturnURL :: Maybe Text -- ^ This URL will be used in case the SecureMode is activated.
-  ,cpSecureMode :: Maybe Text -- ^ The SecureMode correspond to « 3D secure » for CB Visa and MasterCard or « Amex Safe Key » for American Express. This field lets you activate it manually.
+  cpId                     :: Maybe CardPayinId
+  ,cpCreationDate          :: Maybe POSIXTime
+  ,cpTag                   :: Maybe Text -- ^  custom data
+  ,cpAuthorId              :: AnyUserId -- ^   The user Id of the author
+  ,cpCreditedUserId        :: AnyUserId -- ^  The user Id of the owner of the credited wallet
+  ,cpFees                  :: Amount -- ^  It represents your fees taken on the DebitedFundsDebitedFunds – Fees = CreditedFunds (amount received on wallet)
+  ,cpCreditedWalletId      :: WalletId -- ^ The Id of the credited wallet
+  ,cpDebitedWalletId       :: Maybe WalletId -- ^  The Id of the debited wallet
+  ,cpDebitedFunds          :: Amount -- ^  It represents the amount debited from the bank account.
+  ,cpCreditedFunds         :: Maybe Amount -- ^   It represents the amount credited on the targeted e-wallet.
+  ,cpSecureModeReturnURL   :: Maybe Text -- ^ This URL will be used in case the SecureMode is activated.
+  ,cpSecureMode            :: Maybe Text -- ^ The SecureMode correspond to « 3D secure » for CB Visa and MasterCard or « Amex Safe Key » for American Express. This field lets you activate it manually.
   ,cpSecureModeRedirectURL :: Maybe Text -- ^ This URL will be used in case the SecureMode is activated.
-  ,cpCardId :: CardId -- ^ The Id of the registered card (Got through CardRegistration object)
-  ,cpStatus  :: Maybe TransferStatus -- ^  The status of the payment
-  ,cpResultCode  :: Maybe Text -- ^  The transaction result code
-  ,cpResultMessage :: Maybe Text -- ^  The transaction result Message
-  ,cpExecutionDate :: Maybe POSIXTime --   The date when the payment is processed
-  ,cpType  :: Maybe TransactionType -- ^  The type of the transaction
-  ,cpNature  :: Maybe TransactionNature -- ^  The nature of the transaction:
-  ,cpPaymentType :: Maybe Text -- ^  The type of the payment (which type of mean of payment is used).
-  ,cpExecutionType :: Maybe PaymentExecution -- ^  How the payment has been executed:
+  ,cpCardId                :: CardId -- ^ The Id of the registered card (Got through CardRegistration object)
+  ,cpStatus                :: Maybe TransferStatus -- ^  The status of the payment
+  ,cpResultCode            :: Maybe Text -- ^  The transaction result code
+  ,cpResultMessage         :: Maybe Text -- ^  The transaction result Message
+  ,cpExecutionDate         :: Maybe POSIXTime --   The date when the payment is processed
+  ,cpType                  :: Maybe TransactionType -- ^  The type of the transaction
+  ,cpNature                :: Maybe TransactionNature -- ^  The nature of the transaction:
+  ,cpPaymentType           :: Maybe Text -- ^  The type of the payment (which type of mean of payment is used).
+  ,cpExecutionType         :: Maybe PaymentExecution -- ^  How the payment has been executed:
   } deriving (Show,Eq,Ord,Typeable)
 
 -- | to json as per MangoPay format
 instance ToJSON CardPayin where
         toJSON cp=object ["Tag" .= cpTag cp,"AuthorId" .= cpAuthorId  cp
           ,"CreditedUserId" .= cpCreditedUserId cp,"CreditedWalletId" .= cpCreditedWalletId cp
-          ,"DebitedFunds" .= cpDebitedFunds cp,"Fees" .= cpFees cp,"CardID" .= cpCardId cp
+          ,"DebitedFunds" .= cpDebitedFunds cp,"Fees" .= cpFees cp,"CardId" .= cpCardId cp
           ,"SecureModeReturnURL" .= cpSecureModeReturnURL cp
           ,"SecureMode" .= cpSecureMode cp]
 
 -- | from json as per MangoPay format
 instance FromJSON CardPayin where
         parseJSON (Object v) =CardPayin <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "AuthorId" <*>
                          v .: "CreditedUserId" <*>
diff --git a/src/Web/MangoPay/Payouts.hs b/src/Web/MangoPay/Payouts.hs
--- a/src/Web/MangoPay/Payouts.hs
+++ b/src/Web/MangoPay/Payouts.hs
@@ -32,23 +32,23 @@
 
 -- | payout
 data Payout=Payout {
-  ptId :: Maybe PayoutId
-  ,ptCreationDate :: Maybe POSIXTime
-  ,ptTag :: Maybe Text -- ^ custom data for client
-  ,ptAuthorId :: AnyUserId -- ^ The user Id of the author
-  ,ptDebitedWalletId :: WalletId
-  ,ptDebitedFunds :: Amount
-  ,ptFees :: Amount
-  ,ptBankAccountId :: BankAccountId
-  ,ptCreditedUserId :: Maybe AnyUserId
-  ,ptCreditedFunds :: Maybe Amount
-  ,ptStatus :: Maybe TransferStatus
-  ,ptResultCode  :: Maybe Text -- ^ The transaction result code
-  ,ptResultMessage :: Maybe Text -- ^ The transaction result code
-  ,ptExecutionDate :: Maybe  POSIXTime
-  ,ptType :: Maybe TransactionType
-  ,ptNature :: Maybe TransactionNature
-  ,ptPaymentType :: Maybe PaymentType
+  ptId                 :: Maybe PayoutId
+  ,ptCreationDate      :: Maybe POSIXTime
+  ,ptTag               :: Maybe Text -- ^ custom data for client
+  ,ptAuthorId          :: AnyUserId -- ^ The user Id of the author
+  ,ptDebitedWalletId   :: WalletId
+  ,ptDebitedFunds      :: Amount
+  ,ptFees              :: Amount
+  ,ptBankAccountId     :: BankAccountId
+  ,ptCreditedUserId    :: Maybe AnyUserId
+  ,ptCreditedFunds     :: Maybe Amount
+  ,ptStatus            :: Maybe TransferStatus
+  ,ptResultCode        :: Maybe Text -- ^ The transaction result code
+  ,ptResultMessage     :: Maybe Text -- ^ The transaction result code
+  ,ptExecutionDate     :: Maybe  POSIXTime
+  ,ptType              :: Maybe TransactionType
+  ,ptNature            :: Maybe TransactionNature
+  ,ptPaymentType       :: Maybe PaymentType
   ,ptMeanOfPaymentType :: Maybe PaymentType -- ^  « BANK_WIRE »,
   } deriving (Show,Eq,Ord,Typeable)
 
@@ -62,8 +62,8 @@
 -- | from json as per MangoPay format
 instance FromJSON Payout where
         parseJSON (Object v) =Payout <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "AuthorId" <*>
                          v .: "DebitedWalletId" <*>
diff --git a/src/Web/MangoPay/Wallets.hs b/src/Web/MangoPay/Wallets.hs
--- a/src/Web/MangoPay/Wallets.hs
+++ b/src/Web/MangoPay/Wallets.hs
@@ -1,4 +1,6 @@
-{-# LANGUAGE DeriveDataTypeable, ScopedTypeVariables, OverloadedStrings, FlexibleContexts, FlexibleInstances, PatternGuards, ConstraintKinds #-}
+{-# LANGUAGE ConstraintKinds, DeriveDataTypeable, FlexibleContexts,
+             FlexibleInstances, OverloadedStrings, PatternGuards,
+             ScopedTypeVariables #-}
 -- | handle wallets
 module Web.MangoPay.Wallets where
 
@@ -54,13 +56,13 @@
 
 -- | a wallet
 data Wallet = Wallet {
-        wId:: Maybe WalletId -- ^ The Id of the wallet
+        wId            :: Maybe WalletId -- ^ The Id of the wallet
         ,wCreationDate :: Maybe POSIXTime -- ^ The creation date of the object
-        ,wTag :: Maybe Text -- ^  Custom data
-        ,wOwners :: [Text] -- ^ The owner of the wallet
-        ,wDescription :: Text -- ^ A description of the wallet
-        ,wCurrency :: Currency -- ^ Currency of the wallet
-        ,wBalance :: Maybe Amount -- ^ The amount held on the wallet
+        ,wTag          :: Maybe Text -- ^  Custom data
+        ,wOwners       :: [Text] -- ^ The owner of the wallet
+        ,wDescription  :: Text -- ^ A description of the wallet
+        ,wCurrency     :: Currency -- ^ Currency of the wallet
+        ,wBalance      :: Maybe Amount -- ^ The amount held on the wallet
         }
         deriving (Show,Eq,Ord,Typeable)
 
@@ -71,8 +73,8 @@
 -- | from json as per MangoPay format
 instance FromJSON Wallet where
         parseJSON (Object v) =Wallet <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "Owners" <*>
                          v .: "Description" <*>
@@ -103,20 +105,20 @@
 
 -- | transfer between wallets
 data Transfer = Transfer{
-        tId :: Maybe TransferId -- ^ Id of the transfer
-        ,tCreationDate    :: Maybe POSIXTime -- ^  The creation date of the object
-        ,tTag     :: Maybe Text -- ^   Custom data
-        ,tAuthorId :: AnyUserId -- ^ The Id of the author
-        ,tCreditedUserId  :: Maybe AnyUserId -- ^ The Id of the user owner of the credited wallet
-        ,tDebitedFunds :: Amount -- ^ The funds debited from the « debited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,tFees  :: Amount -- ^  The fees taken on the transfer.DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,tDebitedWalletId :: WalletId -- ^  The debited wallet (where the funds are held before the transfer)
+        tId                :: Maybe TransferId -- ^ Id of the transfer
+        ,tCreationDate     :: Maybe POSIXTime -- ^  The creation date of the object
+        ,tTag              :: Maybe Text -- ^   Custom data
+        ,tAuthorId         :: AnyUserId -- ^ The Id of the author
+        ,tCreditedUserId   :: Maybe AnyUserId -- ^ The Id of the user owner of the credited wallet
+        ,tDebitedFunds     :: Amount -- ^ The funds debited from the « debited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,tFees             :: Amount -- ^  The fees taken on the transfer.DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,tDebitedWalletId  :: WalletId -- ^  The debited wallet (where the funds are held before the transfer)
         ,tCreditedWalletId:: WalletId -- ^ The credited wallet (where the funds will be held after the transfer)
-        ,tCreditedFunds :: Maybe Amount -- ^  The funds credited on the « credited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,tStatus  :: Maybe TransferStatus -- ^   The status of the transfer:
-        ,tResultCode      :: Maybe Text -- ^   The transaction result code
-        ,tResultMessage   :: Maybe Text -- ^   The transaction result message
-        ,tExecutionDate   :: Maybe POSIXTime -- ^  The execution date of the transfer
+        ,tCreditedFunds    :: Maybe Amount -- ^  The funds credited on the « credited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,tStatus           :: Maybe TransferStatus -- ^   The status of the transfer:
+        ,tResultCode       :: Maybe Text -- ^   The transaction result code
+        ,tResultMessage    :: Maybe Text -- ^   The transaction result message
+        ,tExecutionDate    :: Maybe POSIXTime -- ^  The execution date of the transfer
         }
         deriving (Show,Eq,Ord,Typeable)
 
@@ -129,11 +131,11 @@
 -- | from json as per MangoPay format
 instance FromJSON Transfer where
         parseJSON (Object v) =Transfer <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "AuthorId" <*>
-                         v .: "CreditedUserId" <*>
+                         v .:? "CreditedUserId" <*>
                          v .: "DebitedFunds" <*>
                          v .: "Fees" <*>
                          v .: "DebitedWalletId" <*> -- yes, it's Id one way, Id the other
@@ -181,22 +183,22 @@
 
 -- | any transaction
 data Transaction = Transaction{
-        txId :: Maybe TransactionId -- ^ Id of the transfer
-        ,txCreationDate    :: Maybe POSIXTime -- ^  The creation date of the object
-        ,txTag     :: Maybe Text -- ^   Custom data
-        ,txAuthorId :: AnyUserId -- ^ The Id of the author
-        ,txCreditedUserId  :: Maybe AnyUserId -- ^ The Id of the user owner of the credited wallet
-        ,txDebitedFunds :: Amount -- ^ The funds debited from the « debited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,txFees  :: Amount -- ^  The fees taken on the transfer.DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,txDebitedWalletId :: Maybe WalletId -- ^  The debited wallet (where the funds are held before the transfer)
+        txId                :: Maybe TransactionId -- ^ Id of the transfer
+        ,txCreationDate     :: Maybe POSIXTime -- ^  The creation date of the object
+        ,txTag              :: Maybe Text -- ^   Custom data
+        ,txAuthorId         :: AnyUserId -- ^ The Id of the author
+        ,txCreditedUserId   :: Maybe AnyUserId -- ^ The Id of the user owner of the credited wallet
+        ,txDebitedFunds     :: Amount -- ^ The funds debited from the « debited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,txFees             :: Amount -- ^  The fees taken on the transfer.DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,txDebitedWalletId  :: Maybe WalletId -- ^  The debited wallet (where the funds are held before the transfer)
         ,txCreditedWalletId:: Maybe WalletId -- ^ The credited wallet (where the funds will be held after the transfer)
-        ,txCreditedFunds :: Maybe Amount -- ^  The funds credited on the « credited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
-        ,txStatus  :: Maybe TransferStatus -- ^   The status of the transfer:
-        ,txResultCode      :: Maybe Text -- ^   The transaction result code
-        ,txResultMessage   :: Maybe Text -- ^   The transaction result message
-        ,txExecutionDate   :: Maybe POSIXTime -- ^  The execution date of the transfer
-        ,txType  :: TransactionType -- ^  The type of the transaction
-        ,txNature  :: TransactionNature -- ^  The nature of the transaction:
+        ,txCreditedFunds    :: Maybe Amount -- ^  The funds credited on the « credited wallet »DebitedFunds – Fees = CreditedFunds (amount received on wallet)
+        ,txStatus           :: Maybe TransferStatus -- ^   The status of the transfer:
+        ,txResultCode       :: Maybe Text -- ^   The transaction result code
+        ,txResultMessage    :: Maybe Text -- ^   The transaction result message
+        ,txExecutionDate    :: Maybe POSIXTime -- ^  The execution date of the transfer
+        ,txType             :: TransactionType -- ^  The type of the transaction
+        ,txNature           :: TransactionNature -- ^  The nature of the transaction:
         }
         deriving (Show,Eq,Ord,Typeable)
 
@@ -209,8 +211,8 @@
 -- | from json as per MangoPay format
 instance FromJSON Transaction where
         parseJSON (Object v) =Transaction <$>
-                         v .: "Id" <*>
-                         v .: "CreationDate" <*>
+                         v .:? "Id" <*>
+                         v .:? "CreationDate" <*>
                          v .:? "Tag" <*>
                          v .: "AuthorId" <*>
                          v .: "CreditedUserId" <*>
