diff --git a/api/api.go b/api/api.go
index b5f3287f94335a68dbaeffad6f3da3523a7513c2..20f25c954e033bbb89f52315dffb890d31c5584e 100644
--- a/api/api.go
+++ b/api/api.go
@@ -51,7 +51,7 @@ func Init(dbPath string, signKey string, r *mux.Router) error {
 	r.HandleFunc("/product/{code:[0-9]+}", a.authAdmin(a.UpdateProduct)).Methods("PUT")
 	r.HandleFunc("/product/{code:[0-9]+}", a.authAdmin(a.DeleteProduct)).Methods("DELETE")
 
-	r.HandleFunc("/transaction", a.auth(a.ListTransactions)).Methods("GET")
+	r.HandleFunc("/transaction", a.authAdmin(a.ListTransactions)).Methods("GET")
 	r.HandleFunc("/transaction/{id:[0-9]+}", a.authNumRole(a.GetTransaction)).Methods("GET")
 	r.HandleFunc("/transaction/mine", a.authNum(a.getTransactionsByMember)).Methods("GET")
 
diff --git a/api/transaction.go b/api/transaction.go
index c33a2b0ea8081790b8fe2d09bc766b3acd300123..0420e43430b533d41b2c63639aa8c7456ab60e21 100644
--- a/api/transaction.go
+++ b/api/transaction.go
@@ -86,6 +86,7 @@ func (a *api) getTransactionsByMember(num int, w http.ResponseWriter, req *http.
 	err := a.db.Where("member = ?", num).
 		Preload("Purchase.Product").
 		Preload(clause.Associations).
+		Order("date desc").
 		Find(&transactions).Error
 	if err != nil {
 		log.Printf("Can't list transactions: %v", err)
diff --git a/src/TransactionList.js b/src/TransactionList.js
index 98b1e2ef5409e9cec01ea8e68355b9e8ac47c13e..2c5f4251fe2583b0a78dd5227eb7982ac2cd3f99 100644
--- a/src/TransactionList.js
+++ b/src/TransactionList.js
@@ -45,7 +45,7 @@ function TransactionList() {
     }
 
     return (
-        <Fetcher url="/api/transaction" onFetch={setTransactions} >
+        <Fetcher url="/api/transaction/mine" onFetch={setTransactions} >
             <BootstrapTable
                 keyField="ID"
                 data={ transactions }