Streamlining Invoice Payment
Using AWS Lambda's and API Gateway to allow Witan Technologies customers to take on-line payments for their invoices.
Ryze Project Management
Witan Technologies builds and licenses a project management solution called Ryze. This software is focused on professional services companies such as Architecture, Engineering and Law Firms. Ryze allows these companies to track project work and hours allocated to those projects, and generate invoices for payment for these projects. One of the most requested features of the application was the ability to take invoice payments on-line via credit cards.
Creating an Online Payment Portal
Our team worked with the Witan team to define the requirements for online invoice payment and design a serverless based solution.
Witan had initially been told that they couldn't take credit card payments as the merchant of record would be their clients and not Witan themselves. Through our deep relationships in the ecommerce and retail industry we helped them find a payment processor who was able to support their use case in Bluesnap
For the technology approach we aligned on a React front end hosted in S3 and Cloudfront and backend APIs using API Gateway and Lambda. This allowed for both application specific APIs for Ryze as well as APIs that were focused on the payment portals functionality.
Bringing It All Together
With an aligned understanding of what Witan needed our team got to work creating implementing the solution. We brought our standard best practices to the project including:
-
Infrastructure as Code (using the AWS Cloud Development Kit in this case)
-
Detailed design documentation
-
AWS Organization structure to allow for test and production environments
The architecture for this application is shown in the following diagram.
Extending Functionality
Since we launched the payment portal with Witan we have worked with them to both support the functionality in production as well as added the ability to pay multiple invoices or make a partial payment on an invoice.