diff --git a/pkg/invitations/conv/proto_decoder.go b/pkg/invitations/conv/proto_decoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..57c1c378c29d7877cc8caa9bc19db8fc1c5d44db
--- /dev/null
+++ b/pkg/invitations/conv/proto_decoder.go
@@ -0,0 +1,54 @@
+package conv
+
+import (
+	"git.perx.ru/perxis/perxis-go/pkg/invitations"
+	"git.perx.ru/perxis/perxis-go/pkg/options"
+	pb "git.perx.ru/perxis/perxis-go/proto/invitations"
+)
+
+type Decoder struct {
+}
+
+var _ invitations.ProtoDecoder = &Decoder{}
+
+func (d Decoder) AcceptRequest(invitationId string, userId string) *pb.AcceptRequest {
+	return &pb.AcceptRequest{
+		InvitationId: invitationId,
+		UserId:       userId,
+	}
+}
+
+func (d Decoder) CreateRequest(invitation *invitations.Invitation) *pb.CreateRequest {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) CreateResponse(res *pb.CreateResponse) (created *invitations.Invitation) {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) DeleteRequest(invitationId string) *pb.DeleteRequest {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) FindRequest(filter *invitations.Filter, opts *options.FindOptions) *pb.FindRequest {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) FindResponse(res *pb.FindResponse) (invitations []*invitations.Invitation, total int) {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) GetRequest(invitationId string) *pb.GetRequest {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (d Decoder) GetResponse(res *pb.GetResponse) (invitation *invitations.Invitation) {
+	// TODO implement me
+	panic("implement me")
+}