Companies should focus solely on the PayID system integration. They shouldn't have to worry about the infrastructure when integrating. Concerns like high-availability, monitoring, security, and scalability can become costly to self-manage. So for PayID to be more broadly adopted, IdentiPay is offering these services for businesses who are adopting PayID. IdentiPay makes PayID is universally available without the need for setting up an EC2 and a reverse proxy for their production services.
I was inspired by PayID as a way to become a universal standard for transacting money much like how e-mail operates today. The other potential of PayID is as an interoperable and decentralized way to transfer money between otherwise unbridged services. The IdentiPay solution is only scratching the surface of the possible use cases for companies using PayID.
What it does
IdentiPay allows businesses to auto-provision a PayID server in 15 seconds using a user-specified subdomain and provides API keys for Admin API access. Businesses can view and create PayIDs for users from a web console as well as through the exposed Admin API. The dashboard displays key statistics and monitors the health of the PayID server.
How I built it
A React front-end using functional components and Twitter Bootstrap v5 (beta), a Node.js backend API server using a MongoDB database (MongoDB Atlas). The API, as well as provisioned PayID Servers, are hosted on Amazon Elastic Kubernetes Service (EKS). The frontend is deployed to an AWS S3 bucket and served through CloudFront. I'm using Auth0 for API authorization and Stripe Elements for payment processing.
Challenges I ran into
I ran into an initial challenge setting up the subdomain DNS records through Kubernetes. At first I thought a CNAME record would suffice to allow customers to use their own domain, but the SSL certificate that Kubernetes presents to the client wouldn't match the customer domain name. I've decided to add support for custom domains in the future. See the "What's Next" section for more info on custom domain support!
Accomplishments that I'm proud of
The dashboard lists all PayIDs which required adding a new Admin API to list PayIDs (using TypeScript). I'm also proud of deploying the whole API to EKS and how the onboarding process is completely automated.
What I learned
I learned what it takes to develop an MVP of a product. I've never developed a full software product like this before and now I'm starting to learn how to develop the product further.
What's next for IdentiPay
I'm going to allow customers to set up a custom domain name, similar to Heroku.com. I'm also going to add full support for Travel Rule compliance and more Admin APIs such, as a Search PayID API, for use in the dashboard. Currently, the dashboard only allows adding XRP accounts, but my plan is to add USD bank accounts and BTC accounts too - although a lot of this is dependent on the initial feedback I get. On the tech side, I want to add a secret management service for better handling of generated API credentials. Plus a whole laundry list of other ideas that will make PayID onboarding easy for businesses, such as embeddable PayID registration widgets that can be added to websites with a single line of code.
Thank you for taking the time to review my submission!