diff --git a/src/api/class/include/class/class_cb.hpp b/src/api/class/include/class/class_cb.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..c7e7f79fac69028cb949d0761124f54c4d1585c0
--- /dev/null
+++ b/src/api/class/include/class/class_cb.hpp
@@ -0,0 +1,115 @@
+/**
+ * @file   class_cb.hpp
+ * @author Alfonso Dominguez <alfonso.dominguez@tecnalia.com> and Leire Querejeta Lomas <leire.querejeta@tecnalia.com>
+ * @date   2020
+ *
+ * Copyright 2020 Tecnalia Research & Innovation.
+ * Distributed under the GNU GPL v3.
+ * For full terms see https://www.gnu.org/licenses/gpl.txt
+ *
+ * @brief Callbacks for Class
+ */
+
+#pragma once
+#include <string>
+
+//! Abstract class (interface) for receiving callbacks from device.
+class ClassCallback
+{
+public:
+
+    /*!
+    \brief Handle for battery status callbacks
+    \param battery Received battery percentage
+    */
+    virtual void batteryHandle(double battery) = 0;
+
+    /*!
+    \brief Handle for buzzer status callbacks
+    \param buzzerstatus Received buzzer status message
+    */
+    virtual void buzzerHandle(std::string buzzerstatus) = 0;
+
+    /*!
+    \brief Handle for device name callbacks
+    \param device Received device name
+    */
+    virtual void deviceNameHandle(std::string device) = 0;
+
+    /*!
+    \brief Handle for frequncy callbacks
+    \param frequencystatus Received frequency
+    */
+    virtual void frequencyHandle(std::string frequencystatus) = 0;
+
+    /*!
+    \brief Handle for firmware callbacks
+    \param firmware Received firmware version
+    */
+    virtual void firmwareHandle(std::string firmware) = 0;
+
+    /*!
+    \brief Handle for hardware callbacks
+    \param hardware Received hardware version
+    */
+    virtual void hardwareHandle(std::string hardware) = 0;
+
+    /*!
+    \brief Handle for high voltage callbacks
+    \param hvstatus Received high voltage status
+    */
+    virtual void hvHandle(std::string hvstatus) = 0;
+
+    /*!
+    \brief Handle for interval callbacks
+    \param intervalstatus Received stimulation inter pulses interval
+    */
+    virtual void intervalHandle(std::string intervalstatus) = 0;
+
+    /*!
+    \brief Handle for logevents callbacks
+    \param logevents Received logevents message
+    */
+    virtual void logeventsHandle(std::string logevents) = 0;
+
+    /*!
+    \brief Handle for pattern callbacks
+    \param patternstatus Received pattern message
+    */
+    virtual void patternHandle(std::string patternstatus) = 0;
+
+    /*!
+    \brief Handle for rtc callbacks
+    \param rtcstatus Received rtc values
+    */
+    virtual void rtcHandle(std::string rtcstatus) = 0;
+
+    /*!
+    \brief Handle for sd function callbacks
+    \param sdfunctionstatus Received name of the sd card folder where patterns are saved
+    */
+    virtual void sdfunctionHandle(std::string sdfunctionstatus) = 0;
+
+    /*!
+    \brief Handle for sd user name callbacks
+    \param sdunamestatus Received name of the sd card folder where the folder containing patterns is saved
+    */
+    virtual void sdunameHandle(std::string sdunamestatus) = 0;
+
+    /*!
+    \brief Handle for tic callbacks
+    \param tic Received tic message
+    */
+    virtual void ticHandle(std::string tic) = 0;
+
+    /*!
+    \brief Handle for turning off callbacks
+    */
+    virtual void turnOffHandle() = 0;
+
+    /*!
+    \brief Handle for virtual electrodes callbacks
+    \param velecstatus Received virtual electrode message
+    */
+    virtual void velecstatusHandle(std::string velecstatus) = 0;
+};
\ No newline at end of file