#khris22963
1 messages ยท Page 1 of 1 (latest)
I've been told by Stripe Support that it's not possible to set up a subscription using BACS Direct Debit with a future start date and no pro-ration using a stripe.js integration
Kind of surprised by this. What was the reason?
I'm using Stripe.Net for the backend code, but the SessionSubscriptionDataOptions object does not seem to have either a BillingCycleAnchor or ProrationBehavior property as specified in the docs.
You're likely using a version before those params were added: https://github.com/stripe/stripe-dotnet/blob/master/CHANGELOG.md
Stripe.net is a sync/async .NET 4.6.1+ client, and a portable class library for stripe.com. - stripe-dotnet/CHANGELOG.md at master ยท stripe/stripe-dotnet
Not entirely sure. We spoke about this last week... you said to get on to support so that they could give my Stripe acct the ability to get at SetupIntents...
They were added in 41.14.0: https://github.com/stripe/stripe-dotnet/blob/master/CHANGELOG.md#41140---2023-04-27
Stripe.net is a sync/async .NET 4.6.1+ client, and a portable class library for stripe.com. - stripe-dotnet/CHANGELOG.md at master ยท stripe/stripe-dotnet
So I contacted them, and they said I'd need to use Stripe Checkout
What's your account ID?
One sec let me check which version of stripe.net I've got
Oh dear, I seem to have 41.2
That was added pretty recently via Nuget
I only started on this dev about a month ago
My bad... I'll get it updated.
However, while I have you...
Any chance we could try to get to the bottom of this thing about whether SetupIntents are available?
Sure, can you share your acct_xxx ID?
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Ah sorry...
acct_1MFwoGBRcLdcM5pS
I'm only using it all in test mode so far, so we haven't been through all the company validation stuff
Let's see
BTW I've now got the latest v of stripe.net from nuget, those properties have appeared, and I'm now smacking myself round the head for making such a dumb noob mistake.
haha all good
Btw are you happy using Checkout in this context or would you prefer the Payment Element?
Well I'm finding a couple of things that might not be all that customisable with Checkout....
although it is easier to code
Like for instance, where you get "Subscribe to <product name>"
is it possibly to customise the "Subscribe to" text?
As this will be a regular donation, so the word "subscribe" is a bit weird in that context
Not possible, no
I suspected as much
In that case stripe.js front end may turn out to be needed
as it gives so much more scope for customisation
unless theres no alternative to Checkout
So I suspect Payment Element is gonna be a better solution if I can get it to work
Do you still have your Payment Element integration running?
Kinda... I'd need to uncomment a bunch of code
So this is my checkout page...
which looks like it's right, based on amount and date, but the wording isn't going to go down well with my clients I fear
Maybe not a show stopper but ykwim?
Just getting the Payment Element stuff going again...
Yeah that's not customisable rn
Ok, I've got my Element integration back up
note card and bacs...
only get card in the Payment Element
you explained why that was ISTR
as I'm using for the client secret, and as you said, my account can't use SetupIntents
Can you share the seti_xxx?
I think I've just added your account. You should now be able to see (if authenticated):
Yeah, see the payment_method_types field doesn't include bacs_debit
sorry do you mean youve done something with my account, so if I run it again, I'll get bacs as an option?
Do those links load?
yes - they'rejust docs tho arent they?
Yeah but just checking I added your account
Ok, try and create the Subscription again and share the seti_xxx
ok one sec
May need to turn it on/configure BACS here: https://dashboard.stripe.com/settings/payment_methods
seti_1NOgh5BRcLdcM5pSvEAt2JKA
still no bacs
yeah I've got BACS on
that and card are the only ones switched on
It needs additional configuration now I think
as in?
Did you visit the settings page?
this one? https://dashboard.stripe.com/settings/payment_methods
yes.
card and BACS both on
or do you mean the manual settings page referenced at the bottom of the list of payments?
I dont have a working webhook yet
the manual settings page says this under BACS:
is that required even in test mode?
BTW I can get BACS showing on Payment Element no problem for single payments
which goes thru to my successURL ok
I know, there's no additional configuration required for that
I'm flying blind here as I haven't configured my account the same, 2 minutes
Typically we're having issues with the Dashboard as I need to access it
So I see ๐
Just looking at that BACS DD mandate page you linked above... it refers to a "custom payment form".... that's not a Payment Element is it?
If it's a custom form that's part of my site (as opposed to being hosted or embedded by Stripe), then I don't think that's going to be an option.
We want to avoid any card or bank details going through our server.
Payment element is what I was hoping to use everywhere where payment details of any kind are collected
At this point I'd recommend you write in to our team specifically. You can do that via https://support.stripe.com/contact and mark yourself as a developer with an API integration question
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Your ticket will come directly to our team and we can work to unblock BACS for you
Ok, thanks. However... I'm building this integration so that it can be fitted to many of the sites we host for our clients.
They're the ones who will eventually receive the actual donations, not us...
so they'll need their own stripe accounts?
I'll need a fairly smooth process for onboarding each one
Is the unblocking you refer to just so that I can work with BACS in test mode, or is it something that will need to be done for each of my client organisations?
(of which there are upwards of 50)
Well, you're referencing a Connect integration now which complicates matters
I'd recommend writing in with all this context and we can go from there
Ok. Connect is where we receive money and it auto-routes to another organisation?
I was very much hoping to avoid that sort of complexity
Also, am I right that if I use Checkout, I can avoid all these unblocking issues?
Hi ๐ jumping in as my teamamte needed to step away.
Yes, Connect is a Stripe product where you have a Platform Account that has multiple Connected Accounts. Funds from payments can be split between the Platform and Connected Accounts. It's typically used for marketplaces or other scenarios when there are multiple parties involved in processing a transaction.
There is quite a bit of context here, can you help me understand what you mean you say "unblocking issues"?
I can try, although I have been round this loop many times with various of your colleagues over the last week or two.
we host websites for not-for-profit clients
about 50 of them
mostly they are educational institutions, and they seek philanthropic donations, mostly from alumni
the purpose of the Stripe integration is to allow them to collect these donations online, through the platform we host
one of the modes of donation is BACS direct debit, where the end donor specifies a monthly amount they want to donate, and a start date for the new schedule
as I understand it, in Stripe terms this means a Subscription
and I've been trying to build an integration using Stripe.JS
and ASP.NET at the back end
the only hitch I seem to have run into is this particular regular gift, with the future start date
Everything I've done so far has been in test mode, and I have card payments and BACS direct debit switched on in my account
however, I'm not getting the BACS option in the payment element when it appears on the page
I've been told various reasons for this, including that there is some configuration needed on my Stripe account to allow it,
and also from Stripe support, that Stripe.JS doesn't support this payment method, and Stripe checkout is needed instead
the drawback with stripe checkout I'm finding is that customisation of the text on the checkout page is somewhat limited
so ideally it would be a Stripe.JS integration to give me the flexibility
now I've been working on the assumption that each of my clients (say a school) will need their own Stripe account
so my intention has been to test it all using my Stripe account, and then roll it out progressively to my clients, each of which has its own website with my company
...
My issue at the moment is that I can't get BACS to appear in a Payment Element, and your colleague was saying that something needs to be done to my account to allow this.
It affects only Subscriptions, not single payments which I seem to have working in test mode
Does that help at all?
Sorry, didn't realize the question was that complex, it's going to take me a bit to digest this.
I have no requirement to split funds between my account and my clients' accounts
we charge our clients for the hosting, and the support, but we don't intend to make any money directly from the payments they receive from their donors
this is why I've been assuming that Connect is not needed, and that every client would have their own Stripe account
Do the donations need to go straight to those clients, or are you able to settle everything into your own bank account and then split it out accordingly?
Since there are multiple parties involved here, I'm thinking Connect may be the right approach. How are you currently envisioning providing this service to your users?
Each client has its own separate website (hosted by us), and its own separate backend database (also hosted by us. Adding the API keys to each database would allow each client to receive money independently
as I say, we're not making anything from transactions
and I certainly wouldn't want the money to go into our bank account and then be transferred to the client's
presumably such a scheme would involve higher costs ?
and it certainly sounds more complicated
Just my two cents, but I would not be willing to share the API keys to my Stripe account with anyone else. API keys provide full access to the entire Stripe account and should not be shared externally.
I do believe there are additional costs with Connect (not 100% certain on that though, our team primarily focuses on helping with API questions and aren't too familir with fees or costs)
I take the point about the keys, but they would all be strongly encrypted in the respective databases, and we have a specific data-processing agreement with each client which specifies what we do with the data we hold about them.
We would not even have access to their Stripe dashboard
That's fair, in which case I would recommend you only rely on generally available functionality, as opposed to anything that requires special access or an engagement with our Support team to get enabled. Each of your users would need to go through that same process (that already seems to not be working well for you).
Yes, quite, which is why I'm trying to figure out why it's so complicated!
If I could get a straight answer to the question of whether BACS payment schedules can be set up using Stripe.JS, or whether Stripe Checkout is required, that would be a great start.
What I don't understand is why what I'm trying to achieve isn't quite commonplace
I don't think you can, it looks like accepting BACS through the Payment Element requires a Payment Intent.
Double checking, you said you're creating Subscriptions with a future start date, does that means you're creating Subscription Schedule objects?
do you mean a SetupIntent?
rather than a Payment Intent
?
accepting BACS for single payments seems to work fine
I'm not creating Subscription Schedule objects, I'm trying to use Billing Cycle Anchor and ProrationBehavior = "none"
with Subscription objects
this seems to work ok using Stripe checkout, but the text customisability is a bit limited, which makes me think that Stripe.JS with Payment Element is going to be a better solution, albeit a bit more code
No, I mean Payment Intent, it doesn't look like you can use the Payment Element with a Setup Intent to collect BACS payment method details for future usage, as there isn't an option to do so mentioned here:
https://stripe.com/docs/payments/bacs-debit/save-bank-details
It looks like Checkout is the only approach for that.
are there any plans to make the text more customisable?
for instance, I've got it all working with Checkout...
But where it says "subscribe to", it's not really very appropriate for someone making a donation. They don't think about it as subscribing to a service, rather making a gift
so it would be great to be able to customise that text
which is apparently not possible currently
I'm not sure, but I can file your feedback regarding your desire to have more ability to customize what is shown there. Just to make sure I'm following, you are planning to allow these Subscriptions to remain in place and these will be recurring donations?
correct
some will have end dates, and some won't
I haven't written the schedule ending logic yet
presumably subscriptions can have end dates?
which would show on the checkout page if set?
Okay, so still a subscription. For the feedback I'm filing, what you would like to be able to display there instead?
No, they don't
Whoops, I'm wrong about that, they do have a cancel_at parameter.
Phew!!!!
That's a relief ๐
I would have been amazed ๐
to answer the question about customisation of the text,
I'd like to be able to change "subscribe to" to whatever I specify
But you can't set that parameter when creating the Checkout Session, so there isn't a way for it to be pulled into the Checkout UI.
Cool, I'll get that filed
other things can be customised but not that text it seems
If the " subscribe to" was a parameter, I could pass anything I wanted in their
*there
also, I'd rather be able to suppress the "ยฃ0.00 due today"
so that it said something like
You'll pay ยฃ15.00 per month starting on .....
Rather than "Then",
which is contingent on the due today line
It's already getting the product name as a parameter
...
Going back to the Payment Intent stuff
are you able to explain why BACS is not available for future payments?
I attempted to do all this with a payment element, setting the subscription up ahead of time, and passing
subscription.PendingSetupIntent.ClientSecret
to the payment element
But even though I specified both payment methods:
Only Card appeared in the payment element
I really don't understand why BACS would be available with Checkout but not Payment Element
(the subscription.PendingSetupIntent.ClientSecret code was at the recommendation of one of your colleagues)
Okay, I've gotten that feedback filed, now to catch up on messages.
No, I don't know why it's available in Checkout Sessions but not the Payment Element.
ok, well it looks like Checkout is the way to go
as in, there's no other option
But at least one of your colleagues (ynnoj I think) was suggesting that it was possible, but that some kind of setting needed to be enabled in my account. That was the reference to "unblocking" that we came in with
If you were going to use Connect then that may be a route worth exploring further, but if you're asking your users to bring their own Stripe accounts then that likely isn't a scaleable solution.
Well, if the total fees are going to be higher with Connect, then Stripe is going to start to be of less interest to my clients.
As I say, I'm not trying to monetise my clients, rather give them a great, good value service
Definitely understand (and honestly, thank you, I wish more people would build that way)
if all they have to do is sign up with a Stripe account, and paste an API key into our UI, once they've gone through the organisation validation steps, it all seems quite simple.
Don't get me wrong, I'd love to make money, but I have to remain competitive?
!
and anything that jacks up the transaction fees will hurt that process
ok well I think the way forward is clear for the time being.it's disappointing not to be able to take advantage of the greater customisability of the Payment Element approach, but there it is
thanks for your time
Happy to help! I'm sorry we don't currently have what you're looking for (I'll make sure to file feedback for that in addition to the Checkout customization feedback filed previously), but am glad we were able to identify a path forward.
๐ hehe, you know where to find us! Hope you have a great weekend if we don't speak again before then.