diff --git a/pom.xml b/pom.xml
index 2b66cc3b9f4a35b276cb07bcc21afbd42f5a907a..1bb1248394aad3aef155ec8edd329409a7cac0e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,17 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jadira.usertype</groupId>
+            <artifactId>usertype.core</artifactId>
+            <version>5.0.0.GA</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
index 78948a95c2a4a6d65e7077e0ea6978e2b1f34fa7..da1b03012252beeb8acd505bd7aefb5ef86d3495 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
@@ -8,13 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @Controller
 public class EmptyPageController extends BaseController
 {
-	@RequestMapping("/payments")
-	public String payments(Model model)
-	{
-		model.addAttribute("active", "payments");
-		return "emptyPage";
-	}
-
 	@RequestMapping("/reports")
 	public String reports(Model model)
 	{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/PaymentController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/PaymentController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d24f55f99245a9e610a535e5d615eb67e20e1559
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/PaymentController.java
@@ -0,0 +1,22 @@
+package de.deadlocker8.budgetmaster.controller;
+
+import de.deadlocker8.budgetmaster.repositories.PaymentRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+@Controller
+public class PaymentController extends BaseController
+{
+	@Autowired
+	private PaymentRepository paymentRepository;
+
+	@RequestMapping("/payments")
+	public String payments(Model model)
+	{
+		model.addAttribute("payments", paymentRepository.findAll());
+		return "payments/payments";
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Payment.java b/src/main/java/de/deadlocker8/budgetmaster/entities/Payment.java
index 7bb7fab0160c7f5c5972a1a087a739e2a7b46cc7..2066b4dab38a8bdf92f6636c46d399133e7a3900 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/Payment.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/Payment.java
@@ -1,9 +1,9 @@
 package de.deadlocker8.budgetmaster.entities;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import org.hibernate.annotations.Type;
+import org.joda.time.DateTime;
+
+import javax.persistence.*;
 
 @Entity
 public class Payment
@@ -12,8 +12,9 @@ public class Payment
 	@GeneratedValue(strategy = GenerationType.AUTO)
 	private Integer ID;
 	private Integer amount;
-	private String date;
-	private Integer categoryID;
+	private DateTime date;
+	@ManyToOne
+	private Category category;
 	private String name;
 	private String description;
 //	private RepeatingDefinition repeatingDefinition;
@@ -38,24 +39,24 @@ public class Payment
 		this.amount = amount;
 	}
 
-	public String getDate()
+	public DateTime getDate()
 	{
 		return date;
 	}
 
-	public void setDate(String date)
+	public void setDate(DateTime date)
 	{
 		this.date = date;
 	}
 
-	public Integer getCategoryID()
+	public Category getCategory()
 	{
-		return categoryID;
+		return category;
 	}
 
-	public void setCategoryID(Integer categoryID)
+	public void setCategory(Category category)
 	{
-		this.categoryID = categoryID;
+		this.category = category;
 	}
 
 	public String getName()
@@ -95,7 +96,7 @@ public class Payment
 				"ID=" + ID +
 				", amount=" + amount +
 				", date='" + date + '\'' +
-				", categoryID=" + categoryID +
+				", category=" + category +
 				", name='" + name + '\'' +
 				", description='" + description + '\'' +
 //				", repeatingDefinition=" + repeatingDefinition +
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/PaymentRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/PaymentRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..b76b56b541c4c5682f6b8b0fc4986fe0d062bb40
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/PaymentRepository.java
@@ -0,0 +1,12 @@
+package de.deadlocker8.budgetmaster.repositories;
+
+import de.deadlocker8.budgetmaster.entities.Payment;
+import org.joda.time.DateTime;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+
+public interface PaymentRepository extends JpaRepository<Payment, Integer>
+{
+}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 0e4d934f8dd6d5d75cbe1f601a6f4e6de410deaa..f027bea075bb3618245680e4757fe80ff943f6fd 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -12,4 +12,6 @@ spring.mvc.log-resolved-exception=false
 spring.jpa.hibernate.ddl-auto=update
 spring.datasource.url=jdbc:mysql://localhost:3306/budgetmaster2
 spring.datasource.username=root
-spring.datasource.password=
\ No newline at end of file
+spring.datasource.password=
+
+spring.jpa.properties.jadira.usertype.autoRegisterUserTypes = true
\ No newline at end of file
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index c91c3c05712f9248f57d744970b070a1731b40c1..f1227ca6ed3335b781d272b1cba39280f67e2ba7 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -16,7 +16,6 @@ title.incomes=Einnahmen
 title.income=Einnahme
 title.payments=Ausgaben
 title.payment=Ausgabe
-title.categories=Kategorien
 title.category=Kategorie
 title.category.budgets=Verbrauch nach Kategorien
 title.amount=Betrag
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 4b3f344c3ab1dd5519c0726e74629b82a09bb966..1254f6fbfa663e021d11850d384639332d896596 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -16,7 +16,6 @@ title.incomes=Incomes
 title.income=Income
 title.payments=Payments
 title.payment=Payment
-title.categories=Categories
 title.category=Category
 title.category.budgets=Consumption by categories
 title.amount=Amount
diff --git a/src/main/resources/templates/categories/categories.ftl b/src/main/resources/templates/categories/categories.ftl
index 46ae1847b4cdc59ae3851af4af2742bfc4368935..6f335b4e03d06ca60341ed6a05d5643335c33c40 100644
--- a/src/main/resources/templates/categories/categories.ftl
+++ b/src/main/resources/templates/categories/categories.ftl
@@ -13,7 +13,7 @@
             <div class="card main-card">
                 <div class="container">
                     <div class="section center-align">
-                        <div class="grey-text text-darken-4 headline">${locale.getString("title.categories")}</div>
+                        <div class="grey-text text-darken-4 headline">${locale.getString("menu.categories")}</div>
                     </div>
                 </div>
                 <br>
diff --git a/src/main/resources/templates/payments/payments.ftl b/src/main/resources/templates/payments/payments.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..b87946021120497a29d03489a2b0fc663d6f2945
--- /dev/null
+++ b/src/main/resources/templates/payments/payments.ftl
@@ -0,0 +1,67 @@
+<html>
+    <head>
+        <#import "../header.ftl" as header>
+        <@header.header/>
+        <link type="text/css" rel="stylesheet" href="/css/categories.css"/>
+        <#assign locale = localization["tools.Localization"]>
+    </head>
+    <body class="budgetmaster-blue-light">
+        <#import "../navbar.ftl" as navbar>
+        <@navbar.navbar "payments"/>
+
+        <main>
+            <div class="card main-card">
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="grey-text text-darken-4 headline">${locale.getString("menu.payments")}</div>
+                    </div>
+                </div>
+                <br>
+                <div class="center-align"><a href="/categories/newCategory" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">add</i>${locale.getString("title.category.new")}</a></div>
+                <br>
+                <div class="container">
+                    <table class="bordered">
+                        <#list payments as payment>
+                        <tr>
+                            <td>
+                                <div class="category-circle" style="background-color: ${payment.category.color}">
+                                    <span style="color: ${payment.category.getAppropriateTextColor()}">
+                                        ${payment.category.name?capitalize[0]}
+                                    </span>
+                                </div>
+                            </td>
+                            <td>${payment.name}</td>
+                            <td>
+                                <a href="/payments/${payment.ID}/edit" class="btn-flat no-padding"><i class="material-icons left">edit</i></a>
+                                <#if (payment.category.type.name() != "REST")>
+                                    <a href="/payments/${payment.ID}/requestDelete" class="btn-flat no-padding"><i class="material-icons left">delete</i></a>
+                                </#if>
+                            </td>
+                        </tr>
+                        </#list>
+                    </table>
+                </div>
+            </div>
+
+            <#--<#if currentCategory??>-->
+                <#--<!-- confirm delete modal &ndash;&gt;-->
+                <#--<div id="modalConfirmDelete" class="modal">-->
+                    <#--<div class="modal-content">-->
+                        <#--<h4>Kategorie löschen</h4>-->
+                        <#--<p>Möchtest du die Kategorie "${currentCategory.name}" wirklich löschen?</p>-->
+                    <#--</div>-->
+                    <#--<div class="modal-footer">-->
+                        <#--<a href="/categories" class="modal-action modal-close waves-effect waves-red btn-flat ">Abbrechen</a>-->
+                        <#--<a href="/categories/${currentCategory.ID}/delete" class="modal-action modal-close waves-effect waves-green btn-flat ">Löschen</a>-->
+                    <#--</div>-->
+                <#--</div>-->
+            <#--</#if>-->
+        </main>
+
+        <!--  Scripts-->
+        <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
+        <script src="/js/main.js"></script>
+        <#--<script src="/js/categories.js"></script>-->
+    </body>
+</html>
\ No newline at end of file