Has anybody integrated Stripe payment gateway WITHOUT plugins? only using API connectors

Are you using API or plugin? If API make sure you capture from redirect URI before wiping the URL clean.

Am using the API. I finally figured out, what the problem was:

I am using a Transactions-Thing to collect necessary information and link in it the relevant Booking (another thing). In the malfunctioning workflow (create booking → start backend workflow (thereby creating Transaction) → start Stripe session → Make changes to Transaction (add sessions id) → open external page (stripe url)), I told Bubble to make a change to the Associated Transaction of a Booking that is being created as the first thing in the workflow. The transaction is then being created in the backend workflow that is initiated immediately in the second step. Apparently there isn’t enough time or some other issue, whereby the thing that was created in the backend workflow is not accessible to a change in step 4 (following the stripe session start in step 3).

I solved it by creating an empty transaction before starting the backend workflow. The backend workflow now changes and no longer creates the transaction. The result of the Stripe session can now be successfully written to the transaction. (New workflow: (create booking → create transaction → start backend workflow (make changes to created Transaction) → start Stripe session → Make changes to Transaction (add sessions ID) → open external page (stripe url)).

I hope that makes it comprehendible :wink:

I have successfully integrated Plaid Link, plaid webhooks with (almost) no plugins + the API connector.

It’s probably the case. You can simply use the plugin WAIT to added some time. Creating the transaction before is also a way I’m using everywhere.

1 Like

I’ve run into the next problem and maybe you friendly people know an answer:

Is there a way to retrieve the amount of fees that Stripe charged via an API call? I am specifically not meaning the fees that can be charged as part of connect, but the payment to stripe for using the service. I can’t seem to find an info in the paymentIntent or sessions object.

The reason I need it is that I need collect a deposit and return it, if everything went well. Given I can only capture charges for up to 7 days, my current setup is to charge both a fee for my service and the deposit and then refund the deposit minus the amount of stripe fees.
If anyone has come up with a better idea to introduce a deposit system, I’d be very keen to hear ideas!

There are no fees for using stripes api or webhooks, the business model for stripe is to collect 2,9% ( some countries has different fees) + 0,25 cents for transactions

they only take about 1.25ish from a 50$ roadside service i offer so its not bad at all

I’m trying to create a customer and I thought I had everything right, but I’m getting the error in bubble:

There was an issue setting up your call.
undefined error: this header name is not correct undefined

What am I missing here?

From the message it is a Header value…which would be the content-type of application/json

Unfortunately that didn’t work.

I figured it out. Seems like for some reason the initialize API was corrupted, and despite everything being correct, it wouldn’t work. I deleted it entirely, and then made it exactly as before, and then it worked.

Seems like a bug on Bubble that should be addressed

I think I had that issue when I was switching between different Authentication types, after filling in a value then switching it to “Private key in header” for some reason it was trying to send the hidden value I filled in before. Which might make sense why you had to delete and remake it clean

1 Like

This is a gold mine for stripe integrations. @adamhholmes really loved your insights on this thread. Keep helping the community we need more developers like you.

Hi @adamhholmes ,
Why Redirect with Javascript and not use Bubble WF “Open external website” with Result of step1’s URL ? (Checkout Session’s URL)
Thanks

When this post was written (4 years ago) Stripe didn’t return a URL from their checkout session API call, so the only way to do this was with the JavaScript redirect.

But they introduced the URL (I think when they added payment links) a few years ago so, today, using the result of the Checkout session step’s URL is the correct way to do this, as you point out.

ok thank you @adamhholmes