diff --git a/src/highlanderticketing/db/db.go b/src/highlanderticketing/db/db.go
index fa6214625dd85ce90a9535f90fb00a70d6b3ffeb..be259014283a8e3a94c5b117956da9415eb60816 100644
--- a/src/highlanderticketing/db/db.go
+++ b/src/highlanderticketing/db/db.go
@@ -18,7 +18,6 @@ const (
 	CONNECTIONSTRING = "mongodb://localhost:27017"
 	DB               = "db_issue_manager"
 	MATCHES          = "col_matches"
-	TRAVEL           = "col_travel"
 	POOL_SIZE        = 10 // Anzahl der Verbindungen im Pool
 )
 
diff --git a/src/highlanderticketing/db/fill_db.go b/src/highlanderticketing/db/fill_db.go
new file mode 100644
index 0000000000000000000000000000000000000000..0939d50c3e93b241e954f8a369cdd5b15f405737
--- /dev/null
+++ b/src/highlanderticketing/db/fill_db.go
@@ -0,0 +1,4 @@
+package db
+
+func Fill_db() {
+}
diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go
index abeebd162ee44d9c076ced7c51310c2501f7b7af..72b034f7e23ef44ee6a039334e4a786aba79a5db 100644
--- a/src/highlanderticketing/handler/order.go
+++ b/src/highlanderticketing/handler/order.go
@@ -1 +1,44 @@
 package handler
+
+import (
+	"encoding/json"
+	"net/http"
+
+	log "github.com/sirupsen/logrus"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service"
+)
+
+func AddMatchOrder(w http.ResponseWriter, r *http.Request) {
+	id, err := getID(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	order, err := getMatchOrder(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	err = service.AddMatchOrder(id, order)
+	if err != nil {
+		log.Errorf("Failure adding donation to campaign with ID %v: %v", id, err)
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
+	sendJson(w, order)
+
+}
+
+func getMatchOrder(r *http.Request) (*model.Order, error) {
+	var order model.Order
+	err := json.NewDecoder(r.Body).Decode(&order)
+	if err != nil {
+		log.Errorf("Can't serialize request body to order struct: %v", err)
+		return nil, err
+	} else {
+		log.Infof("request body seralized to order struct")
+		log.Tracef("body seralized in struct order: %v", order)
+	}
+	return &order, nil
+}
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
index b667c44259b3b0be169532da3b2e1d1e9bfc0ba8..3889c2379f727b7de6d1d1116e6caa2449e51892 100644
--- a/src/highlanderticketing/main.go
+++ b/src/highlanderticketing/main.go
@@ -24,6 +24,7 @@ func main() {
 	router.HandleFunc("/match/{id}", handler.GetMatchByID).Methods("GET")
 	router.HandleFunc("/match/{id}", handler.UpdateMatch).Methods("PUT")
 	router.HandleFunc("/match/{id}", handler.DeleteMatch).Methods("DELETE")
+	router.HandleFunc("/match/{id}/matchorder", handler.AddMatchOrder).Methods("POST")
 	if err := http.ListenAndServe(":8000", router); err != nil {
 		log.Fatal(err)
 	}
diff --git a/src/highlanderticketing/model/match.go b/src/highlanderticketing/model/match.go
index 3d36e57ca41831a0701ff73ded32a9bef38399e5..dd42a149e708afc068b61424f56ed4132389c74b 100644
--- a/src/highlanderticketing/model/match.go
+++ b/src/highlanderticketing/model/match.go
@@ -11,26 +11,9 @@ type Match struct {
 	AvailableTicketAmount int32              `bson:"available_ticket_amount"`
 	AwayMatch             bool               `bson:"away_match"`
 	Location              string             `bson:"location"`
-	Date                  date.Date          `bson:"date"`
-	Travel                Travel             `bson:"travel, omitempty"`
+	Date                  date.Date          `bson:"date, omitempty"`
+	Travel                Travel             `bson:"travel"`
 	Orders                []Order            `bson:"orders"`
 }
 
-/*func calculateAmountDonated(matchID primitive.ObjectID) (int32, error) {
-	collection := client.Database("your_db").Collection("orders")
-	pipeline := []bson.M{
-		{"$match": bson.M{"match_id": matchID}},
-		{"$group": bson.M{"_id": nil, "totalAmount": bson.M{"$sum": "$amount"}}},
-	}
-
-	var result struct {
-		TotalAmount int32 `bson:"totalAmount"`
-	}
-
-	err := collection.Aggregate(context.TODO(), pipeline).Decode(&result)
-	if err != nil {
-		return 0, err
-	}
-
-	return result.TotalAmount, nil
-}*/ // muss nach jedem update , erstellen gemacht werden , funktion anpassen
+// muss nach jedem update , erstellen gemacht werden , funktion anpassen
diff --git a/src/highlanderticketing/model/order.go b/src/highlanderticketing/model/order.go
index 2a8f016fb170170874ad2e27a82cfcf783df0d69..abffa712c9e6ee9066baf93926b8a95d5f2234e2 100644
--- a/src/highlanderticketing/model/order.go
+++ b/src/highlanderticketing/model/order.go
@@ -6,7 +6,7 @@ type Order struct {
 	ID        primitive.ObjectID `bson:"_id, omitempty"`
 	OrderType OrderType          `bson:"order_type"`
 	Amount    int32              `bson:"amount"`
-	User      User               `bson:"user"`
+	User      User               `bson:"user, omitempty"`
 }
 type OrderType string
 
diff --git a/src/highlanderticketing/model/travel.go b/src/highlanderticketing/model/travel.go
index 6ef64c46a7aec2f55ec163ab3f62d1dcf1d5cb34..c04f21be5a5e522d23babb7ee6ca21c9c7e61a28 100644
--- a/src/highlanderticketing/model/travel.go
+++ b/src/highlanderticketing/model/travel.go
@@ -1,11 +1,12 @@
 package model
 
 import (
+	"go.mongodb.org/mongo-driver/bson/primitive"
 	"google.golang.org/genproto/googleapis/type/date"
 )
 
 type Travel struct {
-	ID                  uint
+	ID                  primitive.ObjectID `bson:"_id, omitempty"`
 	TravelType          TravelType
 	InitialSeatAmount   int32
 	AvailableSeatAmount int32
diff --git a/src/highlanderticketing/service/match.go b/src/highlanderticketing/service/match.go
index 165ed044759be44a2c4898bb29a1f5c325556b45..454e8093b07a84f7484d5824c89b804785adb711 100644
--- a/src/highlanderticketing/service/match.go
+++ b/src/highlanderticketing/service/match.go
@@ -13,6 +13,9 @@ import (
 
 func CreateMatch(match *model.Match) error {
 	match.ID = primitive.NewObjectID()
+	match.Orders = []model.Order{}
+	match.Travel.ID = primitive.NewObjectID()
+	match.Travel.Orders = []model.Order{}
 	client, err := db.GetMongoClient()
 	if err != nil {
 		return err
diff --git a/src/highlanderticketing/service/order.go b/src/highlanderticketing/service/order.go
index 9f8b6aace578b4ba203f9b8ec19007d46e0b5667..c8ac81acc5cc238f3d02e380197553dea3c93c57 100644
--- a/src/highlanderticketing/service/order.go
+++ b/src/highlanderticketing/service/order.go
@@ -11,13 +11,9 @@ import (
 )
 
 // noch testen
-func AddMatchOrder(matchID primitive.ObjectID, order model.Order) error {
-	existingMatch, err := GetMatchByID(matchID)
-	if existingMatch == nil || err != nil {
-		return err
-	}
-
+func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error {
 	filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
+	order.ID = primitive.NewObjectID()
 
 	updater := bson.D{primitive.E{Key: "$push", Value: bson.D{
 		primitive.E{Key: "orders", Value: order},
@@ -41,23 +37,16 @@ func AddMatchOrder(matchID primitive.ObjectID, order model.Order) error {
 	return nil
 }
 
-/*func AddTravelOrder(travelID primitive.ObjectID, order model.Order) error {
-	existingTravel, err := GetTravelByID(travelID)
-	if existingTravel == nil || err != nil {
-		return err
-	}
-
-	filter := bson.D{primitive.E{Key: "_id", Value: travelID}}
+func AddTravelOrder(matchID primitive.ObjectID, order *model.Order) error {
+	filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
 
-	updater := bson.D{primitive.E{Key: "$push", Value: bson.D{
-		primitive.E{Key: "orders", Value: order},
-	}}}
+	updater := bson.M{"$push": bson.M{"travel.orders": order}}
 
 	client, err := db.GetMongoClient()
 	if err != nil {
 		return err
 	}
-	collection := client.Database(db.DB).Collection(db.TRAVEL)
+	collection := client.Database(db.DB).Collection(db.MATCHES)
 
 	updateResult, err := collection.UpdateOne(context.TODO(), filter, updater)
 	if err != nil {
@@ -69,7 +58,7 @@ func AddMatchOrder(matchID primitive.ObjectID, order model.Order) error {
 	}
 
 	return nil
-}*/
+}
 
 func UpdateOrder() {