diff --git a/server/notification-providers/promosms.js b/server/notification-providers/promosms.js
new file mode 100644
index 0000000..362ef71
--- /dev/null
+++ b/server/notification-providers/promosms.js
@@ -0,0 +1,41 @@
+const NotificationProvider = require("./notification-provider");
+const axios = require("axios");
+
+class PromoSMS extends NotificationProvider {
+
+    name = "promosms";
+
+    async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+        let okMsg = "Sent Successfully.";
+
+        try {
+            let config = {
+                headers: {
+                    "Content-Type": "application/json",
+                    "Authorization": "Basic " + Buffer.from(notification.promosmsLogin + ":" + notification.promosmsPassword).toString('base64'),
+                    "Accept": "text/json",
+                }
+            };
+            let data = {
+                "recipients": [ notification.promosmsPhoneNumber ],
+                //Lets remove non ascii char
+                "text": msg.replace(/[^\x00-\x7F]/g, ""),
+                "type": Number(notification.promosmsSMSType),
+                "sender": notification.promosmsSenderName
+            };
+
+            let resp = await axios.post("https://promosms.com/api/rest/v3_2/sms", data, config);
+
+            if (resp.data.response.status !== 0) {
+                let error = "Something gone wrong. Api returned " + resp.data.response.status + ".";
+                this.throwGeneralAxiosError(error);
+            }
+            
+            return okMsg;
+        } catch (error) {
+            this.throwGeneralAxiosError(error);
+        }
+    }
+}
+
+module.exports = PromoSMS;
diff --git a/server/notification.js b/server/notification.js
index 207e0a3..5b104bf 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -7,6 +7,7 @@ const LunaSea = require("./notification-providers/lunasea");
 const Mattermost = require("./notification-providers/mattermost");
 const Matrix = require("./notification-providers/matrix");
 const Octopush = require("./notification-providers/octopush");
+const PromoSMS = require("./notification-providers/promosms");
 const Pushbullet = require("./notification-providers/pushbullet");
 const Pushover = require("./notification-providers/pushover");
 const Pushy = require("./notification-providers/pushy");
@@ -37,6 +38,7 @@ class Notification {
             new Mattermost(),
             new Matrix(),
             new Octopush(),
+            new PromoSMS(),
             new Pushbullet(),
             new Pushover(),
             new Pushy(),
diff --git a/src/components/notifications/PromoSMS.vue b/src/components/notifications/PromoSMS.vue
new file mode 100644
index 0000000..640360d
--- /dev/null
+++ b/src/components/notifications/PromoSMS.vue
@@ -0,0 +1,39 @@
+<template>
+    <div class="mb-3">
+        <label for="promosms-login" class="form-label">API LOGIN</label>
+        <input id="promosms-login" v-model="$parent.notification.promosmsLogin" type="text" class="form-control" required>
+        <label for="promosms-key" class="form-label">API PASSWORD</label>
+        <HiddenInput id="promosms-key" v-model="$parent.notification.promosmsPassword" :required="true" autocomplete="one-time-code"></HiddenInput>
+    </div>
+    <div class="mb-3">
+        <label for="promosms-type-sms" class="form-label">{{ $t("SMS Type") }}</label>
+        <select id="promosms-type-sms" v-model="$parent.notification.promosmsSMSType" class="form-select">
+            <option value="0">{{ $t("promosmsTypeFlash") }}</option>
+            <option value="1">{{ $t("promosmsTypeEco") }}</option>
+            <option value="2">{{ $t("promosmsTypeFull") }}</option>
+            <option value="3">{{ $t("promosmsTypeSpeed") }}</option>
+        </select>
+        <i18n-t tag="div" keypath="Check PromoSMS prices" class="form-text">
+            <a href="https://promosms.com/cennik/" target="_blank">https://promosms.com/cennik/</a>
+        </i18n-t>
+    </div>
+    <div class="mb-3">
+        <label for="promosms-phone-number" class="form-label">{{ $t("promosmsPhoneNumber") }}</label>
+        <input id="promosms-phone-number" v-model="$parent.notification.promosmsPhoneNumber" type="text" class="form-control" required>
+    </div>
+    <div class="mb-3">
+        <label for="promosms-sender-name" class="form-label">{{ $t("promosmsSMSSender") }}</label>
+        <input id="promosms-sender-name" v-model="$parent.notification.promosmsSenderName" type="text" minlength="3" maxlength="11" class="form-control">
+    </div>
+
+</template>
+
+<script>
+import HiddenInput from "../HiddenInput.vue";
+
+export default {
+    components: {
+        HiddenInput,
+    },
+};
+</script>
diff --git a/src/components/notifications/index.js b/src/components/notifications/index.js
index fab4075..7d70eea 100644
--- a/src/components/notifications/index.js
+++ b/src/components/notifications/index.js
@@ -10,6 +10,7 @@ import Teams from "./Teams.vue";
 import Pushover from "./Pushover.vue";
 import Pushy from "./Pushy.vue";
 import Octopush from "./Octopush.vue";
+import PromoSMS from "./PromoSMS.vue";
 import LunaSea from "./LunaSea.vue";
 import Apprise from "./Apprise.vue";
 import Pushbullet from "./Pushbullet.vue";
@@ -35,6 +36,7 @@ const NotificationFormList = {
     "pushover": Pushover,
     "pushy": Pushy,
     "octopush": Octopush,
+    "promosms": PromoSMS,
     "lunasea": LunaSea,
     "apprise": Apprise,
     "pushbullet": Pushbullet,
diff --git a/src/languages/bg-BG.js b/src/languages/bg-BG.js
index 0e91525..bcf1b57 100644
--- a/src/languages/bg-BG.js
+++ b/src/languages/bg-BG.js
@@ -190,6 +190,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Поддържа 50+ услуги за инвестяване)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js
index ad156ae..66e7cb3 100644
--- a/src/languages/da-DK.js
+++ b/src/languages/da-DK.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index a6cc42b..20beb62 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -191,6 +191,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/en.js b/src/languages/en.js
index 2190400..2ce8f46 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -235,6 +235,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
@@ -273,5 +274,11 @@ export default {
     aboutIconURL: "You can provide a link to a picture in \"Icon URL\" to override the default profile picture. Will not be used if Icon Emoji is set.",
     aboutMattermostChannelName: "You can override the default channel that webhook posts to by entering the channel name into \"Channel Name\" field. This needs to be enabled in Mattermost webhook settings. Ex: #other-channel",
     "matrix": "Matrix",
+    promosmsTypeEco: "SMS ECO - cheap but slow and often overloaded. Limited only to Polish recipients.",
+    promosmsTypeFlash: "SMS FLASH - Message will automatically show on recipient device. Limited only to Polish recipients.",
+    promosmsTypeFull: "SMS FULL - Premium tier of SMS, You can use Your Sender Name (You need to register name first). Reliable for alerts.",
+    promosmsTypeFull: "SMS SPEED - Highest priority in system. Very quick and reliable but costly (about twice of SMS FULL price).",
+    promosmsPhoneNumber: "Phone number (for Polish recipient You can skip area codes)",
+    promosmsSMSSender: "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS",
     // End notification form
 };
diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js
index 2558a68..3fa2073 100644
--- a/src/languages/es-ES.js
+++ b/src/languages/es-ES.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/et-EE.js b/src/languages/et-EE.js
index a6be823..52439f5 100644
--- a/src/languages/et-EE.js
+++ b/src/languages/et-EE.js
@@ -191,6 +191,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (vahendab üle 65 teavitusteenust)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/fa.js b/src/languages/fa.js
index d686488..7eed151 100644
--- a/src/languages/fa.js
+++ b/src/languages/fa.js
@@ -199,6 +199,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js
index 6ef69f0..9f234f7 100644
--- a/src/languages/fr-FR.js
+++ b/src/languages/fr-FR.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/hu.js b/src/languages/hu.js
index 039cf67..47ac72d 100644
--- a/src/languages/hu.js
+++ b/src/languages/hu.js
@@ -190,6 +190,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js
index b318c97..5ddc414 100644
--- a/src/languages/it-IT.js
+++ b/src/languages/it-IT.js
@@ -191,6 +191,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/ja.js b/src/languages/ja.js
index 5042d18..f96028e 100644
--- a/src/languages/ja.js
+++ b/src/languages/ja.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js
index 6cb86ed..9d5cb5b 100644
--- a/src/languages/ko-KR.js
+++ b/src/languages/ko-KR.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 1303a09..5c32255 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/pl.js b/src/languages/pl.js
index 9a079a9..05101c6 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (obsługuje 50+ usług powiadamiania)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/pt-BR.js b/src/languages/pt-BR.js
index 201314b..70647fd 100644
--- a/src/languages/pt-BR.js
+++ b/src/languages/pt-BR.js
@@ -191,6 +191,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
index f466ff7..2dd3eaf 100644
--- a/src/languages/ru-RU.js
+++ b/src/languages/ru-RU.js
@@ -196,6 +196,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js
index f249f56..9e66aa5 100644
--- a/src/languages/sr-latn.js
+++ b/src/languages/sr-latn.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/sr.js b/src/languages/sr.js
index 8ea651b..df8e989 100644
--- a/src/languages/sr.js
+++ b/src/languages/sr.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 997d94a..e29d355 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js
index 614ab0e..8c404a7 100644
--- a/src/languages/tr-TR.js
+++ b/src/languages/tr-TR.js
@@ -191,6 +191,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index 65e8909..40db94e 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (Support 50+ Notification services)",
     pushbullet: "Pushbullet",
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index ea81f7f..7f5e225 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -192,6 +192,7 @@ export default {
     pushover: "Pushover",
     pushy: "Pushy",
     octopush: "Octopush",
+    promosms: "PromoSMS",
     lunasea: "LunaSea",
     apprise: "Apprise (支援 50 多種通知)",
     pushbullet: "Pushbullet",