diff --git a/pass/app/Payment.js b/pass/app/Payment.js
index 16be80e39ed1e63d5d265ca73377e38ed8e4c707..13f48adf87900671c5fe74564cd0220f68d9222d 100644
--- a/pass/app/Payment.js
+++ b/pass/app/Payment.js
@@ -115,6 +115,14 @@ class Payment {
    * @returns {boolean}
    */
   isRefundAllowed() {
+    if (!config.get("app.zammad.refund_enabled")) {
+      return false;
+    }
+    // Check if Payment is older than 30 days
+    let minDate = dayjs().add(-30, "days");
+    if (this.created_at.isBefore(minDate)) {
+      return false;
+    }
     return this.payment_processor.isRefundSupported();
   }
 
diff --git a/pass/app/Zammad.js b/pass/app/Zammad.js
index c4f693a0790c19f26bbf4e06919a26c467f02811..cc7dc9ea3e3c675244d1f813bafa0176e2f2a5bd 100644
--- a/pass/app/Zammad.js
+++ b/pass/app/Zammad.js
@@ -14,7 +14,7 @@ class Zammad {
     static async CREATE_NOTIFICATION(token_amount, price, payment_method) {
         // Check if notifications are turned on
         try {
-            if (config.get("app.zammad.enabled")) {
+            if (config.get("app.zammad.notification_enabled")) {
                 let zammad_url = config.get("app.zammad.url") + "/api/v1/ticket_articles";
 
                 let zammad_data = {
@@ -48,6 +48,55 @@ class Zammad {
             return false;
         }
     }
+
+    /**
+ * Creates a notification in the configured Zammad instance
+ * 
+ * @param {string} message
+ * 
+ * @returns {Promise<boolean>}
+ */
+    static async CREATE_REFUND_TICKET(message, payment_reference_id) {
+        // Check if notifications are turned on
+        try {
+            if (config.get("app.zammad.refund_enabled")) {
+                let zammad_url = config.get("app.zammad.url") + "/api/v1/tickets";
+                let subject = `Erstattung (${payment_reference_id})`;
+                let zammad_data = {
+                    "title": subject,
+                    "group": "Tokens",
+                    "customer_id": "guess:noreply@metager.de",
+                    "preferences": { "channel_id": 3 },
+                    "article": {
+                        "type": "note",
+                        "sender": "Customer",
+                        "subject": subject,
+                        "body": message,
+                        "content_type": "text/html",
+                        "internal": false
+                    }
+                }
+                return fetch(zammad_url, {
+                    method: "POST",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "Authorization": `Token ${config.get("app.zammad.api_key")}`
+                    },
+                    body: JSON.stringify(zammad_data)
+                }).then(response => {
+                    return true;
+                }).catch(e => {
+                    console.error(e);
+                    return false;
+                })
+            } else {
+                return true;
+            }
+        } catch (e) {
+            console.error(e);
+            return false;
+        }
+    }
 }
 
 module.exports = Zammad;
\ No newline at end of file
diff --git a/pass/config/default.json b/pass/config/default.json
index 9c6bac7411c61f32037a8bf4d888cf29a5ef7a8b..ab0ce522288a265a839e80ace8bd892517722348 100644
--- a/pass/config/default.json
+++ b/pass/config/default.json
@@ -23,7 +23,8 @@
       "api_key": "<OSTICKET_API_KEY>"
     },
     "zammad": {
-      "enabled": false,
+      "notification_enabled": false,
+      "refund_enabled": true,
       "url": "<ZAMMAD_URL>",
       "api_key": "<ZAMMAD_API_KEY>",
       "notification_ticket_id": "0"
diff --git a/pass/routes/orders/refund.js b/pass/routes/orders/refund.js
index a8ad077504935441bb7c1646e9baab5d8432da16..714e38eee3c2905cea1222c747d7d4c05eab8597 100644
--- a/pass/routes/orders/refund.js
+++ b/pass/routes/orders/refund.js
@@ -3,6 +3,7 @@ var router = express.Router({ mergeParams: true });
 
 const config = require("config");
 const Key = require("../../app/Key");
+const Zammad = require("../../app/Zammad");
 
 // Base URL: /key/:key/orders/:order/refund
 router.use("/", (req, res, next) => {
@@ -44,36 +45,16 @@ router.post("/", (req, res, next) => {
 
     let message = ejs.render(template, req.data);
 
-    // No validation errors. Try to create a new Ticket
-    return fetch(`${config.get("app.osticket.url")}/api/tickets.json`, {
-      method: "post",
-      headers: {
-        "X-API-Key": config.get("app.osticket.api_key"),
-        "Content-Type": "application/json",
-      },
-      body: JSON.stringify({
-        alert: true,
-        autorespond: false,
-        source: "API",
-        name: "Metzgermeister Unbekannt",
-        email: "no-reply@metager.de",
-        subject: `MetaGer Schlüssel: Erstattung (${req.data.order.payment.public_id})`,
-        message: `data:text/html;charset=utf-8,${message}`,
-        topicId: 12, // ToDo change topic for english autoresponder
-      }),
+    return Zammad.CREATE_REFUND_TICKET(message, req.data.order.payment.public_id).then(success => {
+      if (success) {
+        return Key.GET_KEY(req.data.key.key.get_key(), true);
+      } else {
+        return Promise.reject("Fehler beim Erstellen der Benachrichtigung,");
+      }
+    }).then((key) => {
+      key.discharge_key(req.data.order.refund.count, req.data.order.payment_reference.id);
+      return key.save();
     })
-      .then(async (response) => {
-        if (response.status != 201) {
-          console.error(await response.text());
-          return Promise.reject("Fehler beim Erstellen der Benachrichtigung,");
-        } else {
-          return Key.GET_KEY(req.data.key.key.get_key(), true);
-        }
-      })
-      .then((key) => {
-        key.discharge_key(req.data.order.refund.count, req.data.order.payment_reference.id);
-        return key.save();
-      })
       .then((new_key) => {
         req.data.key.key = new_key;
         req.data.order.refund.success = true;