#lozz_api
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1390288882439950436
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hello ๐
No, this isn't something you can do in the dashboard. It must be done when confirming the payment intent.
That's fione, my next question is why is returnURL required all of a sudden?
We've got a customer that didnt have this issue before, now they are required to send in a returnURL
Is this something new that's been added?
Can you share your account ID so I can check something?
my account id is: acct_1H0TFsBCctj4okSz
this is only a test account but one of our customer is facing this issue on a live environment.
I believe they are a connected account of ours but they never had the need to send in a returnURL
This ID does not exist. Can you provide a copy of the live account ID where this is occurring?
Or an API request ID where this error is being thrown?
account id - acct_1HKn0JBQI2GI7wuy
This is another invalid account ID. Can you share a request ID where this error is returned?
I cannot find any accoount with that ID. Can you please provde an example request ID?
I'd need the customer to send that as they have to get this from their backend?
Correct
Okay this appears to be related to a recent API upgrade on your account
Was this API upgrade done by us or Stripe?
We don't update your API automatically. This must have happened on the Platform account
The upgrade was performed yesterday
No this was initiated by someone with admin access to your account. The most immediate fix is that you roll back to your previous version.
The change that is currently breaking your customers integration is that we switched to automatic payment methods in the 2023-08-16 API version. This change requires that you provide the return_url when confirming Setup Intents
Right and since our relationship is one to many, if we make a chnage it would impact all customers that are connected to our account?
The change went from API version 2019-12-03 to 2025-06-30.basil at 2025-07-02 16:28:11
So this just happened
Okay, do you know where I can go to the API version to revert it?
The dashboard layout changed
You can find this in the Developer options. It should be in the bottom left corner
I assume I click on "roll back to 2019-12-03"?
Yes, that will transition your account back to that API version
If you are seeing these errors in the Sandbox env then that would be the appropriate action
or will rollback to in a live environment automatically switch for the test environment?
Okay we need to clear up terms
- "Sandboxes" are a new Stripe tool for creating entirely separate accounts
- "Test mode" is the same configuration as your live account but using different data and not actually making payments.
Which one are you talking about?
In that case, the change will apply to both
Is there a way check which administrator made the change yesterday?
any activity log?
If you want that information I encourage you to write in to Support: https://support.stripe.com/contact
Since this is a public forum we avoid sharing information like that
That's fine
As for Sandboxes, I think they would be worth looking into. One advantage of Sandboxes is that you can test upgrading your API version without directly impacting your production environment.
Thank you for all your help!
Okay perfect, we will try moving forward with sandboxes
So I would need to create a sandbox for SycurioConnectAccount, which will allow all connected accounts to test the latest API?
Are you creating the Connected Accounts yourself or do you use OAuth links to onboard existing accounts?
we use OAuth links to onboard existing customer onto our connect platform
I don't know that we currently support onboarding accounts to a Sandbox account. However, using a sandbox account would allow you to upgrade the API version and make the same API requests to test whether or not they work.
That's fine when it comes to us testing. However, if a customer cannot test in the sandbox account prior to API version being upgraded to live then that will be an issue again
I'm not sure I follow. Your platform is the one who changed their API version and your platform is the one making the API reuests
You control all of this
From the customer's POV, are they able to create their own sandbox within their account and test this?
Individual accounts can create their own Sandbox accounts, sure. But they aren't the ones who broke the integration
I understand this, but my question was, since all the customers are connected to our platform account, if I were to create a sandbox... will all connected account be able to test using the sandbox?
will all connected account be able to test using the sandbox?
As far as I know, you cannot allow your users to connect to your Sandbox environment
But, as I said, the Connected Account's API version has nothing to do with what went wrong here
But did you not say that the API version being upgraded was the issue? which was why we reverted?
That is your platform's API version
I am not talking about customer's account connected to us. I am talking about our platform account that customers connect to. SycurioConnectAccount
Your Platform changed the API version, your platform makes the API calls. None of the testing requires any connected accounts
That's fine, this would mean if we were to ever to upgrade API version that is "ground breaking", then we'd need to test in a sandbox and get the customer to test in their own sandbox before we upgrade the API version on the live platform?
then we'd need to test in a sandbox and get the customer to test in their own sandbox
This step is not required.
Okay so is there any way of getting the customer to test any new API changes before upgrading the API version in a live account?
Why would your customers need to test API changes? Your customers do not control their integration with Stripe. The onus is on you, the platform/plugin, to ensure your code and integration works within elected API version
Changing the API version where a new parameter becomes mandatory doesn't seem sensible to push without the customer testing this. As we have multiple customers, would it not make sense to allow the customers to test any changes in the API before changing the API version?
I'm not really familiar with your product or how you integrate with Stripe, but I'd guess that your customers don't control how they interface with Stripe at all
Is that accurate?
i.e. they don't write any Stripe code, they just use your product which handles the Stripe part
This is our first time encountering this issue where an API version was upgraded for a customer which impacted another customer. I was not aware of this change being made till your colleague mentioned this.
I'd like to know in the future, if we were to make an API version change, we'd need to test this prior to upgrading the API on a live environment. Therefore, is it possible to allow customers connected to our platform to test this API version before we make this change in a live environment?
API version was upgraded for a customer which impacted another custome
Not sure what this means? You upgraded the default API version of your platform, which means that any API requests made on your platform or a connected account (via the Stripe-Account header) default to that version. Obviously you can override that default on a per request basis and maybe that's what you need to consider in some kind of versioning system
This is what we recommend here: https://docs.stripe.com/upgrades#how-can-i-upgrade-my-api
Use the Stripe-Version header with the desired, newer version to test the changes. Then once you're certain your compliant with breaking changes, make the default changew
But I don't understand what you mean by 'customers testing changes'. What exactly are they testing? It's not their code they're using
Okay, that's one way of testing. To clarify, setting the Stripe-Version to any API version (new or old) will override the default API version set in the dashboard. Is this correct?
It's not the code that they are testing, its the actual request and making payments that they will be testing on their account.
Yes, that is correct
Yeah, but again that's not on them to test
But we clearly disagree there
For example, if a particular customer wanted an optional parameter to be supported, we would provide that. A long with our testing, the customer will still test using their own credentials in the preprod env set up for them. Once every is okay, things will be pushed to live.
It's not about agreeing or disagreeing. Perhaps there's a misunderstanding or maybe I am not being as clear.
But thank you for your help. I appreciate it.
OK, then you have your answer. They can use the Stripe-Version header. But as I said, I'd recommend some kind of versioning system in your plugin (which I know nothing about) that is loosely tied to Stripe versioning
e.g. they opt in to an update of your plugin/platform, which corresponds to a Stripe API release
Then your code passes the Stripe-Version header for an API version which corresponds to the version of the plugin they're using
Thank you
1.0 -> 2025-03-31.basil
1.1 -> 2025-04-30.basil
2.0 -> 2025-09-30.xxx breaking change
you get the idea
That's fine, usually some PSPs provide version numbers as mandatory. But I was not aware Stripe had the same principle, first time hearing about Stripe-Version
Thank you anyways
Yes, it's what our SDKs use. They're all pinned to API versions that map to major SDK versions
e.g. 18.0.x of Node SDK is pinned to 2025-03-31.basil: https://github.com/stripe/stripe-node/releases/tag/v18.0.0
(they follow semver)