Inspiration
Flash Order is a startup that is inspired by technology that makes digital ordering easier to integrate into every transaction. Rapyd APIs are helping to fill a big gap for us in making ordering from multiple vendors on a single ticket seamless for customers and extremely simple for the B2B relationship between the venue and the vendors.
What it does
Multiple vendor concepts have an inherent problem of connecting disparate business accounts on the same ticket with a single processed transaction. By integrating Rapyd virtual accounts into the Flash Order ecosystem we are able to connect a single Flash Order parent account to a Rapyd Wallet to accept all the transactions from the multi-concept venue. Then, with the Rapyd Disbursements API, Flash Order distributes the appropriate total revenue for the day to each individual vendor. This eliminates the need for current inefficient practices like manual disbursements on the backend, or just as bad, requiring a different checkout for each different vendor.
How we built it
This was complicated! We had to build 7 things:
1) admin UI for our clients to establish “partnerships”
2) backend service to manage and store partnership information
3) an interface to manage our wallets, virtual accounts, and disbursements using Rapyd
4) updated ordering to manage multi-vendor menus and orders
5) updated backend to route orders to vendor accounts and third parties
6) accounting system to track orders and calculate fees
7) a service that periodically initiates payouts based on accounting
Challenges we ran into
Our backend is written Swift, so no none of the APIs were available. So, we hand-entered the methods and data structures from docs.rapyd.net that we would need to use and put these in a Swift Package that is open source on GitHub. (If Rapyd can publish their API using OpenAPI or similar standard we could parse it into usable Swift code. Maybe they already have and we just need to look harder…)
Another product of writing our own API was just making proper API requests. In one case I’m pretty sure the documentation has an error (we did try to report it I think). Someone else was struggling with the same one and we were able to give them a tip in the community forum. Also getting the HMAC right wasn’t trivial.
Of course, the huge scope of all of this required a great deal of caffeine.
Accomplishments that we're proud of
We are super proud to have solved this challenging problem! It also makes us happy that the world will pay less in credit card fees and have a tiny bit more ordering freedom. We have built something that we have just plain wished it existed.
We are also proud of building this “the right way”. Meaning, we didn’t cut corners or leave any security gaps (at least that we’re aware of, of course). It helped that we have a customer that will be using this shortly so we needed things to be done well.
What we learned
This was our first time using Rapyd, so we learned a TON about Rapyd, obviously. E-wallets, virtual account numbers, same-day ACH bank transfers, mass payouts… the list goes on and on. We are in the early stages of going international so there was a bit of learning about payment methods in other countries as well.
What's next for Flash Order Multi-Vendor Checkout
We will be deploying a Flash Order multi-concept kiosk and web app with the new Rapyd integration to a newly built Food Hall by the end of August. After this initial integration we will expand the Rapyd integration across our base and we would love to continue to explore checkout, virtual account, and disbursement solutions with Rapyd. Especially as Flash Order continues to expand internationally.
Log in or sign up for Devpost to join the conversation.