diff --git a/ekms/etsiqkdnclient/etsi-qkdn-client.go b/ekms/etsiqkdnclient/etsi-qkdn-client.go
index 177efe2b21f72b00ad4602c0ba8a974b9e124634..93805727647b1921cda1268eaac46b0bf8d8354e 100644
--- a/ekms/etsiqkdnclient/etsi-qkdn-client.go
+++ b/ekms/etsiqkdnclient/etsi-qkdn-client.go
@@ -6,6 +6,7 @@ import (
 
 	log "github.com/sirupsen/logrus"
 
+	"code.fbi.h-da.de/danet/quant/ekms/internal/akmCkmsInterface"
 	"code.fbi.h-da.de/danet/quant/ekms/internal/kms"
 	"github.com/google/uuid"
 )
@@ -126,6 +127,7 @@ func NewEkmsClient(bootInfo *Config) (myInfo *ekmsInfo) {
 func emulatedKMS(config *Config, id uuid.UUID, peerChannel chan string) *kms.EKMS {
 	// Attach to eKMS
 	emuKMS := kms.NewEKMS(config.Name, id, os.Stdout, log.TraceLevel, false, config.InterComAddr)
+	akmsCkmsReceiver := akmCkmsInterface.NewAKMSReceiver("4567", emuKMS)
 
 	var qm kms.QuantumModule
 	var err error
@@ -167,8 +169,9 @@ func emulatedKMS(config *Config, id uuid.UUID, peerChannel chan string) *kms.EKM
 		}
 	}
 
-	// Start the SDN/management and key retrieval interface
+	// Start the SDN/management, key retrieval interface and akms server
 	go kms.StartETSI(config.GRPCAddr, emuKMS)
+	go akmsCkmsReceiver.Serve()
 
 	return emuKMS
 }
diff --git a/ekms/internal/akmCkmsInterface/akmsCkmsServer.go b/ekms/internal/akmCkmsInterface/akmsCkmsServer.go
new file mode 100644
index 0000000000000000000000000000000000000000..563aa1766da9c69419c19fdf9d9575c0174d0595
--- /dev/null
+++ b/ekms/internal/akmCkmsInterface/akmsCkmsServer.go
@@ -0,0 +1,86 @@
+package akmCkmsInterface
+
+import (
+	"encoding/json"
+	"log"
+	"net/http"
+
+	"code.fbi.h-da.de/danet/quant/ekms/internal/kms"
+)
+
+// Define AKMSReceiver.
+type AKMSReceiver struct {
+	ekms   *kms.EKMS
+	server *http.Server
+}
+
+// create NewAKMSReceiver.
+func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiver {
+	router := http.NewServeMux()
+
+	router.HandleFunc("/ksa_key_req", ksaReqHandler)
+	router.HandleFunc("/notify_incomming_request", notifyIncomingReqHandler)
+
+	server := &http.Server{
+		Addr:    ":" + port,
+		Handler: router,
+	}
+
+	AKMSReceiver := &AKMSReceiver{
+		ekms:   ekms,
+		server: server,
+	}
+
+	return AKMSReceiver
+}
+
+func (akmsReceiver *AKMSReceiver) Serve() {
+	go akmsReceiver.server.ListenAndServe() //nolint:errcheck
+}
+
+type KeyProperties struct {
+	Number    int `json:"number"`
+	KeyLength int `json:"key_length"`
+	Timeout   int `json:"timeout"`
+	TTL       int `json:"TTL"`
+}
+
+type KMSKeyRequest struct {
+	LocalCKMSID   string          `json:"local_CKMS_ID"`
+	RequestID     string          `json:"request_ID"`
+	KeyProperties []KeyProperties `json:"key_properties"`
+}
+
+func ksaReqHandler(w http.ResponseWriter, r *http.Request) {
+	// Parse the request body
+	var req KMSKeyRequest
+	err := json.NewDecoder(r.Body).Decode(&req)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+
+	// Run go routine
+	//ekms.stuff()
+
+	w.WriteHeader(http.StatusNoContent)
+}
+
+type NotifyIncomingRequest struct {
+	RequestID string `json:"request_ID"`
+}
+
+func notifyIncomingReqHandler(w http.ResponseWriter, r *http.Request) {
+	var req NotifyIncomingRequest
+	err := json.NewDecoder(r.Body).Decode(&req)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+
+	// Access the parsed data
+	requestID := req.RequestID
+	log.Printf("Got request with ID: %s. Don't know why but ok.", requestID)
+
+	w.WriteHeader(http.StatusNoContent)
+}
diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go
index 93cdb536663d9427d10517f55b2b3e535e8255e4..1385c5066f3d4377d688648e9ece4a633b58dd55 100644
--- a/ekms/internal/kms/kms.go
+++ b/ekms/internal/kms/kms.go
@@ -53,6 +53,7 @@ type EKMS struct {
 	pbIC.UnimplementedKmsTalkerServer
 	supportedKeyLengths map[BitKeyLength]bool
 	eventBus            *event.EventBus
+	//akmsSender          *http.Server
 }
 
 // Will keep information about the quantum elements that this EKMS is talking to
@@ -99,6 +100,7 @@ func NewEKMS(kmsName string, kmsUUID uuid.UUID, logOutput io.Writer, logLevel lo
 
 	// start the inter communication gRPC server
 	go createdEKMS.startGRPC(interComAddr)
+	//go createdEKMS.akmsSender.ListenAndServe()
 
 	return createdEKMS
 }