diff --git a/store/backend.py b/store/backend.py
index 73996e8daad8cdcb492e80da0e5d3708d1e45e79..b8ad6ec9c1c3fe8996ac74965574328a217fe700 100644
--- a/store/backend.py
+++ b/store/backend.py
@@ -321,3 +321,36 @@ class TransferLogic:
         if max_receivers >= 0:
             transfers = transfers[:max_receivers]
         return list(transfers)
+
+    """
+    Performs the transfer routine where a sender sends money to a receiver.
+    @param user_id: id of the user that wants to send money
+    @param receiver_id: id of the user that should get the money
+    @param amount: amount of money to be sent
+    @param token: unique token got by TokenLogic's getToken
+    """
+    @staticmethod
+    def transfer(user_id, receiver_id, amount, token):
+        sender = list(User.objects.filter(id=user_id))[0]
+        receiver = list(User.objects.filter(id=receiver_id))[0]
+        try:
+            with transfer.atomic():
+                transfer_id = TransferLogic.__createTransferTuple(sender, receiver, amount, token)
+                TransferLogic.__updateSenderMoney(sender, amount)
+                TransferLogic.__updateReceiverMoney(receiver, amount)
+        except IntegrityError:
+            return list(Transfers.objects.filter(token=token))[0]
+        return transfer_id
+
+
+    def __createTransferTuple(sender, receiver, amount, token):
+        transfer = Transfer(sender=sender, receiver=receiver, amount=amount, token=token, annulated=False)
+        transfer.save()
+        return transfer.id
+
+    def __updateSenderMoney(sender, amount):
+        sender.updateMoney((-1) * amount)
+
+    def __updateReceiverMoney(receiver, amount):
+        receiver.updateMoney(amount) 
+
diff --git a/store/store_config.py b/store/store_config.py
index b781ba6289d91f7aaab58659951a1320ae8cdcf6..6fdad4743b8283ecfb9e9cc59f76a2ac4d04c827 100644
--- a/store/store_config.py
+++ b/store/store_config.py
@@ -10,6 +10,8 @@ T_USERS_LOGIN_D: number of days in the past that are used as time intervall limi
 N_LAST_CHARGES: number of charges that should be shown in 'Letzte Aufladungen'. A negative number means 'all users are
     selected'
 T_ANNULLABLE_CHARGE_M: time of minutes a user has for a charge to undo it
+N_TRANSFER_RECEIVERS: number of receivers that should be shown in 'alle Überweisungen'. A negative value means 'all
+users are shown'
 """
 KAFFEEKASSE = {'N_LAST_BOUGHT_PRODUCTS': 5,
                'T_LAST_BOUGHT_PRODUCTS_D': 30,
@@ -20,4 +22,5 @@ KAFFEEKASSE = {'N_LAST_BOUGHT_PRODUCTS': 5,
                'T_USERS_LOGIN_D': 356,
                'N_LAST_CHARGES': 10,
                'T_ANNULLABLE_CHARGE_M': 60,
+               'N_TRANSFER_RECEIVERS': -1,
                }