diff --git a/ud/confirmFact.go b/ud/confirmFact.go
new file mode 100644
index 0000000000000000000000000000000000000000..ab00ea74c99ce9735321f6dbe533af625c4b823c
--- /dev/null
+++ b/ud/confirmFact.go
@@ -0,0 +1,24 @@
+package ud
+
+import (
+	pb "gitlab.com/elixxir/comms/mixmessages"
+	"gitlab.com/xx_network/comms/connect"
+	"gitlab.com/xx_network/comms/messages"
+)
+
+type confirmFactComm interface {
+	SendConfirmFact(host *connect.Host, message *pb.FactConfirmRequest) (*messages.Ack, error)
+}
+
+func (m *Manager) SendConfirmFact(confirmationID, code string) (*messages.Ack, error) {
+	return m.confirmFact(confirmationID, code, m.comms)
+}
+
+func (m *Manager) confirmFact(confirmationID, code string, comm confirmFactComm) (*messages.Ack, error) {
+	msg := &pb.FactConfirmRequest{
+		ConfirmationID: confirmationID,
+		Code:           code,
+	}
+
+	return comm.SendConfirmFact(m.host, msg)
+}
diff --git a/ud/confirmFact_test.go b/ud/confirmFact_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..b048ad7e87a5b3f54b2f734135d24bf3a34f12e3
--- /dev/null
+++ b/ud/confirmFact_test.go
@@ -0,0 +1,56 @@
+package ud
+
+import (
+	pb "gitlab.com/elixxir/comms/mixmessages"
+	"gitlab.com/xx_network/comms/connect"
+	"gitlab.com/xx_network/comms/messages"
+	"gitlab.com/xx_network/primitives/id"
+	"reflect"
+	"testing"
+)
+
+type testComm struct {
+	request *pb.FactConfirmRequest
+}
+
+func (t *testComm) SendConfirmFact(_ *connect.Host, message *pb.FactConfirmRequest) (*messages.Ack, error) {
+	t.request = message
+	return &messages.Ack{}, nil
+}
+
+// Happy path.
+func TestManager_confirmFact(t *testing.T) {
+	// Create new host
+	host, err := connect.NewHost(&id.UDB, "0.0.0.0", nil, connect.GetDefaultHostParams())
+	if err != nil {
+		t.Fatalf("Could not create a new host: %+v", err)
+	}
+
+	// Set up manager
+	m := &Manager{
+		host: host,
+	}
+
+	c := &testComm{}
+
+	expectedRequest := &pb.FactConfirmRequest{
+		ConfirmationID: "test",
+		Code:           "1234",
+	}
+
+	msg, err := m.confirmFact(expectedRequest.ConfirmationID, expectedRequest.Code, c)
+	if err != nil {
+		t.Errorf("confirmFact() returned an error: %+v", err)
+	}
+
+	if !reflect.DeepEqual(*msg, messages.Ack{}) {
+		t.Errorf("confirmFact() did not return the expected Ack message."+
+			"\n\texpected: %+v\n\treceived: %+v", messages.Ack{}, *msg)
+	}
+
+	if !reflect.DeepEqual(expectedRequest, c.request) {
+		t.Errorf("end point did not recieve the expected request."+
+			"\n\texpected: %+v\n\treceived: %+v", expectedRequest, c.request)
+	}
+
+}