Is a content type needed by a custom module?
You can create you own data structure but I think your life will be a lot easier if you create a new content type or an entity. You can alter the form in the way you need it or get it and render it wherever you want. You also have validation and submit handlers.