I'm in the process of planning a web app which will offer an advice service to people who earn above a certain salary threshold. The thinking is that the new users will be procured through their banks.
So far I see two different ways of allowing signup to the app.
Batches of one-use random codes (10 digit hex or similar) are handed to the banks on printed cards or similar to give out to eligible users. The user then enters the code on the landing page of the site which will look this up against a database of valid codes and allow access if valid.
I think the above option will work fine, but then I got thinking "Well an email address is a unique identifier that we all have". If the bank could somehow submit the eligible users email to the app this would remove the need for the cards (and associated printing costs etc). The only issue here is creating a separate api (albeit a simple one), for the banks to use and creating logins for each user.
I'd really appreciate some opinions on the above 2 options in terms of which presents a better UX and a more sensible approach. Even better if anybody has a solution to this that hasn't crossed my mind, that'd be great too.