diff --git a/WarpDrinkApp/app/app.iml b/WarpDrinkApp/app/app.iml
index 4fefdc2fca88c2f45b961f7d6ef8e6a958aae205..96e0f1d40326d10448d188cd8e4dc17638cefbd1 100644
--- a/WarpDrinkApp/app/app.iml
+++ b/WarpDrinkApp/app/app.iml
@@ -92,10 +92,10 @@
     <orderEntry type="library" exported="" name="converter-gson-2.0.0-beta2" level="project" />
     <orderEntry type="library" exported="" name="jackson-databind-2.0.1" level="project" />
     <orderEntry type="library" exported="" name="jackson-annotations-2.0.1" level="project" />
-    <orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
     <orderEntry type="library" exported="" name="okhttp-2.7.5" level="project" />
-    <orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
+    <orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
     <orderEntry type="library" exported="" name="gson-2.7" level="project" />
+    <orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
     <orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
     <orderEntry type="library" exported="" name="spring-android-core-1.0.1.RELEASE" level="project" />
     <orderEntry type="library" exported="" name="codepath-utils" level="project" />
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
index 7ed3ff00bd05883b2bcaa665ad48b98dff1d5e20..3e879c3cbf8997176386c916cbac37b03f64270e 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
@@ -109,7 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
             case R.id.action_learn_card_id:
                 if (this.manager.getCurrentUser() != null){
                     new AlertDialog.Builder(this)
-                            .setTitle(this.getResources().getString(R.string.confirm_payment_title))
+                            .setTitle(this.getResources().getString(R.string.confirm_learn_card))
                             .setMessage("Bitte die Karte vorhalten und nach dem Ton auf ok drücken.")
                             .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int which) {
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java
index 0789d59bf43ea55091a827d5dacdbe985fe06ca0..9a960e846fd5afb96ce9df1c88bb05cbb936ea07 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java
@@ -4,6 +4,7 @@ package ms.itsecteam.warpdrink.data;
 import java.util.List;
 
 import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
+import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
 import ms.itsecteam.warpdrink.data.models.rest.RestUser;
 import retrofit.Call;
 import retrofit.http.Body;
@@ -29,4 +30,6 @@ public interface RestService {
     @GET("products/")
     Call<List<RestProduct>> getAllProducts();
 
+    @PUT("transaction/{userid}/")
+    Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction);
 }
\ No newline at end of file
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java
index 4b510927e570375fb33343dfecf46291b7b0af6c..d6c2445fdf9564e43ff5340e7ba523f1d14c1590 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java
@@ -58,6 +58,7 @@ public class SQLiteService {
         for (RestProduct anU : body) {
             Product prod = anU.toLocalProduct();
             prod.save();
+            Log.d("HALLO",String.valueOf(prod.getPid()));
             ret_val.add(prod);
         }
 
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java
index 2613bf7f2c60536f105789f67c68b40bc5447f91..c3f8cfcf88a9eb814322f0ebed5440700e342e7a 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java
@@ -1,35 +1,37 @@
 package ms.itsecteam.warpdrink.data.models.rest;
 
+import android.util.Log;
+
 import ms.itsecteam.warpdrink.data.models.local.Product;
 import ms.itsecteam.warpdrink.data.models.local.User;
 
 public class RestProduct {
 
 
-    private int pid;
+    private int id;
     private String name;
     private String category;
-    private Float price;
-    private int count;
+    private Float price_vk;
+    private int stock_count;
 
     public RestProduct() {
         super();
     }
 
-    public RestProduct(int pid, String name, String category, Float price, int count) {
-        this.pid = pid;
+    public RestProduct(int id, String name, String category, Float price_vk, int stock_count) {
+        this.id = id;
         this.name = name;
         this.category = category;
-        this.price = price;
-        this.count = count;
+        this.price_vk = price_vk;
+        this.stock_count = stock_count;
     }
 
-    public int getPid() {
-        return pid;
+    public int getId() {
+        return this.id;
     }
 
-    public void setPid(int pid) {
-        this.pid = pid;
+    public void setId(int id) {
+        this.id = id;
     }
 
     public String getName() {
@@ -49,34 +51,34 @@ public class RestProduct {
     }
 
     public Float getPrice() {
-        return price;
+        return price_vk;
     }
 
     public void setPrice(Float price) {
-        this.price = price;
+        this.price_vk = price_vk;
     }
 
     public int getCount() {
-        return count;
+        return stock_count;
     }
 
-    public void setCount(int count) {
-        this.count = count;
+    public void setCount(int stock_count) {
+        this.stock_count = stock_count;
     }
 
     public Product toLocalProduct() {
         Product p = new Product();
-        p.setPid(this.pid);
+        p.setPid(this.id);
         p.setName(this.name);
         p.setCategory(this.category);
-        p.setPrice(this.price);
-        p.setCount(this.count);
+        p.setPrice(this.price_vk);
+        p.setCount(this.stock_count);
         return p;
     }
 
     public static RestProduct fromLocalProduct(Product product) {
         RestProduct restProduct = new RestProduct();
-        restProduct.setPid(product.getPid());
+        restProduct.setId(product.getPid());
         restProduct.setName(product.getName());
         restProduct.setCategory(product.getCategory());
         restProduct.setCount(product.getCount());
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java
new file mode 100644
index 0000000000000000000000000000000000000000..97db60eac4e61252cfba285a92d8a082eb053d95
--- /dev/null
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java
@@ -0,0 +1,58 @@
+package ms.itsecteam.warpdrink.data.models.rest;
+
+public class RestTransaction {
+
+    private int tid;
+    private int trans_type;
+    private RestProduct product;
+    private double amount;
+    private boolean cash_paid;
+
+    public RestTransaction() {
+        super();
+    }
+
+    public RestTransaction(int tid, int trans_type, RestProduct product, double amount, boolean cash_paid) {
+        this.tid = tid;
+        this.trans_type = trans_type;
+        this.product = product;
+        this.amount = amount;
+        this.cash_paid = cash_paid;
+    }
+
+    public int getTid() {
+        return tid;
+    }
+
+    public int getTrans_type() {
+        return trans_type;
+    }
+
+    public void setTrans_type(int trans_type) {
+        this.trans_type = trans_type;
+    }
+
+    public RestProduct getProduct() {
+        return product;
+    }
+
+    public void setProduct(RestProduct product) {
+        this.product = product;
+    }
+
+    public double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(double amount) {
+        this.amount = amount;
+    }
+
+    public boolean isCash_paid() {
+        return cash_paid;
+    }
+
+    public void setCash_paid(boolean cash_paid) {
+        this.cash_paid = cash_paid;
+    }
+}
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java
index b517a9ffcbad6b67b3829d9bfb5eef6d072b618c..e0cc8ba19c31900693310afb79168b1511b092b4 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java
@@ -37,6 +37,7 @@ public class NewUserDialog extends Dialog implements
 
     @Override
     public void onClick(View v) {
+        /*
         switch (v.getId()) {
             case R.id.btnAddUser:
                 String username = this.txtUsername.getText().toString();
@@ -54,5 +55,6 @@ public class NewUserDialog extends Dialog implements
             default:
                 break;
         }
+        */
     }
 }
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java
index e660d3bfd669c0534b003768202f30ae3a790123..3ad51c4b76a08d5eff8651c2fd0acb207e1f9242 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java
@@ -2,8 +2,14 @@ package ms.itsecteam.warpdrink.manager;
 
 import android.util.Log;
 
+import java.io.IOException;
+import java.util.ArrayList;
+
 import ms.itsecteam.warpdrink.data.models.local.User;
+import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
+import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
 import ms.itsecteam.warpdrink.data.models.rest.RestUser;
+import ms.itsecteam.warpdrink.orderList.Order;
 import retrofit.Callback;
 import retrofit.Response;
 import retrofit.Retrofit;
@@ -11,7 +17,7 @@ import retrofit.Retrofit;
 public class DataManager {
     private User currentUser;
     private double totalAmount;
-
+    private ArrayList<Order> orderList;
     private static DataManager ourInstance = new DataManager();
     private String lastCardId;
 
@@ -20,6 +26,7 @@ public class DataManager {
     }
 
     private DataManager() {
+        this.orderList = new ArrayList<Order>();
     }
 
     public void saveCurrentUser() {
@@ -39,13 +46,31 @@ public class DataManager {
 
 
     public void performPayment() {
+        for (Order order:this.orderList) {
+            RestTransaction transaction = new RestTransaction();
+            transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct()));
+            transaction.setTrans_type(2);
+            MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() {
+                @Override
+                public void onResponse(Response<Void> response, Retrofit retrofit) {
+
+                }
+
+                @Override
+                public void onFailure(Throwable t) {
+                    Log.d("REST", t.getMessage());
+                }
+            });
+        }
         this.currentUser.setCredit(this.currentUser.getCredit()-this.totalAmount);
-        this.saveCurrentUser();
+        this.currentUser.save();
         this.totalAmount = 0.0;
     }
 
     public void clearCurrentUser() {
         this.currentUser = null;
+        this.totalAmount = 0.0;
+        this.orderList = new ArrayList<Order>();
     }
 
     public User getCurrentUser() {
@@ -60,10 +85,14 @@ public class DataManager {
         return totalAmount;
     }
 
-    public void addToTotalAmount(double value) {
-        this.totalAmount += value;
+    public void addOrder(Order order) {
+        this.orderList.add(order);
+        this.totalAmount += order.getProduct().getPrice();
+    }
+    public void removeOrder(Order order) {
+        this.orderList.remove(order);
+        this.totalAmount -= order.getProduct().getPrice();
     }
-
     public void setTotalAmount(double totalAmount) {
         this.totalAmount = totalAmount;
     }
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java
index 8d445661da6a11a4cc7fff539113976cdef6872c..f1ba28eb72f7e00eb8fa9de37a740546ea6a2410 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java
@@ -13,6 +13,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product;
 import ms.itsecteam.warpdrink.data.models.local.User;
 import ms.itsecteam.warpdrink.data.RestService;
 import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
+import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
 import ms.itsecteam.warpdrink.data.models.rest.RestUser;
 import ms.itsecteam.warpdrink.orderList.Order;
 import retrofit.Callback;
@@ -43,7 +44,8 @@ public class MainManager {
 
     private RestService createRestService() {
         Retrofit retrofit = new Retrofit.Builder()
-                .baseUrl("https://infra-test.warpzone.ms/api/")
+                .baseUrl("http://10.0.1.134:8000/api/")
+                //.baseUrl("https://infra-test.warpzone.ms/api/")
                // .baseUrl("http://10.0.2.92:8000/api/")
                 .addConverterFactory(GsonConverterFactory.create())
                 .build();
@@ -92,7 +94,7 @@ public class MainManager {
         });
 
     }
-
+/**
     public boolean addUser(String name) {
         Log.d("USER", "Start");
          if(User.getByName(name) == null) {
@@ -115,7 +117,7 @@ public class MainManager {
          }
         return false;
     }
-
+**/
     public void setCurrentUser(User user) {
         if (user != null) {
             this.dataManager.setCurrentUser(user);
@@ -131,22 +133,47 @@ public class MainManager {
         this.uiManager.clearCurrentUser();
     }
 
-    public void addOrder(Product product) {
-        DataManager.getInstance().addToTotalAmount(product.getPrice());
+    public void addOrder(Order order) {
+        DataManager.getInstance().addOrder(order);
         this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
     }
 
     public void removeOrder(Order order) {
-        DataManager.getInstance().addToTotalAmount((-1)*order.getProduct().getPrice());
+        DataManager.getInstance().removeOrder(order);
         this.uiManager.removeOrder(order);
         this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
 
     }
     public void chargeAmount(double amount) {
         User currentUser = this.dataManager.getCurrentUser();
-        currentUser.setCredit(currentUser.getCredit() + amount);
-        this.dataManager.saveCurrentUser();
-        MainManager.getInstance().uiManager.refreshCreditTextView(currentUser.getCredit());
+        RestTransaction t = new RestTransaction();
+        t.setAmount(amount);
+        t.setTrans_type(1);
+        t.setCash_paid(true);
+        MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), t).enqueue(new Callback<Void>() {
+            @Override
+            public void onResponse(Response<Void> response, Retrofit retrofit) {
+            }
+
+            @Override
+            public void onFailure(Throwable t) {
+                Log.d("REST", t.getMessage());
+            }
+        });
+        MainManager.getInstance().getRestService().getSingleUser(currentUser.getUserid()).enqueue(new Callback<RestUser>() {
+            @Override
+            public void onResponse(Response<RestUser> response, Retrofit retrofit) {
+                DataManager.getInstance().getCurrentUser().setCredit(response.body().getCredit());
+                MainManager.getInstance().uiManager.refreshCreditTextView(DataManager.getInstance().getCurrentUser().getCredit());
+            }
+
+            @Override
+            public void onFailure(Throwable t) {
+                Log.d("REST", t.getMessage());
+            }
+        });
+
+
     }
     public void performPayment() {
         User user = DataManager.getInstance().getCurrentUser();
@@ -194,7 +221,7 @@ public class MainManager {
 
         if (card_id != null) {
             new AlertDialog.Builder(this.mainActivity)
-                .setTitle(this.mainActivity.getResources().getString(R.string.confirm_payment_title))
+                .setTitle(this.mainActivity.getResources().getString(R.string.confirm_learn_card))
                 .setMessage("Die karten id "+card_id+" wird dem Nutzer "+this.getCurrentUser()+" hinzugefügt")
                 .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java
index 20d6c50a5e126b25d6a86a1444d5b3a39af38c64..f3177ccc612dd51acf5151c313d22247f7160a44 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java
@@ -182,8 +182,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap
         switch (parent.getId()) {
             case R.id.lstProduct:
                 Product p = this.lstProductAdapter.getItem(position);
+                Order order = new Order(p);
                 this.lstOrderedAdapter.insert(new Order(p), this.lstOrderedAdapter.getCount());
-                MainManager.getInstance().addOrder(p);
+                MainManager.getInstance().addOrder(order);
                 break;
             case -1:
                 MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position));
diff --git a/WarpDrinkApp/app/src/main/res/values/strings.xml b/WarpDrinkApp/app/src/main/res/values/strings.xml
index 96343036826a2e7e39b5302ef1df9b31eed3856c..3eaa85ded1b5eb00c68e40601fca6e3897bcac7f 100644
--- a/WarpDrinkApp/app/src/main/res/values/strings.xml
+++ b/WarpDrinkApp/app/src/main/res/values/strings.xml
@@ -18,6 +18,7 @@
     <string name="btnLogout">Logout</string>
     <string name="please_charge">Bitte lade dein Konto auf!</string>
     <string name="confirm_payment_title">Bezahlung bestaetigen</string>
+    <string name="confirm_learn_card">Karte anlernen</string>
     <string name="confirm_payment">Willst du wirklich %1$,.2f Euro bezahlen?</string>
     <string name="credit">Guthaben: %1$,.2f Euro</string>
     <string name="total">Gesamt: %1$,.2f Euro</string>