Templates Plugins Courses

Stripe Connect- Holding Transactions for a Marketplace

In that case I guess we did a bunch of running around for no purpose XD

That leaves my most recent response as the next issue. With the account ID working, it looks like that problem was about the card ID. I’ve since figured that out (I had the workflow running on a different button than I was pressing…). But now the customer ID isn’t appearing/being saved/created.

I’ll show my flows for that:

!

Here is a log. Ignore the card id part as I fixed that, but the customer id is still not generated.

This seems odd because the customer was created, but no ID is coming from the workflow.

Ya, I really can’t figure out why the customer id isn’t being generated despite a customer being created. Seems to replicate your bubble example.

Hi @alex4, thanks for sharing the screenshots. It is confusing on this issue, because it is still not reproducing on our side. We have tried to test this use case. However, could you please check if you don’t have duplicate plugin elements on your app page. Perhaps there might be multiple plugin elements with the same name.

Also, on this step:

Do you address to the previous Result of step1’s CustomerID?

Also, try to make sure that you are using the right card token, however, in the screenshots it seems to be correct.

It would be better to keep the following order: first you use a separate workflow to create a card token, then when card token is created you create a customer, set the state for CustomerID based on previous step, then set the state for CardID. Just as in our demo app. Some of the steps are already implemented, but just make sure everything is right. In this case, if everything is configured properly, you should be good to go with your app by now.

Hope it helps! But if you still experience some errors, we’ll check on them inside your app.

Thank you. :pray:

So did all the above with no change BUT then I noticed something in the debugger:

2020-05-07 18_59_48-Our Cabin in Rustic Montana

So I used a test card and got a new error:

Workflow error - The service Stripe marketplace - Link a customer to a seller just returned an error (HTTP 404). Please contact the plugin author directly for feedback. Raw error: { "error": { "code": "resource_missing", "doc_url": "Error codes | Stripe Documentation", "message": "Customer cus_HEoFUFfEdliRFC does not have card with ID tok_1GgKdMBMqb3OO4NKzP3sv6x7", "param": "card", "type": "invalid_request_error" } }

Hi @alex4,

Based on the first debug error, please make sure that you are using test API keys for testing version of your app and live API keys for the live one.

Based on second error, when you ‘Link a customer to seller’, you insert the customer ID that has to be in the following format cus_xxxxxx, the seller ID which has the format acct_xxxxxx and the card ID that has the format card_xxxxxx. The error shows that you are creating a card token. When you create a card, you actually have to save the user’s card ID into your database, then use this one when needed.

As for the API keys: If I’m in test mode and have the dev API keys in the plugin, does it automatically use those ones? If so, then we’re good here.

As for the formats, all of those are correct as evidenced in this screenshot where I had the values visible during the transaction test:

As for the card being saved, I see that I was referencing the token rather than the saved id in the linking customer and seller action.

Moving past that, to seller charge a customer, I managed to tackle a few errors successfully. I’m figuring out how this debugger works and the importance or checking for typos/mis-references.

The service Stripe marketplace - Seller charge a customer just returned an error (HTTP 400). Please contact the plugin author directly for feedback. Raw error:

{
"error": {
"message": "You cannot create a charge on a connected account without the card_payments capability enabled.",
"type": "invalid_request_error"
}
}

Is this error related to testing?

Also, assuming we got that part successfully beat… For when the charge goes through later, do I need to add anything to the amount? Or do I leave it blank so as not to change the initial charge (which included an app fee but there is no spot for an app fee in this event)?

Hi @alex4, thanks for these screenshots!

The API keys part seems to be ok by now. The reason of the ‘Seller charge a customer’ error is the capabilities that have to be set for card_payments:

image

But, as I can see in the previously uploaded screenshots, everything seems to be configured properly on your side. However, there is an issue regarding this step:

You cannot add bank account to express accounts. If you are using express accounts for your users, then you have to ‘Create dashboard link’ and user will add his account and modify necessary information on his own.

Things like create bank account, create seller, update seller - are working only with custom accounts.

For existing stripe accounts, all updates and changes have to be done manually within owner account dashboard. What it is done in the screenshot with create bank accounts, it is not for standard/express accounts.

If you are using express accounts, then you have to connect them with Connect standard/express account, then complete them with Complete account connection and you’ll have to offer your users a button that, being pressed, will redirect users to their Stripe dashboard by using Create dashboard link.

As for standard accounts, it is the same process but just without the dashboard link part.

Your users will manually log in with their Stripe account and perform actions they want.

But if you want to use custom accounts, then you can replicate the way it is done in our demo app.

The way it works is, if you leave this amount field empty, it will take all sum of money that has been paid.

Hope it helps. Thank you for patience :pray:

Thanks Alex.

That bank account screenshot was when I was trying to create a seller like you had mentioned before you noticed I was using express Oauth. So that is all deleted.

What about this error that came up???

The service Stripe marketplace - Seller charge a customer just returned an error (HTTP 400). Please contact the plugin author directly for feedback. Raw error:

{
"error": {
"message": "You cannot create a charge on a connected account without the  `card_payments`  capability enabled.",
"type": "invalid_request_error"
}
}

Hi @alex4,

This error says that this account doesn’t have the capability to get card_payments. This capability has to be added when creating a seller:

image

Or you can add it manually. Also, it is possible to add it through update call:

image

Please check whether it is configured.
However, if you still experience errors, then go to Settings - Collaboration tab within your editor. Add our support@zeroqode.com account to your collaborator’s list. Also, please tell us your app name and page name where this problem occurs on test, and any other additional details would only help.

Note: avoid the warning message regarding plan, as we are an agency and you can easily add us to your collaborators.

We’ll investigate it inside your app and get back to you with a feedback asap. :pray:

How does that work since we did not create a seller, we simply used the Stripe express connect?

Also, I added you to our app, Rentbridge (may be “testingforrb”). In order to test this, you’ll need to create an account (google oauth is setup to make it fast). Then, click on an item from the homepage- for the sake of testing, please use the “rustic cabin in Montana”. From there, select your dates and attempt to pay. Here is a link to test card numbers.

There error appears when you attempt to authorize the payment.

Hi @alex4, we have investigated your app and found the issue. There is no action in the workflow that actually connects to your Stripe account. Please make sure to do the following steps:

First, go to your Stripe account under Accounts section and make sure you can locate your appropriate sellerID account that it exists, and it is not restricted: (this screenshot is just for illustration purposes)

Second, you have to add a separate workflow, for example for a button, to actually connect to your account with ‘Connect express/standard account’ action. It has to be done even before you make ‘Stripe marketplace - Complete express/standard account connection’ action.

Thank you for patience.

Hi Alex,

The connect account is in the user profile section. The “rustic house in montana” available for rent is linked to a user with a connected account, so please test with that one.

Hi Alex,

The connect account is in the user profile section. The “rustic house in montana” does seem to have an issue with the account though. I’ve posted a new one that I know works, “Miniature Disneyland”.

It’s talking about our key not having access to that account in an error though. Hmm.

Hi @alex4, we have checked your app again and we cannot find any workflow where the ‘Connect express/standard account ’ action is used, even on userprofile page:

There is a ‘Stripe marketplace - Complete express/standard account connection’ action, but it doesn’t connect to your account. You have to use the connect one, first.

Please make sure this account is existing in your Stripe Accounts dashboard section, and this account is not restricted. Please check the previously shared steps.

By George, the entire process actually worked!!!

One small hiccup that I had to do manually from the Stripe dashboard: how do I add both transfers AND card payments in the connect event? I did “transfers, card_payments” but it didn’t understand. I could only have one or the other. And are there any other capabilities, like charges or something I need to add?

Hi @alex4, sorry for delayed response.

It’s been a long run, but I’m glad that it is working now.

You can add them as an array, like card_payments,transfers, but you have to make sure that these capabilities are enabled in your Stripe account and they are not inactive. However, this action works with one capability, indeed, which should be card_payments. The transfers one might be a bit of a headache, if you ever are going to use it. It will be required to complete data for each user in the Stripe dashboard, in order to make both capabilities work. So, it would be best to keep only one.

There is no need to add any other capabilities, you should be good to go with your application!

Also, if you like our plugin so far, could you please rate it by going to Plugins tab in Bubble editor. You can find the plugin by name and give it as many stars as it deserves :smiley: The more feedback we get, the more motivated we are to build great plugins!

Thanks a lot for your patience. :pray:

Hi Alex,

We are having an error where the app is not detecting that a token is created and triggering the event in light of it. I tried just running a custom triggered workflow to bypass but it doesn’t properly reference the token when I do that.

When we click “pay”, it it creates the token and then a loading bar on the screen takes a bit to go across and never completes. (this is Alex from Rentbridge, by the way). Any idea why it isn’t detecting it? This was preventing our users from making transactions, which we discovered today.

EDIT: I found a temporary work around. If I add 2 “create card token” events, then it works, it just does it twice. But if I have one, it doesn’t run at all.

Hi @stayshure!

Sorry for late reply, we are already checking on it with our dev team and I’ll get back to you asap.

Thanks :pray:

Hi again @stayshure

So it certainly doesn’t have use 2 events, that’s for sure. You just need one separate call to create the token and then one event triggering when token was created. So this part seems to be right based on your screenshots, but just make sure that your Token element is placed in the same group or popup with your inputs for card number, expiry date etc.

Let me know how it goes further :pray:

That fixed it! It was outside the group.

2 Likes