Getting around the Stripe Identity Report fixed IP problem with Bubble

In one of my client projects, marketplace users who sell stuff on their Bubble-built platform need to go through a very rigorous ID check. They’re using Stripe Identity Verification, a handy and reasonably cheap way to onboard new marketplace sellers by going through the classic ‘Know Your Customer’ flow. They’re asked to put their ID front and back up in front of their webcam or using their phone, and then take a selfie. Stripe pulls the ID info and compares the ID pic with the selfie to verify the ID.

The client wanted to be able to double check the Stripe verification in certain cases, so using the Stripe Identity Verification API to pull their Verification Report with the photos of the ID and the selfie. The problem is that Stripe make the API key (understandably) restricted in this case, requiring that you add one or more fixed IP addresses where the call will originate from.

As we’re using Bubble to make the calls, providing a list of IPs is impossible. Bubble is AWS hosted, meaning the IP is constantly changing and every new API call comes from a different IP in a very long range of addresses.

Maybe Bubble can’t make the call to Stripe directly, but Hackeet can. I built a very simple workflow with @Thierry 's help to make the Stripe call locally from my machine, having bound my computer’s public IP address to the Stripe API key, then encoding the received image binary into base64 and appending that base64 to the request object, returning that to Bubble.

On the Bubble side, when the base64 is received I use a plugin called “File URL to base64” which is able to decode base64 to a file and upload it to Bubble storage to be then stored in the database in the User table entry for this marketplace seller.

A really nice simple example of how Hackeet can provide a quick and easy workaround to the shortcomings of the Bubble API connector!

1 Like