#dev-help
1 messages · Page 110 of 1
That means that the webhook signature appears to be unavailable. You'd usually get this with the line $_SERVER['HTTP_STRIPE_SIGNATURE']. I'd double check that you aren't stripping the request of its headers before it gets to your webhook validation code
hey all, I have one question. I'm planning to have an automatic payout system, similar to that with Google AdSense, built into my own app. This would be used to pay the designers selling their work on my platform. However, I'm seeing that Stripe's automatic payout system isn't supported in India
Any options?
Hi @spare sedge, what makes you think that Payouts don't work in India?
Can you specify where? Payouts have always been available for Indian accounts. Are you thinking of instant Payouts perhaps?
I'm not sure, I'm very new to Stripe. I'm looking for a solution to convert in-app currency into payments for designers as and when they "check-out"
I'm looking at Stripe Connect, would that do the job?
Yes that would be the way to pay out to bank accounts that don't belong to you
There's no official Flutter package for Stripe, but there's a very good 3rd party one: https://pub.dev/packages/flutter_stripe
Connect should be supported with the above
We actually sponsor the above: https://twitter.com/StripeDev/status/1403019374739525633
The @FlutterDev SDK for Stripe is now in public beta! We’re excited to sponsor this #OSS project built by @JamesBlasco @Boni2k & @remonh87. Features include:
📱 Apple Pay & Google Pay support
🔒 Secure card input
🌍 Local payment methods
Try it now: https://t.co/yGq8vPms3V.
113
495
I can't find any documentation for actually using this package
All I can find is the example code, and so far, no tutorials online on how to use Stripe Connect with that package
Stripe connect payouts would have to be completed from the backend IIRC
Ah okay. Also, is it possible to not have the initial step of first collecting payments? My app uses in-app currencies, so it needs to go through the Google Play Purchases system. Is it possible to directly pay out to designers without having to receive payments first (of course, assuming there is money in the Stripe account)?
Absolutely, they still have to go through the same on-boarding though
Cool, thanks!
It says "only available for US accounts", so what I'm trying to achieve wouldn't be possible since I live in India, right?
@spare sedge what's the URL of that docs page?
Add money to your Stripe balance and pay out your sellers or service providers.
@spare sedge Connect is supported in India, just in a limited capacity: https://support.stripe.com/questions/stripe-india-support-for-marketplaces
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.
top-ups specifically are a US only feature, but paying out is available in India
Hey i wanted to ask that when stripe send invoice to customer then can we know that payment will automatically deduct from user card or not?
@shrewd fulcrum you can use webhooks to be informed when an invoice is specifically paid: https://stripe.com/docs/api/events/types#event_types-invoice.paid
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
it will work with both one time and subscription plans?
@shrewd fulcrum For one time payments you should use payment_intent.succeeded. For subscriptions you should use invoice.paid
Right, so from what I can tell after reading the docs briefly, I need to have the money received from the user first, then redirected and paid to the vendor after subtracting a fee. Is it not possible to skip the first step of collecting revenue, and going straight to paying vendors (in this case, designers)?
Not really no. With connect your designer would also have a Stripe account. You'd collect payments either directly on the connected account (a direct charge) or on the platform and then you transfer to the connected account later (destination charge). Either way the funds need to settle in the connected account before they can be paid out.
Also worth noting that Google only requires you to use IAPs for specifically in app content, and that you can’t use them for services
Right, so it's not possible to add money to my Stripe account balance manually, and then pay it out auto-magically to the Stripe accounts of designers?
Sadly, no, but what you can do is use stripe to accept payments via Google Pay
And use that to pay designers
Because Google might refuse your app for using IAPs for Real World Transacfions
Okay so my app is an abstract wallpapers app. Designers can sell their work there and users can set that work as a device wallpaper. No physical items are ever sold, so I would assume it would be breaking Google Play policy to use Stripe and bypass IAP
@bleak breach After sending the stripe invoice to customer of the subscription plan with a trial period of 90days and within the time period of 90days, will the user gets charged for the subscription cost automatically if stripe already has it's card details?
Essentially, they are all digital goods only so I have to use IAP
Oh that’s a whole lot different than what I imagined. Stripe may not work in this scenario then unfortunately
(Caveat: Google/Apple's IAP system is draconian, here be dragons) If you're selling something that's not necessarily linked to the app (e.g. an app subscription or a no-ad mode) then you might be able to use Stripe for these transactions. If for instance you also have a website where you can buy the same items then you might be okay. The only ones who can really tell you for sure are Google in this case
wallpapers are almost for sure gonna get your kneecaps busted by App Review though
When you create the subscription you must pass in a valid PaymentMethod attached to a customer. After the 90 day trial in your case Stripe will automatically attempt to bill the card saved on file for the next billing period
but what if I made a web version of my app, and an iOS version? Then the stuff is no longer limited to only the app, and thus... loophole?
Welllllllllllll
It's all built using Flutter so the code won't change for iOS. For web it won't be too hard
It's possible, but really we can only speculate. Only Apple/Google can tell you for sure if this is something that they'd allow you to use Stripe for
Yeah no it’ll be easy, but considering that these wallpapers are designed for the device, probably not
Especially considering how strict apples definition of “reader apps” are
Right now can I just dial up Sundar Pichai, ask him, "yo what's up bro can you not take 15% of my money thanksssss"
y'know Tim Cook too, got his number, definitely
Yes, and while you're on the phone with him please ask him to bring back XL versions of pixel phones
yeah yeah definitely
looks like I'm gonna have to resort to monthly manual payments through something like Xoom
gonna be a pain but looks like I'm out of options
and tell Cook that I want my damn F keys back on my laptop
tbh I don't really mind the touchbar
I’m sure there’s some sort of Bank in India that offers Cheques as an API
but I'm sure that's a topic for #841573134531821615 and not this channel
Wdym? Theyre still there
ha no
It’s located immediately after the D key
But doing the calculation the price per wallpaper sale is so low it's almost like a scam
Paying per wallpaper might also just be a bad idea in general
Yeah it's gonna be more like the way adsense works
Gives you no buffer in the event of refunds or chargebacks
where you need a threshold amount in your account to get paid
Depending on how much you intend to charge for these you're probably going to get hit hard with fees
yep that's why working around that, I'm using in app currency that has to be purchased in integral multiples of 32
with each wallpaper priced between 0-8 of that currency
otherwise if i had to have an in app purchase for every time you purchased a wallpaper, that fees would be astronomical
30% just to exist
Bear in mind Stripe has minimum charge amounts: https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
yeah i dont think i'd be able to use stripe for my purposes unfortunately
anyone know how i can contact google play support? i can't find any contact info anywhere
Uhh I have an email somewhere
maybe i can check in with them and see if i can use stripe for my in-app currency since i have to pay vendors/designers in the end
i tried contacting through that a few months ago. the support staff has no idea what they're talking about
I stick to iOS
Sounds about right for a $25/life fee
Ok thanks ! I don't know how to check this. What should I tell to my dev ?
It's hard to say without knowing their code. I'd tell them to look at these docs and see if they can determine why the signature is missing: https://stripe.com/docs/webhooks/signatures
Oh ok ! In my case Stripe is configured with a PrestaShop module
Hi, I'm using card elements. About input validation, I'm able to display the Stripe error when any of card number, expiration of cvc is filled and invalid. I'm using the change event for that. How can I get the Stripe error to know when one of the input fields is empty? I would like to get the empty error message before to call "confirmCardPayment" method.
@pure crane Hi! You could probably consider it empty until you've received a change event I guess? I don't think there's a specific event for 'empty' or anything.
My wonder was more about How I could not duplicate emptiness logic Stripe already apply client side when I call "confirmCardPayment"?
I'm not really sure - I'm not sure offhand what logic is applied there.
#dev-help i am having issue with payments, all payments going as a subscription, how to change it to a normal payment ?
i tried to change mode to payment but nothing changed
@sturdy flower Are you using Checkout?
You can use this guide: https://stripe.com/docs/checkout/integration-builder
no, i integrated to webpage form.
In that case follow this guide: https://stripe.com/docs/payments/integration-builder
where is mentioned payment type ? i couldn't find it
Not sure what you mean by that. If you have an integration which is currently creating subscriptions then you likely have something that looks like this: https://stripe.com/docs/billing/subscriptions/elements
If you just want to accept one-off payments then you should use one of the earlier links instead
okay thanks
更新された同じ番号のクレジットカードが発行されている場合、サブスクリプションの顧客でカード有効期限が到来するとどうなりますか?
Hi @unique nova, this is an English language Discord and unfortunately I don't speak Japanese. If you need Japanese language support I suggest you reach out to Stripe support directly: https://support.stripe.com/contact
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.
Ok thanks
#dev-help
I have an existing onboarding flow setup for custom accounts for Stripe connect using the connect onboarding provided by stripe. I need to request for enabling additional verifications for my connect onboarding flow. As mentioned in the following link, https://stripe.com/docs/connect/additional-verifications#get-started.
As of now, I am not able to test out the additional verifications with my already setup flow as this has been an invite only feature. I want to know if its possible to test out this invite only feature under test mode so that I can have an idea about what all it takes programatically to link this feature.
Add identity verification checks to your platform’s connected accounts
Hi @timber kernel, unfortunately you can't use those new features without first receiving an invite. I suggest you shoot the email in that docs page a message outlining your use case
Okay, thanks!
Actually I might be mistaken on that, have a look here: https://stripe.com/docs/identity/verification-sessions
Learn more about the Verification Sessions API that powers Stripe Identity.
Sure, will have a look. Actually, I am afraid that integrating this will need us to consume a seperate set of APIs for identity verification unlike what it used to be earlier when KYC was a part of the Connect Onboarding for onboarding custom accounts using Stripe Connect.
I wanted to have an idea if the existing setup that used to take care of the verifications could still be used after requesting for this invite only feature so that it doesn't break the existing flow that our application has
For the connect specific flow you'd need to email to ask for access
Alright. Thanks for the info!
#dev-help Hopefully someone can help - we've found what I believe is a bug that needs to be reported in the balance.available webhook system.
We've just recieved a webhook notification that states there's balance availible (hence the event name), but when you drill down into the data payload, there's no amounts shown. When we look in depth at the Stripe account, we can see there were funds made availible then so the webhook was wrong in the amounts shown
Hi @willow estuary can you share the event ID?
Will DM you it now
Hey there, I get an error when I try to call to confirmCardPayment function from react code, the error is : Uncaught (in promise) IntegrationError: We could not retrieve data from the specified Element.
Please make sure the Element you are attempting to use is still mounted.
@velvet bridge Hey! Are you able to share the code where you call confirmCardPayment?
Hi, I would like some advice considering direct communication between client browser to Stripe. After having created an intent on the server, the client performs direct call to the Stripe api using the 'confirmCardPayment'. Then I have my server waiting for webhook events to confirm the payment on the server. Once the server receive this event, my order cannot be ordered again because the cart is cleaned. My concern is if the server doesn't receive for any reason the webhook event. How can I protect me that a given order can only be paid once? Thanks for advice
Hi!
I have a negative balance on my account. How can I see a detail of what this pending balance would be? (disputes, refunds)
@pure crane Hello! This asynchronous payment approach is our recommend path, especially now as SCA rollout broadens in Europe. Do you have any specific concerns about our webhooks or your server being unreachable?
@gaunt crescent Discord is for developers to ask questions about their integration or code. This is more an account support question so I'd recommend talking to our support team directly. I'm not sure which export is best to reconcile this though I'm assuming you'd look at the Balances tab in your Dashbord and export recent transactions
@hollow prairie const result = await stripeObject.confirmCardPayment(stripeClientSecretKey, {
payment_method: {
card: stripeElementsObject.getElement(CardNumberElement),
billing_details: this.getBillingDetails(),
},
});
if (result.error) {
// handle error
} else {
if (result.paymentIntent.status === 'succeeded') {
// handle succeeded
}
My concern is in case my server wouldn't receive the event because it is restarting of whatever reason. It would become then not synchronized with Stripe
@velvet bridge Thanks! Nothing stands out as non-standard here. How are you adding Stripe and Elements to your components? Via the injectStripe HOC or a Elements provider?
@pure crane Got it! We actually retry webhook deliveries over ~3 days in live should your webhook server be unresponsive: https://stripe.com/docs/webhooks/best-practices#events-and-retries
I should really get around to deleting all my secret keys for the servers that are no longer in existence
@pure crane We recommend the async payment flow (via webhook fulfilment) because of the potential drop-off from your users after completing any required SCA actions. In any synchronous flows, users leaving the payment flow prior to synchronous confirmation would result in potential non-payment. See here: https://stripe.com/docs/payments/accept-a-payment-synchronously
@hollow prairie I found the issue, it is because I did nextPage() before that, Thanks
@velvet bridge Glad to hear you're unblocked!
Hello 🙂. If I have a PaymentMethod of type='card' and I modify the billing details using stripe.PaymentMethod.modify() will stripe validate the postcode, line1 as it does in the Card obj with stripe.Customer.modify_source() ?
@median hull it's never a guarantee that we do an auth with the bank, but yes it works the same way on both APIs
Thanks!
I cant access my dashboard, is there an issue with Stripe today?
Apologies for any inconvenience, we're aware of the problem and are working on it
thankyou
Hi I have the same problem, thanks for your answer
@vocal wagon Hey. We're still working on it. Apologies! Will let you know once resolved.
guys, dashboard is off : Access to script at 'https://b.stripecdn.com/manage/assets/dashboard.runtime~copilot.cf728a70af44395f8b30.min.js' from origin 'https://dashboard.stripe.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
fix cors headers on cdn
@azure kernel Hey! Yep, we're working on it! Sorry for inconvenience. https://twitter.com/stripestatus/status/1406922372058214403
We’re currently investigating reports of the Dashboard and Support Site failing to load. We’ll post an update soon.
Hey can we edit the invoice in stripe? so we can send them our customized written invoice ?
@hollow prairie Thank you for you response. It is still not really clear for me how I should prevent multiple payment for the same order (mainly because of this direct call to Stripe from the client). Currently, when the user land on the checkout page and submit the payment, I create each time one new payment intent and then I confirm the payment using the secret. Does it makes sense? What I would like to ensure is once an intempt linked to one order id is sent to Stripe, all the further attempt will be skipped. Currently until the webhook confirmation, client can try other pay attempts over the same order.
@shrewd fulcrum Hello there. They can be customised to an extent: https://stripe.com/docs/invoicing/customize
@shrewd fulcrum Otherwise you'd need to disable our invoicing and send your own using our events
@pure crane confirmCardPayment will return the PaymentIntent if successful. You should manage your UI according to the success/failure of that call: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-submit-payment
Securely accept payments online.
Okay i will check @hollow prairie thanks
Can we remove this pay now button in invoice?
@hollow prairie ?
Hi guys, is there a technical issue your side? We cannot access Stripe from any of our devices at any of our locations at the moment, simply getting a blank page that will not load up.
@vocal wagon Hey! We're working to resolve the issue right now. Apologies! https://twitter.com/stripestatus/status/1406922372058214403
We’re currently investigating reports of the Dashboard and Support Site failing to load. We’ll post an update soon.
@shrewd fulcrum Is that a PDF or the hosted invoice page?
No apologies needed, I will keep my eyes peeled for any updates. Thank you for getting back to me so fast!
Np!
This came from stripe
Right, but is it in an email or on the invoice page (URL)? Either way I don't believe that can be removed, no
Here check at bottom, it's from stripe
@shrewd fulcrum I can't see the attachment
hello
@bronze pumice Hey
just created one account today
im from UAE dubai
i got one message from your side for mismatch in the name on the ID
@bronze pumice Can I please ask you to write into support? They're better at answering account related questions like this: https://support.stripe.com/contact
@shrewd fulcrum Yeah you can't remove the pay button. You'd need to manage your own invoices if you wanted to control that
Okay
@shrewd fulcrum Perhaps useful: https://stripe.com/docs/invoicing/sending#custom-emails
Hi
@charred sparrow Hey!
I have gone through the documention in ehich I can find example sdk .I have wisepad terminal . But when I try to discover reader I am not able to find the th wisepad reader
can ypu help me with this
Hi developers
@charred sparrow What specific example are you using? Are you following any documentation?
@exotic rain Hey
I am trying a connection with in person Payment terminal with native android app
@charred sparrow Have you followed the guide to connect? https://stripe.com/docs/terminal/readers/connecting/bbpos-chipper2xbt
hello, i have a problem. I need to migrate subscriptions from Chargebee to stripe and i want migrate cancelled subscriptions.. but i cant create subscription that ended in past. How can i do that?
Hi i need a help, actually i want to update the price of existing subscriptions. So i have gone through many resources but i didn't find the required answer. So can i update the existing subscriptions price
yeah I have followed the steps, here in discover configuration we have DeviceType.Chipper option
and aI have kept simulated to false
@vocal wagon that's just not possible to do with Stripe. You can't import canceled/old subscriptions. Only new/existing ones.
but I am not able to find my BBPOS wisepad in the list
but i have to do that 😄 there must be some option to do that
@vocal wagon there is not. That is impossible
i need them to save paid days from past
if i will not move them, then i will get thousands of tickets on support
@exotic rain you can't change the amount associated with a Price. You will need to create a new/different Price with the new amount first. Then, you will update every individual subscription to change the current Price (the old one) to the new Price
@charred sparrow This is difficult to debug here, can I please ask you write in to support? If you can provide as much context as possible we can help look into it further: https://support.stripe.com/contact
on my application
@vocal wagon I don't really follow what that could mean I'm sorry. If the subscription is expired/canceled, it means it ended and all days have been "consumed". Otherwise the subscription would still be active during this period.
Ultimately what you asked about, that is impossible. You can't create a canceled/expired subscription in our API. It's not something we support as we only support represent active subscriptions.
Now if what you want is to import a subscription that has been paid recently and will cancel after a certain period in the future, then that's possible
Thanks @crimson needle
I just need confiramation If the android sdk works with BBPOS Wisepad aswell?
@charred sparrow they should work yes. Sorry Terminal can be finicky to debug and it's not my expertise
Anyone familiar with this stacktrace?
[2021-06-17 07:49:20] main.ERROR: Magento2 v2.5.7: #0 /<snip>/<snip>/public_html/magento2/vendor/stripe/stripe-php/lib/Exception/InvalidRequestException.php(35): Stripe\Exception\ApiErrorException::factory() #1 /<snip>/<snip>/<snip>/magento2/vendor/stripe/stripe-php/lib/ApiRequestor.php(189): Stripe\Exception\InvalidRequestException::factory() #2 /<snip>/<snip>/<snip>/magento2/vendor/stripe/stripe-php/lib/ApiRequestor.php(151): Stripe\ApiRequestor::_specificAPIError()
Snipped some paths.
@humble light that just implies something is making a request that sends bad/invalid params to me. Do you have more details like an error message for example? Do you see any errors in https://dashboard.stripe.com/logs ?
@charred sparrow which device model do you have?
Yes, we have a payment_intent_error ongoing for some time now and struggle to find rootcause.
M2 v2.4.2
Stripe v2.5.8 (latest)
stripe-php latest ver
We configured webhooks automtically via Magento 2 backend
@koopajah#9102
@charred sparrow The wisepad 3?
I'm on phone right now sorry if I don't provide full details. But that's the short version.
MariaDB 10.5.9
@humble light yeah unfortunately I need more specific details. What matters here is the exact error you get. The rest is mostly not relevant I would say
Alright
yes its wisepad 3
Can we continue it in PM and I send you some more info on the problem?
If you are okay with that
@humble light no you should discuss here and share more details once you have the relevant information like an exact error message and request id (req_123)
@charred sparrow You should have received links to the docs for that device and a beta support email address to contact for assistance, but yes from what I can see the Android & ios SDKs support the device.
Okay, I'll provide more information later, thanks koopa
@daring lodge Yeah I have tried that , in the code we dicover config in which we have only DEVICETYPE.CHIPPER2X option
@daring lodge and we are not getting reader list when discoverReaded function is called
@charred sparrow have tried what?
@charred sparrow What version of the SDK are you using?
@charred sparrow That's not going to work then - part of the beta docs you received include instructions on using the v2.0 SDK beta release.
@charred sparrow You need to contact the beta support email address you were provided for more assistance with this device
@charred sparrow BUt I'd suggest first reviewing the materials you were provided to see if it helps to address this issue
How can we prevent that a new payment method is created even if the same card number/exp/cvc is used? (using confirmCardPayment method)
@daring lodge Oh Thanks.. sure I will check with them for beta release
@pure crane we're working on exactly that feature today and hope to ship it in the next few months. But until then, you'll always get a new pm_12345 even for the same card details. You would use fingerprint to de-duplicate card details as it'd be a string that uniquely represents that card number in the account
Ok thanks for the dedupe hint before the fix/new feature deployment!
Is it correct that to handle the default payment method of a customer, I have to use customer.invoice_settings.default_payment_method define in the Stripe customer ? So any time I add a new payment method and I want to flag it as the default method, it is a specifc call to the customer api?
@pure crane If you want that payment method to be used as the default for invoices and subscriptions that pay automatically and don't specificy a different PM explicitly, then yes, that's correct to update that customer setting
In fact what I try to solve is that each time I get the customer payment method list in my checkout, I can flag one as the default one. It would make sense not to store that on my server. For instance, the default credit card.
Hello folks! I've asked this question before and would like to follow up on it after doing a bit more digging: we are a platform that customers use to connect to Stripe and make online payments. I was wondering if there was a way to get a list of charges for all connected accounts over a specified period of time, but turns out I cannot do that. I was told that I can get a list of charges per Stripe account, but looking at the Stripe API, it only allows me to specify a customer_id. My next question is, how are accounts and customers related and how I can accomplish what I'm set to do? Thanks in advance!
@pure crane that's up to you -- just be aware that the customer setting is only for invoices/subscriptions. For one-time payment intents you always need to specify a payment_method explicitly. You could use the customer setting for convenience if you already load the customer from Stripe, but this can affect subscriptions if you have them. this might be something better suited to store in your own system, if you have more specific needs.
@magic dagger What kind of charge flow are you using? Can you share a representative payment id?
Thank you for the response! We use both payment intents and the charge api
@magic dagger Sure, but are you using destination charges or direct charges? If you're using direct charges, you'd be making API requests again authenticating as each connected account in order to retrieve the lists of charges.
Ah, I see what you mean. We are using direct charges.
@magic dagger Ok then the good news is that this is the same way you'd query per account (and why you can't query across all accounts). To get the payments listed for a given account you would call the /payment_intents list endpoint and use the stripe-account header to specify which account you wanted to list for (just as you do when creating payments):
https://stripe.com/docs/api/payment_intents/list
https://stripe.com/docs/connect/authentication#stripe-account-header
Ahh, perfect! Thank you for those links and for explaining this. I'll give it a shot and report back. Many thanks again!
No problem! happy to help out
Hi , is there any android beta version SDK available for P400 terminal
@charred sparrow The beta SDK release still supports the P400 - it's the same SDK
Thought there may be some changes required for an existing integration -- these are addressed in the beta release docs
Sorry guys having issues with subscriptions, when a failed payment, it's still creating an active subscription for the customer? Anyone point me in the right direction? Thanks
@dire quarry Can you say a bit more? How are you creating these subscriptions? Do you have an example subscription/request? What do you expect to happen instead?
@daring lodge sorry quite new to stripe. I am using .net, when a customer wants to use multiplay, we create a subscription schedule, this works fine when the payment is successful. When the payment fails it still creates the sub and will try the payment again a month later, instead I want to cancel the subscription completely so they don't get charge. Hope that makes a bit more sense mate
@dire quarry Did you build this integration yourself, or are you using third party tools?
Can you share an example subscription ID that's not behaving how you expect?
we have recently had a spate of disputes raised from someone repeatedly placing orders with numerous different cards. other than enabling 3ds for every single payment, does anybody have any clever Radar rules we could consider?
@slate kite If this appears to be programmatic, you could consider adding a CAPTCHA to your payment flow:
https://stripe.com/docs/card-testing#captcha
if you have identified patterns in the requests for the payments you may be able to configure some custom rules with Radar for Fraud Teams:
https://stripe.com/docs/radar/rules/reference#supported-attributes
But you should probably reach out to support to describe in detail what you see and what you suspect is happening to see about any more specific recommendations.
https://support.stripe.com/contact
@daring lodge ok to post sub IDs here or DM them?
@dire quarry here please, a sub id like sub_123 is safe to share
@daring lodge thanks! yeah. it's not programmatic. how should i reach out? i did open a support chat and they pointed me to this discord.
@daring lodge sub_sched_1J3mFpKHMXCcrj1e45Cj7HJJ
sub_sched_1J3mGyKHMXCcrj1enK8p4uq9
@slate kite Emailing in to support to share specific example of fraudulent payments will be your best best, but as i said if you have identified specific patterns and want to know which rules you can try using to impact those we can try to help more here.
@dire quarry Thanks, but this example does not appear to match what you described. This is a schedule you create last week set to start a new subscription mid-July. There is no subscription created yet, and therefore no payments. Are you expecting something else to happen here?
@dire quarry or, alternatively, do you have a different example of a subscription with active status like you described?
@daring lodge my apologies it may have been the way I described it, ideally I wouldn't want the new subscription to start in July as the card had already failed for the first payment
Has anyone else started experiencing issues with vue-stripe-elements-plus? We have suddenly started having issues verifying a credit card before we create the payment.
@dire quarry you're describing a failure for this example? What indicates to you there was a payment attempt at all?
@dire quarry or if you're extrapolating from a separate example with a failed payment, please share that example
@daring lodge when checking the dashboard for the customer it is showing a failed payment for £44.89 then an invoice due 18th July for £19.99
@dire quarry What's the ID of that failed payment?
@vocal wagon hey there - what sort of issues are you having? That's a community provided library that might be best to ask in their github issues, but I can try to help. Do you happen to have a repro of this behaviour in test mode in a fiddle or codesandbox we can inspect?
@dire quarry if you have the ID i can look, but it's unrelated to the subscription creation you scheduled, because there are no payments for the(non-existent) subscription, yet.
@dire quarry there might be failures for other subscriptions, or one-off payments, but how you handle these for your customer is a choice for you to make
Hi all, apologies if this isn't the place for this question but I'm not having much luck with customer support. I'm a developer at a company that facilitates payments from Customers to Connect accounts via Stripe, neither side has dashboard access or much awareness of Stripe. We recently got a new feature request for our users using Connect accounts to be able to desposit funds into any number of different bank accounts. These users are companies with various locations, all operating under the same business entity. In some situations, all the locations will use one bank account, in others the locations could all have their own bank accounts, but they are all the same business (operating under one Connect account).
After several days in the docs and some experiments I've realized there's no easy way to do this. I thought at first I could just specify a destination bank in the PaymentIntent API, then I realized this is only possible via manual Payouts. Which is not great, but makes sense and we can make work easily. The thing that really threw a wrench in our plans is refunds. Apparently when you do a Refund through Stripe, the funds are always debited from the default bank account for the Connect account, which basically means we can't support this multiple bank accounts feature. Reason being there's no expectation of a true default bank for the business.
What I'm hoping you guys can tell me is if I'm wrong about anything above, or if you could offer some guidance as to how we could change our integration to support payouts and refunds to specific bank accounts. The only other thing I think I could do is set up multiple connect accounts, one for each bank, but then things become very fragmented and we can run into things like having to do multiple KYC updates that are all updating the same information split across multiple Connect accounts.
Sorry this is so long! Hope you guys can help.
Hi, how can i get stripe payment fees in payment webhooks? i can see them in the online portal and in payout reports, but not in any webhook. any idea? many thanks
@daring lodge would that be the payment intent Id?
@ripe spindle hey there - reading through this, bear with me
@vocal wagon hello! you can find the fee on the "balance transaction" within the charges associated with a payment intent. These are not included with the webhook payload, but you can retrieve them using expansion as seen here:
https://stripe.com/docs/expand/use-cases#stripe-fee-for-payment
@dire quarry yes exactly, pi_123 etc
@daring lodge pi_1J3mGzKHMXCcrj1effUimFb9
@ripe spindle This kind of routing to specific bank accounts where multiple are set up for a given account is not really a supported flow. While you can set up multiple accounts for a given currency, the default is used for payouts etc:
https://stripe.com/docs/connect/payouts-bank-accounts#multiple-accounts
What you're describing sounds more like a use case for separate connected accounts each with their own bank account. you can control the destination stripe account for payments including splitting payments to multiple accounts using "separate charges and transfers" but you can't split payouts within a single connected account to multiple external bank accounts.
https://stripe.com/docs/connect/charges-transfers
where do I find my connected account and currency code?
That's what I was afraid of, but it makes sense. So it sounds like we just need to create a new connect account every time we need a new bank account. The only thing that will be an issue there other than the fragmentation is when Stripe changes KYC requirements, we will end up asking our Connect account users to update the same information multiple times. Currently we provide the KYC URL and let them update it via the Stripe built in. Sounds like we may have to roll our own because we don't really want to expose this problem to our users.
Thank you for confirming this is what we needed to do, must not be a very common problem!
@normal sun hey there - what are you trying to do?
I try to link my online shop
My colleague who works in China said I need to provide secret key, publishable key, connected account and currency code for that.
( @ripe spindle I misread/misspoke slightly earlier - you can direct manual payouts to specific bank account as you noted, but this won't change the refunds using the default account for a given currency
https://stripe.com/docs/api/payouts/create#create_payout-destination )
@normal sun I'm not sure what you're trying to accomplish. What do you mean by link to your online shop?
@vocal wagon hello -- please don't use @here -- what's the issue you're seeing?
@daring lodge sorry mate did you happen to check the id - pi_1J3mGzKHMXCcrj1effUimFb9
@dire quarry ah i missed that earlier, thanks. let me check now
Yeah that's a bit confusing from an integrator perspective because I don't know why Stripe would support paying out in to a specific bank account, but not payout from a specific account. Nice thing with doing this with multiple connect accounts is now I don't have to deal with all that 😄 . Thanks again!
my dev didn't answer me. how can i fix this myself ? I'm a front developer but I'm not use to this 🙄 thanks.
@gaunt lark hello! this is about the webhook signature verification issue, right?
@dire quarry this payment is associated with invoice in_1J3mGxKHMXCcrj1ej0UKKX5r which is a one-off invoice, unrelated to any subscription
exactly !
@dire quarry you could remove the saved payment method if you wanted, or ask your customer to save new payment details and set up a new default
@Will gotcha, what are you using on your backend? a plugin or framework? or did you/your dev write your own integration?
@dire quarry you can also configure your settings to determine what happens when automatic payments fail, including cancelling the subscription:
https://stripe.com/docs/billing/subscriptions/overview#automatic-payment
@bold basalt I'm using PrestaShop and it's an official module (plugin) from Stripe
@gaunt lark so I'm not super familiar with how that plugin is set up but I imagine it asked you to put in your webhook signing secret into the plugin at some point, is that right? (don't paste the signing secret here, just checking if you revealed your signing secret and pasted it in)
Hi, I am working on a platform which works on a pay as you go basis. Is there any way to configure automatic payments at the end of each month for variable amounts? Essentially something like subscriptions but with the amount changing as per use
@turbid garden hello! yes supported by creating one off PaymentIntents but your code would have to do that on say a cronjob (there isn't any way to "schedule" a one off payment)
Okieeee, got it! Thank you @bold basalt :p
you have to put your production key and secret key when Stripe is on production mode. In the module's files, you have this webhook.php file where you have this code
@gaunt lark yes the publishable and secret keys have to be added to the plugin but were there any steps around adding the webhook signing secret? let me check something one sec
the webhook secret key ? no problem
@gaunt lark its ok, I'd suggest you write in to Stripe Support at
https://support.stripe.com/contact. Please include example event IDs in your email where the STRIPE-SIGNATURE header was absent, so the team can look and investigate.
Hi there, can anyone assist me in setting up oauth connect for standard accounts? When the client gets redirected to my uri_redirect they get a fatal error. When I check out what causes the error I get this error message: Backend fatal error: PHP Fatal error: Uncaught Error: Class 'Stripe\Stripe' not found in .....
@vocal wagon hello! it looks like your backend doesn't have Stripe PHP library set up right, I'd recommend digging into that and first setting that up correctly
hi team!
can i get some help with a weird account plese?
please
and by account i mean customer...
@bold basalt after doing some research I thought the same. From what I see is that the stripe PHP library can be installed using two methods: the first one being using composer and the other one being manual. I am running my site on Wordpress so I would have to manually install the stripe php library, which I did. I downloaded the stripe.php from github (https://github.com/stripe/stripe-php) and extracted this into a folder in the backend. Something went wrong, because I still get the error. Any thoughts?
@safe fiber hello, sure pls ask
hi!
i have this weird subscription https://dashboard.stripe.com/events?related_object=sub_FWgmAOgRRSyvqg
why are the events out of order?
and why were 1 invoices generated?
@vocal wagon did you include the init.php file correctly as mentioned here: https://github.com/stripe/stripe-php#manual-installation
@vocal wagon I would debug this by creating a new file, setting up Stripe PHP and then doing something simple like creating a Customer in a PHP file to see if the Stripe specific files are being imported correctly
@bold basalt I added this line: require_once('/path/to/stripe-php/init.php'); at the beginning of my code snippet for stripe connect for standard accounts
with the path I installed the init.php file in
@vocal wagon you have to include the real correct path, what you added was a "dummy" path
@safe fiber can you explain more what I should be looking at? which events, how are they out of order, etc?
if you look at the dates, they are out of order
@bold basalt so my email was full and I think stripe blocked my email after to many returned emails.. can anyone assist?
@safe fiber dates on the Invoices? Events? the latest events or older ones? Just not sure what to look for
@quaint yacht account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
Ty
Hey guys.. We've been struggling with Stripe Elements (via stripe.js) for hours and our website remains unfunctional. The issue is that events (such as change, blur, ready) are never fired. We used a Vue wrapper library before, to rule out it was a problem with this library we wrote the entire thing up from scratch in pure JS (with pure Stripe Elements) and events still cannot fire.
this.instance = new Stripe('*******');
this.elements = this.instance.elements();
this.card = this.elements.create('card');
this.card.on('change', function() {
console.log('change!')
});
this.card.mount('#stripe-elements');
@bold basalt sorry hold on, just got pulled into a meeting
@bold basalt how do I know what the real correct path is? I used the path in which I extracted the stripe.php file for the require_once line, but if I understand correctly this is not the correct path?
also i got dates mixed up
@vocal wagon I don't know how your server is set up but you need to point to the specific path where your init.php is digitally located in your server. The one you copy-pasted was an example path, it isn't a real path.
@opal ferry hello, one sec
@opal ferry CardElement is being mounted correctly, right? (just checking what exactly you're seeing)
@bold basalt Yes, it's mounted and visible 🙂
@bold basalt actually i guess i just want to understand what this "early fraud warning" thing is for this customer
Hello, I have a question for any Stripe dev able to answer it regarding Stripe Connect (Standard accounts and Direct charges):
Can you make it so that it is the BUYER paying for the application fees / Stripe fees?
@safe fiber where do you see that EFW, I'm on that Subscription page on the Dashboard, don't see it there
@vocal wagon hello
Same model, just charging the buyer instead of the seller for the application and Stripe fees, so that the seller receives the full $10.00 in the end.
yeah, on the customer page on the dashboard
@vocal wagon yes you can charge the customer an additional amount that covers the application fee that you're taking out. Fee it isn't possible to cover entirely as it is a proportion of the total payment amount
@bold basalt https://dashboard.stripe.com/payments/pi_1IxwPZCx65IjJG44UWYZ1PLY this payment in particular
@safe fiber yep found it, it is basically this: https://stripe.com/docs/disputes/measuring#early-fraud-warnings
@bold basalt So I can only simulate this behavior, for example by charging the customer $101.23, but I can’t do it directly with any Stripe product, right?
oh... so the fact that there are 2 payments in the list is not that we tried to charge that invoice twice?
@vocal wagon "I can’t do it directly with any Stripe product, right?" -> not sure what you mean here
@bold basalt No stress.. Just wanted to make sure you saw that I do see the Card Element properly mounted.. For good measure I tried to commenting the line away, and the object disappeared.. So for some reason events aren't fired, but everything else works perfectly fine
the payment tagged as EFW is actually the customer initiating dispute?
@safe fiber not my best area but I think it is them flagging for fraud, the dispute might happen as a side effect of that fraud flag
@opal ferry yep was looking, one sec
@bold basalt Sorry, can I charge and application fee as a fixed currency amount + %?
For example, can my application fee be “3% + $0.30”
@vocal wagon yes it can be, your code determines the amount to charge ultimately
Hi, I have a strange issue with Stripe Checkout v1, using the PHP library. Over the last few months far 2 or 3 customer got the green tick in the modal window but then no payment requested. Nothing shows up on the dashboard or in the logs. Their bank also confirmed that no payment was taken. The integration works perfectly fine for all other customers.
I have a hard time figuring out where to start debugging this. I have no access to the client's Stripe account.
Yes, that's what I did. I used this path /domains/mysite.com/public_html/wp-content/plugins/Stripe Connect/stripe-php-master/init.php
@opal ferry it works here in this quick Fiddle I tried on: https://jsfiddle.net/hmunoz_stripe/ovcy9eg0/5/
Can you have a look? Try debugging your code and compare to mine and see if any console logs have any errors etc
@hidden snow hello, the green tick basically means Stripe Checkout created a Token. The payment is created when your webpage sends that Token to your backend server to create a Charge. So I would debug there, look at your client-side and server-side logs to see what case the Token can be not sent to the server.
@vocal wagon (keeping the OAuth issue aside) if you add some code to the PHP file to just create a Stripe Customer and run that file, that would be the way to debug and see if your import works as expected (and the Stripe files are picked up).
by them you mean the customer?
@safe fiber yes
@bold basalt That is so strange... I have now compared the codes and they do match.. I suppose something else must be interfering with the event handlers then
@bold basalt I noticed that the snippet doesn't accept this path /domains/mysite.com/public_html/wp-content/plugins/Stripe Connect/stripe-php-master/init.php. I get the error:
The code snippet you are trying to save produced a fatal error on line 1:
require_once(): Failed opening required '/domains/mysite.com/public_html/wp-content/plugins/Stripe Connect/stripe-php-master/init.php.' (include_path='.:/opt/alt/php72/usr/share/pear')
@opal ferry yeah it looks like it, your code seemed right and this should ideally work simply so I'd dig a bit more on your end and see what it could be. Like on a plain JS+HTML page, this should work.
Thanks, that's where my trouble starts. I'm not aware of any client-side or server-side log for Stripe with the module I use. Only successful payment is logged on the site but this 2 or 3 clients I'm aware of got the same result each time they tried.
@vocal wagon yeah not sure what the root issue there is, looks like the path is invalid, looks like an absolute<>relative path thing
@hidden snow yeah I'm not sure then, if you're using a module, I can't say what the module code is doing under the hood really. All it should be doing is making a client-side <> server-side call after Checkout creates a Token.
I've noticed that the Stripe dashboard uses fields that aren't in the published API. Is that normal? They are fields I'd like to use. Specifically, on Customer, invoicing.email_to and invoicing.email_cc.
@unique shuttle hello, yes Dashboard uses some special API fields that aren't in the regular API. Those two email_* fields are a good example, those are Dashboard only and not intended for the public API currently
@bold basalt Thank you for the reply!
@bold basalt Okay I managed to fix the issue where I get the fatal error. However, when the client is redirected, the account is still not connected.
As far as I know that's all it does. What is odd that it has been working for thousands of payments but then there are some clients who have difficulties. Can it be something on their device that is interfering?
@vocal wagon can you add logs to your code? Log out whether your webpage is sending a request to your PHP endpoint, what data it is sending, whether your PHP code is connecting the account or hitting an error, etc. There's multiple things that could be happening, adding logs will help you understand what is
This is the code I used:
require_once('/domains/mysite.com/public_html/wp-content/plugins/Stripe Connect/stripe-php-master/init.php');
if ( ! isset( $_GET['scope'] ) || empty( $_GET['scope'] ) || ! isset( $_GET['code'] ) || empty ( $_GET['code'] ) ) {
echo '<p>nothing happening here</p>';
} else {
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey('my live key');
$response = \Stripe\OAuth::token([
'grant_type' => 'authorization_code',
'code' => $_GET['code'],
]);
// Access the connected account id in the response
$connected_account_id = $response->stripe_user_id;
}
@hidden snow I can't really say, like I don't think it would be device related, maybe there was an error on Charge creation that was being suppressed? maybe there was a temporary server network issue? like it could be any number of things
@vocal wagon yep I see what your code is doing but adding logs will help you identify how far your code is making it and where it is breaking. I can't walk through every part of your code for you so a lot of this troubleshooting will have to be done on your end. But adding logs like you did is a good first step. Is that "nothing happening" log being hit?
I would have no idea how to do this, I am a newbie regarding these things.
@vocal wagon you would have to work with a developer who can help you then (maybe a friend who is comfortable with PHP) but a Connect integration is very developer intensive, so I can't really unblock/teach via a chat! But you're doing great so far in unblocking yourself!
Okay thx I'll try to fix it myself
ok I sent it. I have multiple event IDs btw (error 400, 500 & 503). thanks for the help. 🙂
I occasionally get a "Must provide source or customer" error when the request is sent without the token and that is a fatal error, logged. When this green tick without request happens, it doesn't even get to that stage. No log in Stripe either that is weird.
it's not temporary, the same 2 customers I know of gets this error consistently. All other customers can pay with no issues.
This isn't something you've been able to replicate on your end, correct? Ideally, I'd suggest starting by taking a look at the network panel + console of the browser inspector but if you can't replicate it you'd need to ask your customer to do it
Thanks, no I can't replicate the issue and it works for hundreds of payments each month, just as expected. Is there a way to log any js error in a file?
@hidden snow You could, but it would probably require a large change to the way you're currently logging things client-side
hey hey quick question im testing and learning but im gettting an error 401. Failed to load resource: the server responded with a status of 401 ()https://api.stripe.com/v1/payment_pages/cs_test_a1UwYC4kZzRfWZihtwsqJrM4M9MXezuxetCwOkIg1feToNBTKvw60GKq4e
is this a limitation of using a test/unactivated key
What are you trying to do when you get that response?
@sick talon hey yea so im just in this case creating a checkout item
so in my .net code new Stripe.Checkout.SessionService();
You're getting the error when creating a SessionService? I don't see any 401's in your account log. Is there a request id (req_****) that you see in your logs anywhere for that error?
o0 can i give u a tokenID
I'm not sure what you mean by a token id, there shouldn't be a Token involved here. Since you're working with a PaymentPage I would expect you to run into the error you're seeing when you actually try to redirect to Stripe Checkout. Are you following a specific tutorial?
so you are correct in saying that i do recive this error when redirtecting to the stripe checkout
the technology im using isnt directly covered by a specific tutorial
but im using an Azure Function
to return a Token iD to my client
which then uses it to talk to Stripe api
ok, and on what line of that file are you getting the error? or are you then redirecting using Stripe.js separately?
im redirecting use stripe.js
sepreatly
im just trying to find the
er github link
you're using https://stripe.com/docs/js/checkout/redirect_to_checkout right?
Complete reference documentation for the Stripe JavaScript SDK.
ah yes
here it is
sorry if im abit slow
im by no means an expert coder
no worries
Have you replaced that pk_test_publishablekeyfromstripe in the tutorial you linked to with your own test publishable key?
Which event type? checkout.session.created?
payment_intent.created
That would be a result of the backend call, sure, but on the frontend after you create the CheckoutSession is where you're seeing an error.
The part that's generating the error (from that page you linked) is here:
var stripe = window.Stripe('pk_test_publishablekeyfromstripe');
window.stripeCheckout = function (callBackInstance, amount, token) {
stripe.redirectToCheckout({
sessionId: token
}).then(function (result) {
// up to you
})
};
</script>```
@molten bolt A 401 is almost always that you're not using your account's publishable key in the frontend code there (replacing pk_test_publishablekeyfromstripe with your own pk_test_ value from https://dashboard.stripe.com/test/apikeys)
ok double checking now
yes ok so you are correct @sick talon i have to work out here
how do get that in there correctlhy
We're an online platform that uses Stripe to handle premium subscriptions. Most of our customers are teachers at schools. Most schools (definitely not the teachers) don't have credit cards for this sort of thing, they prefer to get a quote, then pay against a purchase order. The Stripe Free trial on a subscription requires a credit card. It's really put a dent in the number of schools signing up for the free trial. Can anyone think of any work arounds?
A trial period on a Subscription doesn't require a payment method until the trial is up. See https://stripe.com/docs/billing/subscriptions/trials
Delay payments on active subscriptions using trial periods.
@dense basin however, Stripe doesn't support purchase orders which is likely what you'd need for a school if they don't want to pay every single billing period until after it starts
Correct, I think they may be headed that way, see Quotes https://stripe.com/docs/quotes
Provide pricing estimates to customers before starting a subscription or invoice.
It really is as simple as copy-pasting the API key into that code sample
Quotes, sure, but that's still not the "send us a bill when the subscription renews and we'll pay it within N days" that most public institutions want to work with
Hey there, I am having an issue sending receipts using PandaDoc and the Stripe integration. The issue I have is that when we get a payment started from PandaDoc we get the customer email, yet it will not pass along the email as the receipt_email. Any Idea how to fix this? Also sorry if this counts as an account issue.
@sick talon corect again i had to add it to the header section in my index.html
Has anyone successfully integrated Stripe.NET on the front end with Epicor P21 on the far-back end? If you have, I would love to pick your brain
@hybrid galleon Hello! I'm not familiar with PandaDoc, but it sounds like something they would need to change on their end. Can you provide more details?
I know they have Invoicing, I'm not sure how different an "Invoice" is from a "Purchase Order"
Lol, I have been told that is something they need to change for them to tell me that stripe needs to change it. PandaDoc is a form creator that lets you draft up agreements. Stripe is integrated as a payment type there. I think the problem is when we get the info from PandaDoc they have created a charged object and in that charge object it is not passing along the billing email as a receipt_email. Now what they told me is that stripe integration on their end doesn't ask for that other email field so that can't fix it.
@mighty hill LMK if you need me to clarify further
@hybrid galleon It sounds like PandaDoc simply doesn't support your use case with receipt_email? You can update the receipt_email yourself after the fact in your own code, if that helps: https://stripe.com/docs/api/charges/update#update_charge-receipt_email
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Sweet, okay so this is where I get super lost, how do I access the code thats already there and update it to just take the billing email. ( I have very little coding experience sorry :/ ). I have looked at that page before but I get lost how to apply it to our account basically.
Do I need to do this everytime?
Its not a horrible idea to do a process manually at least a couple of times, to then understand the ins and outs of a system. Then you can work on automating
@hybrid galleon Usually you would set up a webhook endpoint to listen for events that would trigger the update to the receipt_email. It's not a simple thing to build for someone who isn't a developer.
Thank you, I will start there! I appreciate the step in the right direction!
@dense basin @sick talon had to step away, but I'm happy to help! Can you tell me a bit more about where you're running into trouble? As mentioned earlier trials on Stripe Subscriptions don't require a payment method up front, and you can set a Subscription's collection_method to send_invoice which sounds like it might fit your use case: https://stripe.com/docs/api/subscriptions/create#create_subscription-collection_method
Can you provide specific details/concerns about that approach and why it will or will not work?
This is some of the first we are hearing of that, and it's definitely encouraging news. I think some of our confusion came from this (see screenshot below). I think our developer delivered a actual SaaS subscription checkout, with a free trial on front. So yes, it doesn't let you start the trial until you enter card info because it wants to charge you on Day 91. Perhaps we have to avoid the billing portal and use the API instead to deliver just a free trial (no purchase necessary).
@dense basin Yeah, if you don't want to collect payment information up front you wouldn't use Checkout when creating the Subscription.
That's perfectly fine, I think we focused too much on staying inside of this checkout/billing portal, which was the wrong move. Thanks so much @mighty hill @sick talon . Our developers that did the work left so we are just starting to look into it ourselves, learning a lot. Appreciate you all.
@dense basin Happy to help! If you need anything else just let us know!
Hi! I was asking in Stripe's IRC chan how I can what bank account(s) are attached to a Connected Standard Account. When I perform an API call to list External Accounts for a Connected Standard Account, I get the following error: "You cannot perform this request as you do not have Platform Controls for Standard on the account." Is there a way to ask the user for permissions to enable us to view their attached bank account programmatically? We'd like to show the last 4 of their account number from within our app. Thanks!
@wild wyvern Hello again! You can't access this information from the platform for Standard connected accounts.
ok thanks @mighty hill... was just getting thrown off a bit by the error message
@wild wyvern Yep, agree that error message could be a lot clearer. Will flag internally.
Hi all, I need help, Is it required to generate payment method first in order to make a 1 time stripe charge?
@marble mason I think the answer to your question is yes, but I'm not sure I fully understand? Can you provide more details? How would you create a payment in Stripe if you don't provide payment method information?
Well I am using nuxt right now
and I need to obtain that payment method at nuxt end to send it to my API which will communicate with stripe to do rest of stuff
But I am not sure which function is needed to be called to create payment method. Trust me every time I go to Stripe API Docs, it has seemed lot confusing and unclear.
Do I need to create session or intent for this purpose as well?
@marble mason Well, let's back up a bit. I'm not clear on what you're trying to build, so I can't tell you what to use to build it. Can you describe the payment flow you're trying to create?
Okay it is a one off charge
Sort of ecommerce system
where people pay for an order
But I don't want stripe checkout page instead I want whole stripe form on my website's page
@marble mason Okay, sounds like you're using Stripe.js and Elements then, right?
Exactly
@marble mason Okay, so you likely want stripe.confirmCardPayment: https://stripe.com/docs/js/payment_intents/confirm_card_payment
@marble mason You call that with a Payment Intent's client secret, a reference to the Card Element, any other billing details you want to include, and it takes care of creating a Payment Method, confirming the Payment Intent with it, and handling authentication if required.
So I need to create payment intent? Would my backend API send payment intent to my frontend? Or Stripe.js can create intent?
@marble mason Your backend code needs to create the Payment Intent and send its client secret to your frontend code.
I see and for the subscription based stuff, we will need same payment intent as well?
@marble mason Subscriptions work a bit differently. Subscriptions generate Invoices, and those Invoices generate their own Payment Intents. Generally speaking you create a Subscription on your backend and then send the first Invoice's Payment Intent's client secret to your frontend to use with stripe.confirmCardPayment. We have a guide for this here: https://stripe.com/docs/billing/subscriptions/elements
Oh thank you so much for guiding me through 🙂
@marble mason No problem, happy to help!
One question, do you guys at strip has official plugin for Nuxt js?
or for Vue
stripe*
@marble mason Not currently, but I think something is being worked on. Let me check, hang on...
@marble mason Doesn't look like we have anything first-party, but we generally point people here for Vue I think: https://github.com/vue-stripe/vue-stripe
@marble mason They are different. Setup Intents are used to set up payment information for future use without taking payment now. Payment Intents can be used to set up payment information for future use as well (by setting setup_future_usage) but a Payment Intent is always associated with a payment.
@marble mason So, for example, if you wanted to save someone's payment info today and charge them $10 a week from now you'd use a Setup Intent.
On the other hand, if you wanted to charge someone $10 today and then charge them $10 again in a week you'd use a Payment Intent with setup_future_usage.
So we can say that setup intent is more related to subscriptions thing while with payment intent we can charge someone at anytime?
@marble mason Setup Intents aren't only for Subscriptions (although Subscriptions sometimes use them, such as for free trial periods).
Is there a way to get immidiate support for stripe the branchs are closed and i have a huge issue that i need resolved asap
I really appreciate anyone who can help me right now
@terse apex If you have a developer/code question you can ask it here. If you need other support you can contact our support team here: https://support.stripe.com/contact
Is there a way to export customer data to another stripe account, stripe support is unavailable right now
Am I able to dm you about my issue
@terse apex Stripe Support is available 24/7. That's not an issue we're able to help with here, so you should use the support link in my previous message.
It shows as unavailable right now
@terse apex You should have an email option there as well. Try https://support.stripe.com/contact/email
Since your a developer are you able to transfer customer data from one account to another
@terse apex We have a migrations team that may be able to help you transfer some info, but I'm not sure of the specifics.
Ok I really appreciate it, its just a very time sensitive issue i have emailed support a day ago and havent heard back, lost about 2k today form it not being resolved.
I appreciate you trying to help though
@terse apex If you emailed yesterday they should be getting back to you shortly.
Hopefully 🤞
Hi. I need some help regarding payouts for my company. We have been integrating your platform on our running project which expects a high number daily. Than i saw your payout policy for Brazil and found it a little troublesome because of our market conversion. I need to know that before moving further.
@peak dust Hello! Need to know what?
Do i need to really need to wait 30 days for payout? I thought it were a limitation when registering as a person and not as a company.
Since we do game development, our market moves pretty close to conversion. It’s troublesome that we can’t use the money to increase server performance and such.
@peak dust Brazil payout timing is listed as 30 calendar days here: https://stripe.com/docs/payouts#standard-30-day
@peak dust
30 calendar day
Applies to: Brazil
Payouts are made daily and contain payments processed thirty calendar days prior. For example, payments received on July 1st would be paid out on July 31st.
I see. So, there’s nothing i can do about it?
@peak dust I don't think so, but I really don't know for sure. You should contact support and ask them if there's anything that can change regarding payout timing: https://support.stripe.com/contact/email
I see. I will try to mail them.
How do I get in contact with support besides an email
@thin echo Hello! All the support contact options are listed here: https://support.stripe.com/contact
@thin echo Depending on various factors you may be able to chat with support or request a call in addition to emailing.
That’s not working and I’ve already emailed and I got the typical rhetoric response
@thin echo Those are the only options available for contacting support. If the response you got doesn't address your issue you can reply and provide further details.
I sent screenshots the whole 9 yards
Couple days ago was the first time I’ve ever been on the server
@thin echo What server?
This one
@thin echo Sorry, I don't think I understand. I thought you were trying to contact support?
Yes in regards to a company that stripe backs as far as payments
@thin echo This server is for the Stripe developer community. We're not support, and can only assist with development/code questions. What specifically is the issue you need help with?
I sent a pair of sneakers to Sneaker Con have all the proof of it being delivered but I still haven’t got paid I will try to contact them several times and I’ve got absolutely nothing in return
@thin echo Unfortunately that's not something we can help you with here, and it's honestly not something Stripe Support would likely to be able to help you with either. You need to contact Sneaker Con for a resolution.
@thin echo No worries!
Just not sure how to get a hold of this company who seems to be worldwide
@thin echo It sounds like Sneaker Con may use Stripe for payment processing, but if you have an issue with some kind of payment you need to contact the merchant.
That’s the problem I’m getting nothing believe me I’ve tried
I would’ve never had to go to the links to contact you guys if they would at least contact me back
Lot of frauds in the shoe business
@thin echo If you think there's fraud involved you may need to work with local law enforcement, but honestly we're way outside my department here. 😅
No problem appreciate all your help and thoughts going forward
@thin echo Good luck with it!
Hey I'm trying to get Stripe webhooks to work locally with express 4.x and I'm not sure where I'm going wrong
I'm following the node guide for verifying signatures closely (https://stripe.com/docs/webhooks/signatures#verify-official-libraries) but stripe isn't able to verify my signatures when it constructs the event. Here is the relevant code:
const server = Express();
server.use(Express.json());
server.post("/stripehooks", (req, res) => {
const stripeSig = req.headers["stripe-signature"];
log(`signature: ${stripeSig}`);
log(`body: ${JSON.stringify(req.body)}`);
let event;
try {
event = Stripe.webhooks.constructEvent(req.body, stripeSig, "LOCAL SECRET KEY HERE");
} catch (err) {
log("err: " + err);
res.status(400).send(`Webhook Error: ${err.message}`);
return;
}
res.json({ received: true });
});
Verify the events that Stripe sends to your webhook endpoints.
The stripeSig and req.body variables are perfectly fine, but for some reason stripe isn't able to verify the signature
The only part I've omitted is the bodyParser part since express marked it as deprecated
@strange tiger Are you sure you're working with the raw body? Webhook verification issues are pretty common with express + other node.js frameworks because of changes to the body. I'd suggest reading through this thread for possible solutions on how to fix this https://github.com/stripe/stripe-node/issues/341
I've just tried going through a lot of the solutions (including the very bottom one) and none of them seem to work for me. I'm on express 4.17.1 and tried doing app.use("/your/stripe/webhook/endpoint", express.raw({ type: "*/*" })); since that helped shumiyao, but stripe is still sending me back signature failures
Is there something I'm missing?
Without the JSON.stringify on the rawBody line, req.body is just an object
I'm not sure what "raw body" is, I don't know if stripe wants an object, just the string, just the string in a very specific way, etc.
Ok so I just switched lines 2 and 3 and now it works
Weird
It's successfully constructing the event now, does that mean the webhook signal is 100% verified to be from stripe?
@strange tiger Glad you got it working! I personally wouldn't say 100% (because I'm not a security expert), but yes having signature verification working should guarantee that the event you're receiving is the same event that stripe sent
@strange tiger It's because of the line server.use(Express.json()). That's telling express to use the JSON body parser middleware on every route in your app. This means that the raw body is converted to JSON before it reaches your webhook endpoint, which won't work as Stripe needs the raw body to work
You'd want to make sure that your /stripehooks route gets excepted from the JSON bodyparser, there's an example of how to do this in the stripe-node webhook example: https://github.com/stripe/stripe-node/blob/master/examples/webhook-signing/node-express/express.js#L10-L16
Hi, I'm having some issues with using the stripe-cli. Webhook events are not getting triggered locally, but I can see they are being sent to my test endpoint.
Hi @gritty mesa, as in when you trigger events via the CLI they aren't being forwarded?
I'm using
stripe listen --forward-to http://localhost:8080/api/webhooks/stripe
And creating payment intents via the API. Previously, I'd see events related to these payment intents fired/forwarded locally from that command ^
I've seen this be fixed by logging out and back in again with the CLI: stripe logout and then stripe login, can you try that?
I logged in recently, but I'll try again.
If that doesn't do the trick, can you rerun the listen command with --log-level debug ?
I think this might be it
DEBUG proxy.Proxy.filterWebhookEvent: Received event with non-default API version, ignoring api_version=2020-08-27
I feel like that conflicts with the documentation "Receive events used in the latest API version. By default, webook events received will depend on your account's default API version."
Complete reference documentation for the Stripe CLI.
That shouldn't prevent the event from being forwarded though
[Mon, 21 Jun 2021 21:30:09 EDT] DEBUG Received malformed event from Stripe, ignoring
I see that in there a few times too
I see the webhook bodies in the log
hmm, can you try stripe listen --forward-to http://localhost:8080/api/webhooks/stripe --log-level debug --latest just to see if it's the API version mismatch
Hello, on Sunday I have asked the following question, but haven't seen an answer on it yet. Can anyone help me? #dev-help message
Here's the question again:
hello, does the starting_after parameter of the List Refunds api the ID of the refund? If so, is it guaranteed to be sequential? If I list all refunds and store the id of the last one, would I be guaranteed that if on the next call I pass it in I will be receiving all new refunds since the one I passed in?
while testing my question above (I still need an answer) I think I found a bug. I am using the .NET SDK. RefundService.ListAsync is not returning anything, yet RefundService.GetAsync with a specific refund id is returning the Refund object. Is this a bug or am I missing something?
@clever sleet They should be sequential, yes. Can you share the code you're using that's not returning any data?
var service = new RefundService();
var l = await service.ListAsync(); //Empty list
var r = await service.GetAsync("pyr_1J4SW4F7xEe6JCtFAzbGxI54"); //yet this returns a refund
service.ListAutoPagingAsync(options) also returns nothing
I just updated to the latest Package and still the same thing
req_6lwJnVb83RIRdN is the request id of the last request i just made
@severe python Hi - what's up?
@clever sleet I have no idea. What are the actual contents of l.
so when you put your phone number into the account as a customer service number can the public see the number?
@severe python I don't know. I'd suggest you reach out to Support with that one: https://support.stripe.com/contact/email
According to the dashboard:
Your support information may be visible in payment statements, invoices, and receipts.
So probably yes, although as @mellow spear said you should contact support to get the full answer
@clever sleet Ok looking into it.
these payments that are being refunded are transfers from another connected account
the connected account transferred it to this account
they show as refunded on the dashboard
@clever sleet It looks like this is a bug on our end, so we're working on fixing it.
@mellow spear good to know i'm not going crazy... is this being worked on or was just this discovered? I'm looking for an ETA
@clever sleet Not sure I have an ETA at the moment, but we're working on it.
thanks, is there a public bug report I can follow?
Stripe doesn't have a public bug tracker, but we'll keep you up to date here
thanks
Hey dudes! Quick question: Idempotency is not available for PaymentIntents, right?
Hi Dexter! Sure is, every API request can have Idempotency: https://stripe.com/docs/api/idempotent_requests
Nice! Thank u
Since the SKU system seems to be deprecated, is there any other way for reporting products while using Stripe Checkout? Specifically talking, is there any way to report how many and which products where buyed durning a large number of Checkout sessions? (For example: run report based on a Product ID)
i need stripe response in frontend like paypal
@simple mantle Hi! What do you mean?
Hello guys:
Is stripe supports MTN:DEP?
@simple mantle This might be what you're looking for: https://stripe.com/docs/payments/checkout/client
@upper basin I don't know what that means?
@mellow spear , MTN: DEP is a carrier billing system used for mobile transaction
That's something you'd have to build yourself. Stripe doesn't do stock keeping
@upper basin Ok. The question then would be whether MTN: DEP supports a Stripe integration, which is a question for MTN: DEP.
thank you @mellow spear
You're welcome!
@mellow spear , If MTN : DEP will support Stripe integration, then what are the steps we need to follow from stripe-end?
@upper basin It's entirely up to MTN DEP, as they would have to build the integration.
ok @mellow spear
Hi there
I have a question regarding the Payment Details. Am I able to modify the field below according to our codebase. We have our own codebase, calling the Stripe API so is there any chance to customise it?
This looks like the description on the first invoice created by a subscription, right?
Yes. It is by default. But what I want to achieve is when we call the stripe API (to make a payment), can we add customised description then stripe update it accordingly?
You can update an invoice's description: https://stripe.com/docs/api/invoices/update#update_invoice-description
Hi.
Does anyone know - when I charge an application fee to a connected account, that fee will be invoiced by Stripe to the connected account, or do I have to send an invoice (as a platform) to the connected account?
Thanks.
@vocal wagon Stripe doesn't invoice the connected account, the fee comes directly from the payment being made: https://stripe.com/docs/api/payment_intents/create?lang=node#create_payment_intent-application_fee_amount
Here's how you'd do it for direct charges: https://stripe.com/docs/connect/direct-charges#collecting-fees
Yes, but that amount (e.g. $1.23) comes from somewhere (goes from a provider to a customer), therefore, someone has to invoice it (for accounting purposes), right?
Are you using direct charges or destination charges?
Direct Charge
In that case the charge is created on the connected account and the application fee amount is transferred to your platform account automatically
I understand that, but I'm not sure you got my question:
-$10 for a service (the connected account invoices the end-user)
-The connected account loses $0.59 (as Stripe commission) and $1.23 (as an application fee), which are basically costs
-For that $0.59, Stripe mentions "Commission" on the Monthly statement.
But for those $1.23 (which goes to the platform), someone has to offer a document (invoice) or so.
So my question was... who is responsible for accounting those $1.23 ?
Stripe or the Platform ?
@vocal wagon The fee shows up on the Balance Transaction: https://stripe.com/docs/api/balance_transactions/object?lang=node#balance_transaction_object-fee_details-application
The platform doesn't need to do anything other than pass in the application fee amount when creating the PaymentIntent
If you mean who is responsible for showing the connected account how much they paid in platform fees, that's up to the platform
It's also available on the Stripe dashboard: https://dashboard.stripe.com/connect/application_fees
That, and also - how to proceed with internal accounting. I mean, those $1.23 are money that come from somewhere;
So from IRS perspective, you got money from someone (those $1.23), therefore you have to offer an invoice/receipt at least for those money to the party you've offered the service.
So that was the main question actually. We, as a platform, who should we invoice for those money? Or do we have to invoice at all? Not sure how it works.
Hello, I am building LMS website using LearnDash and Stripe. I would like to change checkout language to Polish. Can someone support me how to do it?
The plugin I am using: https://www.learndash.com/add-on/stripe/
@vocal wagon looks like something you would ask that company about directly instead
Looks like they use the Checkout Session API so you might be able to control the locale parameter https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale but it's something you'd ask the developers of that plugin/code
@vocal wagon We don't know much about accounting or the IRS in this server. We're developers and we help developers with code on their integration. You might want to talk to your own accountant or similar instead. Otherwise maybe try our support team: https://support.stripe.com/contact/email
Oh, alright then, got it.
And one additional question (which is developer'ish question):
As far as you know, when an user that has a monthly subscription can't be charged (due to expired card, or lack of funds), does he (the user) receive any notification that his payment failed?
We support emailing them automatically on each failed payment if you want yes. There's a settings in the Dashboard for it that you can disable/enable
Alright, cool guys, thank you for your time! I appreciate!
happy to help 🙂
@crimson needle thanks for the feedback. I will contact with LearnDash.
Hi I created draft invoice with amount_due, but when I pay them using pay(id), it won't pay the due amount. Do you know why? Or do I have to specify the amount in the pay function ?
It paid $0
@gritty spindle https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts because of this amount_due: 20 is below the minimum
Oh really?
yes. amount_due: 20 is $0.20
Thanks
By the way, how can I customise or update this field for subscription payment. It is by default but I would like to change to my customised text. It looks like it doesn't have the description parameter for update function.
you can't
It is fixed, isn't it?
yes we set it ourselves as part of the invoice creation/finalization on subscription creation
Sure thanks
the description on the invoice doesn't really matter in this flow since it's an itemized receipt/invoice being sent
Hi, Direct charge is recommended for Standard Account. But can I use it for Express account?
@peak root strongly discouraged, so I'd say no. Use destination charges
Ok, Thanks
Hi!
I'm going to use stripe checkout to receive a successful payment with a webhook and update user information.
Should I use checkout.session.completed or charge.succeeded as the webhook type in this case?
I personally think that last4 and network are charge.succeeded in the parameters.
@shut frost Depends what information you're after. checkout.session.completed will inform you specifically that a payment or subscription related to a Checkout Session completed. charge.succeeded will fire for any payment
Personally I'd listen for checkout.session.completed, then get the details you need from its related objects. For instance if you want the underlying charge you'd retrieve the PaymentIntent associated with the session and get the charge details from there: https://stripe.com/docs/api/checkout/sessions/object?lang=node#checkout_session_object-payment_intent and https://stripe.com/docs/api/payment_intents/object?lang=node#payment_intent_object-charges
@bleak breach Thank you for the wonderful answer. I didn't understand enough. I can see what should be implemented.
Good morning, I was connected and now I am not connected to the software DanceStudio- Pro and my website. Now there is some kind of mis communication between the tax office, stripe and DSP. I have amended everything I can think of. Please could you help?
@hallow crystal referring to #📖rules 4 this isn't the place for that. You should contact Stripe support directly at https://support.stripe.com/contact
@Paul - apologies! Thank you for the support link!
Hey, y'all! I'm trying to set up our app with the newly released stripe-react-native. My issue is that I'm trying to set up a payment intent (we are migrating from tipsi-stripe) but I can't seem to figure out how to pass the payment details from CardField to the actual Stripe API. The cardDetails are very limited and I can't find any function that would actually take them as an argument. Even the example on Stripe docs doesn't actually utilize the onChange event.
Also, I can't use hooks because that would require major refactoring of a lot of parts in our app. Not sure if that's a dealbreaker.
Hi Admins .. Actually Im trying to set up a market place, where I was not able to add test bank accounts . Kindly heko
Hi! You can use class components too, but they aren't as well documented (the library is still in beta so we're working on it). The source for the components is here: https://github.com/stripe/stripe-react-native/tree/master/src/components
Hi !
We're using Stripe for subscriptions on our product. The paiement is made every month.
We are currently in touch with a group of prospect (like an association), and we would like to offer them a discount depending on the total amount of subscriptions. For example, from 0 to 10 subscriptions, the discount is 10%. From 10 to 20 it is 20%... and so on. Do you know if we can do so with Stripe ?
@alpine depot In terms of passing data to the Stripe API, you'd use functions like confirmCardPayment: https://github.com/stripe/stripe-react-native/blob/master/src/functions.ts#L112
And if the charges can be updated for the next month automatically *
@alpine depot If I remember correctly tipsi would let you create a PaymentIntent on the client, with the official SDK we dissuade from doing that and ask you to create the PaymentIntent with a secret API key on the server instead
Not sure what you mean by this, can you elaborate?
Yeah, I've looked over the source multiple times. My issue is that it's not clear "how" to use the CardField component. I add it, it renders properly but I can't find where to actually use the cardDetails it returns. The confirmPayment function you sent doesn't actually use any of the cardDetails data. I just want to create a payment method and return the payment method id.
Hi! You can apply discounts to subscriptions, have a look here: https://stripe.com/docs/billing/subscriptions/discounts
Reduce the amount charged to a customer by discounting their subscription with a coupon.
Our API handles the rest.
Functions like createPaymentMethod and confirmPayment automatically grab the needed info from CardField under the hood. So if you have the CardField initialized then you can call createPaymentMethod like so in your "on press" handler: https://github.com/stripe/stripe-react-native/blob/96e1c293f1b202523b261af0eb10b7fc4f998aa0/example/src/screens/NoWebhookPaymentScreen.tsx#L68-L71
OK, now it's starting to make a bit more sense. (Wish it was a bit better documented).
Can I use that without const { createPaymentMethod, handleCardAction } = useStripe();? Can I call createPaymentMethod directly, basically?
I hear you on the documentation, as I said it's a beta so bear with us while we work out the kinks 🙂
ya Hi Paul.. Actually, We have integrated stripe for subscription of our service and the helpers who is going to fulfil the service will be onboarded as express account. This we are able to do, but in order to achieve payouts, we are unable to add test bank account where we collect the charges.
Yeah, I hear that. I'll talk to my team and see if we can even allocate some time to help with that.
Yes you don't need to use hooks, you can get the functions directly, e.g. import { createpaymentMethod } from '@stripe/stripe-react-native';
All those functions live here: https://github.com/stripe/stripe-react-native/blob/96e1c293f1b202523b261af0eb10b7fc4f998aa0/src/functions.ts which are in turn exported here: https://github.com/stripe/stripe-react-native/blob/96e1c293f1b202523b261af0eb10b7fc4f998aa0/src/index.tsx#L24
Yeah, I've read through the source a few times over the past couple of days. My tabs are crazy! We're trying to migrate from tipsi-stripe asap due to the Google notice of July 12th.
I might be out of the loop here, what Google notice is this?
Have a look here: https://stripe.com/docs/connect/testing#account-numbers you'd create the express accounts with the bank numbers you'd want to test with
Your app includes the com.stripe SDK: stripe-android, 10.4.6, which facilitates the transmission or collection of personal and sensitive information. These actions must comply with the Consent and Clear Disclosure Requirements and applicable terms of the Google Play Privacy Policy, as described in the User Data policy.
As of midnight on July 12, 2021 (UTC), new versions of apps containing this version of the SDK that do not comply with the Consent and Clear Disclosure Requirements set forth in the User Data policy will be rejected. Consider upgrading to version 16.9.0, recommended by the SDK vendor. Request more information from the SDK vendor.
The aforementioned SDK is part of tipsi-stripe which is no longer maintained
Ah yes I had heard of that
tipsi-stripe not being maintained is pretty much why we built stripe-react-native
For what it's worth, there is an open PR on tipsi for this but it's still worth it to migrate to the official Stripe library
Just for UI consistency and PCI compliance even
I've noticed the stripe app in slack does not have any notifications for payment reviews. Is there a specific reason for that?
Which Stripe app is that?
Ah, that plugin was actually built by Slack, not Stripe. As such I have no idea why they didn't include payment reviews I'm afraid
Ahh. Ok. I had just assumed it was built by stripe for some reason.
If you look in the "Permissions" tab it shows
This app was made by Slack.
As always, I skim too much. haha. Thanks!
Hey guys Im using Stripe.js/StripeElements to create subscriptions. It was working all week but today the "confirmCardPayment" is throwing a "Processing Error" (Error not listed in your docs either). I am receiving a ClientSecretId from creating the StripePayment, but no PaymentIntent is shown in the Dashboard. The API is returning 400 with no information. As I said, exact same code been working all week
@distant pelican hi there — do you have the client_secret you're getting that error for?
We(XXX Marketplace) are actually providing service for customers through helpers where we are able to have our customers subscribe our services(prices in stripe) and created accounts for helper(here able to add test bank account) but the doubt is how do get payouts to XXX marketplace ? (some test bank needs to be configured right ? )
Is there any way to fetch calculated stripe fee from PaymentIntent object?
pi_1J4oxYIt5Wc5dByWjWkcR1h8 is whats throwing an error, but this pi is not shown in my dashboard
pi_1J4oxYIt5Wc5dByWjWkcR1h8_secret_2iTd4sguxoqG741fVxjgGAZgT
is the client secret
(running Stripe in test mode as we arent live yet if this makes a difference?)
@junior ivy it really depends how you use Connect(https://stripe.com/docs/connect/). In general you just transfer the funds to the connected account, and they get paid out according to the payout settings and bank account that were created on that account, which depends on the type of account(Standard/Custom/Express) so it's hard to give a generic answer.
Hey i have a question
@bleak breach damn, it worked! This was surprisingly simpler than I thought. Thanks! Now to do some fine tuning.
@distant pelican the errors are this one right? https://dashboard.stripe.com/test/logs/req_TaNTStmzTgEbbH The problem is you(or someone with access to your Dashboard) is cancelling the subscription on the Dashboard : https://dashboard.stripe.com/test/logs/req_DVyzrXgoZfJEXl which invalidates the Invoice+PaymentIntent
@shrewd fulcrum sure, what's up?
I made a product in stripe of $999 which has 99 days trail period and then $24 per month after trial, so if customer buys the product and stripe send them invoice of the product with $24 payment with due date, so if customer pays the $24 payment the next minute so their period would extend or end or they just paying a month early and the plan would continue and their $24 payment would deduct automatically every month!
Please let me know on this
I'm very confused. Where does $999 come into it? Does it cost $999 a month or $24 a month?
Also can we stop sending invoice of stipe?
$999 product with 99 days trail period and after that $24 per month
i just wanna ask when stripe send them invoice of $24 and they pay it, then how the plan would work?
ah ok. The thing is, that is not how the Prices API in Stripe works at all so it's not something you can directly model. Also a trial period usually means 'no upfront payment', but I guess here you mean , pay $999 today, then 99 days later, pay $24, then a month later, $24, and so on?
Yes
After paying it'll send the invoice of $24 with due date ! what if i pay now?
how the trial would work and will the $24 amount get deducted the next month or after trial period?
What I would do is :
- create two Prices, one for $999 and one for $24
- create a subscription for the $24 price, setting
trial_endto 99 days in the future, and add the $999 Price as a one-time charge(https://stripe.com/docs/billing/invoices/subscription#first-invoice-extra) , which will charge $999 now. - when the trial ends, it will charge $24 and start the recurring cycle as you expect.
Learn how to manipulate subscription invoices, the basis for recurring charges.
doh! well we didnt get any error message that was readable besides "Processing Error". But yes now its working 😛
your other questions confuse me a bit. It's important to realise that Stripe doesn't necessarily "send" an invoice, or have due dates. That's up to you. A Subscription can do that, or it can just charge the customer's saved payment method automatically — https://stripe.com/docs/api/subscriptions/create#create_subscription-collection_method So you'd need to read up on the docs a bit and decide which model makes sense for you.
Isn't there any other way that we can stop sending invoice after $999 payment then it directly get billed after trial?
I don't know what you mean, I'm sorry.
as I said, 'sending' an Invoice has a specific meaning and you might not even be doing that, it's not required.
the normal/default way you'd so this is 1) collect the customer's payment info like their card 2)create the subscription, which will immediately charge their card for $999 3) 99 days later at the end of the trial, their card gets automatically charged $24, and then again each month. I'd suggest reading through the docs a bit and experimenting in test mode!
Can we stop invoice in stripe?
not subscription but invoice of every product
I'm not sure I understand what the difference would be, can you elaborate?
mean if a customer buys $999 product with $24 per month, and stripe sends them invoice of $24 with due date, can we disable that?
a product cant have both a price and a monthly on it afaik?
or they would have two different prices
@shrewd fulcrum I still don't really follow what you mean, but yes, you have total control over all of this.
@distant pelican for that use case, I'd have one Price that is one-time (no recurring hash) for $999, add that as a one-time invoice item for the subscription, and use a recurring:{interval:month} Price for the $24 as the main item on the Subscription. It works perfectly.
i.e. pay $999 today, then 99 days with nothing, then $24 a month after that.
that's what I was describing above.
check this screenshot the 1st option
if i disable it, it will not send invoice to customers right?
@shrewd fulcrum that's not related — you control this by how you create the subscription in the API.
i.e. https://stripe.com/docs/api/subscriptions/create#create_subscription-collection_method as I linked to earlier, that's what decides if the customer is sent an invoice to pay within a certain number of days, or if the payments charge their payment method automatically. You control it by what you pass when creating the Subscription in the API.
1 more question
what if i made $24 product with 99 days trial plan and after 99 days $24month every month
and i send them the invoice and they pay now, does the trial period end? Or are they just paying the first month early, and the rest will automatically be deducted once the trial period ends?
I have made a transaction from Express account to platform account - Please explain the stripe fee charge 0.05
With Connect, your platform can directly debit the Stripe balance of an Express or Custom account.
@peak root as it says at your link "There’s an additional cost for using Account Debits.", that's what that fee is.
Please answer this
this
@shrewd fulcrum so you're using collection_method:send_invoice for that first invoice? Paying it doesn't end the trial period no, and it doesn't interact with any future payments.
it's just , you start the subscription and it's status:trialing The customer has however many days_until_due you passed of time in which to pay the $999. If they do, the subscription keeps trialing until the end of the 99 days as normal. If they don't, then the subscription becomes e.g. past_due and can be cancelled, depending on your settings for unpaid subscriptions.
Just give me your view on this
I believe I did, just above.
Okay thanks
Hi karllekko.. Could you pls help me in creating invoice with destination charges to connected account ? Im not finding option to add price to that invoice.
@junior ivy I can try! To be clear, you would use InvoiceItems, you don't add Prices directly to an Invoice
as in you create an InvoiceItem for the customer, and then you create an Invoice, which will automatically pull in the existing InvoiceItems (https://stripe.com/docs/invoicing/integration#create-invoice-code)
@meager hawk Thank you ...
Hi All. I need to know when it's the first transaction for a connected account. I use Stripe Connect. And to make the payment from the web to the conecte account, I use stripe.paymentIntents.create with on_behalf_of and transfer_data.destination. How can I do? I tried to listen the webhook the endpoints for Connect with th event types trasfer.paid or transfer.created or payment_intent.successful but it never call it
Hi!
When pausing a subscription, once it's resumed does it change the billing anchor day or does it wait until such day to charge the payment method?
i am not finding any reference code for this section, can anyone help me , in this section i want to achieve country dropdown, where if i change customer location then checkout page will be user friendly in user's location, currency, language and payment method
@warm ocean you want the payment.created event I think, on the connected account — there's no Transfer or PaymentIntent object on the connected account so there's no events for those types. Instead, when the Transfer arrives, that creates a Payment object on the connected account and there's an event for that. Let me double check..
@simple mantle that just happens automatically, the Checkout page will use the right language/locale based on the customer's browser, you don't have to provide anything.
@meager hawk OK thank you for the check
@rigid ridge it really depends how exactly you pause/unpause the subscription(https://stripe.com/docs/billing/subscriptions/pause) but in general it doesn't reset the date, it's just , invoices created after the resumption time will start charging normally. it doesn't alter the billing dates
@meager hawk any reference, how to achieve this from browser?
@simple mantle how to achieve what exactly?
Hmm... okay, and how could I change the anchor day to a future date? The idea is that in our donation system, the user should be able to pause the subscription for X months (I was considering pause collection behaviour keep_as_draft) and change the billing day, but for the anchor day afaik, the API only allows changing it to the current day
This is just part of Checkout and not something you really need to test/build. If I'm in France and my PC uses French and I visit the page, it will be in French, if I'm in Germany and my PC uses German, it will be in German, Stripe automatically localises it. The dropwdown on that page is to help you see what it might look like but you don't have to build it yourself
@rigid ridge you'd set the subscription on a trial until the date to resume payment, and that date (the end of the trial) becomes the new anchor : https://stripe.com/docs/billing/subscriptions/billing-cycle#using-a-trial-to-change-the-billing-cycle
@meager hawk ok, thanks! 🙂
@warm ocean yeah, the event that happens on the connected account that you' listen to from your Connect endpoint, is payment.created
the way this works is the PaymentIntent and the Transfer objects live on your platform account. On the connected account side, the only object is the "destination payment"(https://stripe.com/docs/api/transfers/object#transfer_object-destination_payment) of the Transfer, which represents the money "arriving" on that account.
Hi, I have a question regarding stripe saving card details from a native payment, ie apple pay/google pay.
During our checkout process, the customer can select to use native pay, so it sends the card details from the native pay method when capturing the payment intent.
However, we also need to set setup_future_usage: 'off_session' as we at times need to be able to take further payments without the customer being present.
This behaviour works fine. However, whenever you provide both a customer and setup_future_usage stripe will save the card to the customer. The issue here is that if the customer makes multiple orders using native pay, stripe will repeatedly save the card as a new card, even though identical cards already exist.
How could we use native pay, with setup_future_usage and not have stripe save the card if it already exists? As when we load the customers saved stripe cards during checkout, it now loads multiple instances of the same card, so we have to filter our cards with the same fingerprint
@cosmic tide hi! yep, in general, we don't de-duplicate cards. It's a little complicated when using Apple/Google Pay since you're not really able to detect duplicates anyway, merchants and payment processors don't get the real details of the card, it's like a fresh raw card each time, that's the design
what I'd suggest I think is to only let the customer pay with a new Apple/Google Pay card if they explicitly don't pick one of their existing ones(show them their existing cards before letting them select some "add new card" option, which can then have a native button)
beyond that there isn't really a good option beyond as you say, filtering by fingerprint But with Apple/Google Pay, the same underlying card in the wallet might come through but with a different number from the wallet(and therefore a different fingerprint) so it's not really foolproof unfortunately.
i have done browser method, where based on user's browser location it is working, now the issue is that if the checkout is of 100usd then based on india location it should convert into 7000INR (let 1usd =70INR), by the mistake is that it is not converting in the equivalent amount to different currency it is just changing the currency symbol not amount, so it is showing 100 INR, but it should show 7000 INR
Thank you for the information. And do you think that it's the best way to know when it's the first moona transaction ? Or I can listen the webhook on the platform and check for the payment_intent (or transfer) ? And payment.created is payment_intent.created ?
so with out current checkout, we current display cards, have the add new card option, and show native pay buttons simultaneously
and that's a choice by design to show the native payment option straight away - ideally we want as quick a checkout process as possible
if as you say the fingerprint method is the only other alternative then I guess we'll go that way
@cosmic tide yep, makes sense! I'm not sure there's an elegant solution unfortunately.
it's good to at least know we're not missing an easy solution, I appreciate your swift help with this
@simple mantle Checkout charges in the currency you tell it to (based on the Prices/LineItems you pass in your API call), it does not automatically convert the currency for you, that's something you have to control 100% in your integration if you want to do it.
i.e if you want to charge Indian customers 7000 INR and US customers $100USD, then you need to detect/ask the customer first, and then when you're making the API calls to use Checkout, pass the appropriate amount and currency based on where they are and your pricing
@warm ocean what is a "moona transaction" ?
First transaction sorry. Forget about moona lol. I need to keep the date of the first transaction for each connected account.
Hi! I am having an issue with my Stripe account on Fundly. When people try to donate to my fundly account, it says the payment can't be processed. I'm not sure what to do to resolve this issue, please let me know what you'd recommend!
@warm ocean well to be honest I wouldn't personally use a webhook for that. You know when the first transaction is, since you generally call the API to process the payment. So when you do that, you can just synchronously add a note in your database or something that you've made your first payment to that destination.
Or I can listen the webhook on the platform and check for the payment_intent (or transfer)
You can do that as well, listen for the creation of PaymentIntent/Transfers and see what the destination was. Either way works.
And payment.created is payment_intent.created ?
No, they're separate things.
You should probably reach out to Fundly as it's their Stripe integration I believe
so need to handle this in our code using a api call ?
Yes we have tried to reach out but they don't seem to be online for several hours unfortunately. So you think it's a fundly specific issue and not related to Stripe?
Hi, I have created express account - but not able to login it from stripe login page - I am referinng self-service from link - https://stripe.com/docs/connect/express-dashboard#self-service
I have no idea unfortunately, the only ones able to tell you are Fundly
On the category "Endpoints receiving events from Connect applications", payment.created doesn't exist.
You need to create and use a Login Link, you can't log in via the Stripe dashboard: https://stripe.com/docs/api/account/create_login_link
OK so you think it's better to check for example the stripe.transfers.list (with limit 1) and see if there is not transaction yet (result will be 0) when I create the payment_intent on my back server?
Yes, but as per this - it should provide login from Stripe Login
@warm ocean yeah that's true, unfortunately it's a weird event. Try adding charge.created instead, I believe that will also receive that event type (Charge and Payment are the same object, just they have some different names for legacy reasons)
Is the account in question completely onboarded?
Hi, we have an stripe account with con subscription product, by we dont know how money flows there. I share acct_id : acct_1IpWroFfzg6votVF
charge.created doesn't exist too
@warm ocean I'm not sure if I'd say it's better , it would work too! Absolutely seems like a solid option.
@vocal wagon hello there. Can you clarify a bit? What do you mean by "how money flows there", what is your specific question?
@peak root Do you get an error when you try to log in?
Getting invalid username or password
I dont know whats the stripe fee come from and its amount, and the second row (1.70€) dont know why it isn't 1,72€
Hey everyone, so I'm working on an integration to pay out vendors weekly on my platform, but I'm not using stripe for inbound payments. I have set it up so that before paying anything out, it calculates the total amount needed to pay out all of the vendors, then does a top-up based on that amount. Then I want to pay out all of the vendors, but since top-ups take "5 business days" to reach the account, I'm not entirely sure how the delay is expected to be handled. Any suggestions?
@warm ocean oh yeah, it doesn't. Hmm. We should fix that! If you really need to listen to it you can create the endpoint from the API instead at least (https://stripe.com/docs/api/webhook_endpoints/create)
@meager hawk so need to handle this in our code using a api call?
Hi @inner root, top ups are basically ACH debit transfers from your bank to Stripe, and unfortunately ACH can take up to 5 days. It's more of a worse case scenario rather than a guaranteed 5 days, but either way you should plan for that delay
OK. And I create charge.created or payment.created ?
@vocal wagon there is a fee for recurring payments : https://stripe.com/billing/pricing which I believe is what that is. I'd suggest contacting https://support.stripe.com/email for account-specific support like this, this is a technical chat for API questions
@simple mantle yes! You control the amount and currency you charge, it's all controlled by the code you use to call the API and create the CheckoutSession.
its a technical question since I have implemented subscription via API and the sum of money doesnt give a correct result, and I see 2 cents lost in the process
@peak root I think you'll need to write into support for help on that one: https://support.stripe.com/contact
Hello everyone ! I have a technical question.
Is it possible to charge a new product on an active annual billed subscription, but charge the customer on prorata of the remaining time to the next billing cycle ?
Example : After 9 months, the customer adds a new product to his subscription, so we immediately charge only 1/4 of the annual price of the new product price.
@vocal wagon yep but it's account-specific so I'd suggest writing since since our support team has access to your account and can help look at the specific details of the payments and fees, we can't help with account-specific questions here
Ok, Thanks, Please confirm - can I do it in Test Mode or not? - I mean that Self-Service (Login)
@hollow sand yes it's how proration works by default on subscription too. You add the new product/price and we will automatically prorate for the remaining time
its new? you have been answering account-specific questions since we started using stripe. cause email support in spain is a real shit, and seems thtat only you guys know what you are doing
Awesome thank you, I see the best solution there as paying them out a week after the top up then. A few quick follow up questions, do transfers between my account and the connected accounts have any delay? And is there a way besides manual payments to make the payout schedule daily without any delay of days?
so yes, this is something new, it is? since you have been answering account specific questions for a long time
I have simulated it on the Stripe Dashboard, but I can’t reach my goals.
If I add the new product, the “Next invoice” Summary is not what I expect.
@inner root no delay on transfers to connected accounts, they are instant. And payouts are sent daily for all the available balance, so if you transfer funds directly to the connected account, there won't be a delay, funds will be paid out the next day, daily
@vocal wagon that Discord server is brand new, we launched it a few days ago, so it's definitely not something that has existed for a long time
@hollow sand the next invoice will happen next year at the end of the period. It will charge for the new year for both products plus the prorated amount for the rest of the current year
Okay but there is no way to bill the rest of the current year for the new product ? Because the customer may be cancel his subscription before the renewal
before the next invoice*
there is! https://stripe.com/docs/billing/subscriptions/prorations have you read this doc? It covers everything you want. By default we prorate and leave the amount owed pending until the next period and you can create an invoice to charge them immediately
mornin' everyone
Sounds good, thank you!
Does anyone know a way to mock a failed invoice in the test environment? I'm getting customers with duplicate subscriptions and I think it's because their subscription becomes not active if an invoice payment has failed which allows them on our implementation to purchase another subscription
@vocal wagon https://stripe.com/docs/billing/testing#payment-failures is what we recommend
What I have learned from the documentation :
- if I reset the billing cycle and enable prorate changes, it will charge now a year for the new product, plus the prorate of the used time of the current product
- if I don’t reset the billing cycle and enable prorate changes, it will charge at the next billing period a year for the old product and the new product, plus the prorate of the used time of the new product (at the previous billing cycle)
What I want to achieve is to charge the new product to the customer for the remaining time of the current billing cycle.
Example : after 9 months on a product $1000/yr, adding a new product charged $100 annually. I want to charge 3/4 of $100 => $25 now, and at the next billing cycle, $1000 + $100.
thanks
@hollow sand Not really, it works the way I explained too. You can update the subscription and pass proration_behavior: 'always_invoice' (https://stripe.com/docs/api/subscriptions/update#update_subscription-proration_behavior) which will immediately charge for the remaining time
Okay thanks for your time @crimson needle ! I will check it out
@hollow sand the Dashboard doesn't support this directly but the API will. Otherwise you can click the "create Invoice" button in the Dashboard on the customer page after the upgrade and you'll see exactly the behaviour you described!
ok so this might be a silly question I've used the test card number (4000000000000341) which will succeed when purchasing a subscription to a 30 day trial. I'd like to trigger the next payment so I can test what happens to the subscription when a failed payment happens off session. I've tried to remove the trial period on the subscription via the dashboard but it doesn't let me do that as the payment will fail. Is there an alternative?
@vocal wagon Create a subscription with a trial of a few minutes and not 30 days. Then wait a few minutes for the subscription's trial to end and for the new period to start and pay that invoice (which will fail)
ahh yes fantastic, cheers!
hi
I have integrated stripe with discord. I need to disable refunds.
Is this possible using stripe dashboard?
@crimson needle
any help?
@glossy osprey you didn't leave much seconds to even reply 😓
This Discord server is for developers with questions about their code. Unfortunately we can not help with account specific questions. You want to talk to our support team instead: https://support.stripe.com/contact
I am not saying you aren't. But your question is not about code or APIs, it's about your account with Discord and how to refund in the Dashboard.
forget about discord. As a developer can you guide me about disabling refunds in stripe account dashboard?
There isn't an option to "disable refunds" but I don't understand why you would want that. If you don't want to refund, you would not refund
sorry, I mean you ask me "how do I use a web UI" it's not really a developer question (even if you are personally a developer)
some people are cancelling memberships and taking refunds.
and this is happening automatically
Thats what I want to disable
Are you writing any code? If not, I can't really help. It'd be a question with the platform who writes the code for you and controls this behaviour.
Reading between the lines, you seem to be using a third-party that creates subscriptions for recurring payments/donations and when they cancel their subscription, the third-party is prorating them with credit for the amount owed/and or refunding them. That is not something you control in the Dashboard anywhere. So you need to talk to that third-party
hmmmmm.. Thanks
Hi there, I was on here yesterday looking into how to update the receipt_email by creating a webhook that will update receipt_email via the billing email that I already have for my customers. A couple of questions that I have had:
-
The endpoint URL is this something that I can get from my stripe account or do I need to point this elsewhere?
-
In the webhook settings on the dashboard, all I see is the ability to send events but not to update the charge information is there something I am missing?
Thanks again!
HI All, Can anyone recommend the best stripe set up to hold a payment before the order is confirmed? the example being Deliveroo, they don't take card payment until the business accepts the order?
@hybrid galleon There isn't any "automatic update" for you. As the developer you have to write the whole code. You create your own webhook endpoint pointing to code on your server and when you receive an event from your account you run code you wrote that would send the receipt
oh.
@inland tangle Usually you place a hold on the card when the order is made and then you capture funds when the order is accepted. Or you cancel it when they decline the order: https://stripe.com/docs/payments/capture-later
Is there another way to do what I am trying to accomplish then?
@hybrid galleon no there isn't. You have to write code. Maybe you could use a third-party like Zapier or IFTTT but we don't control those integrations
My org doesn't have those resources is my main issue.
Okay, well thank you!
@crimson needle thanks, Apologies I posted in the posted group as realised after this is the dev group. and yeah that's what I thought was the way thank you for this.
Hi, I'm having validations problems on frontend stripe API, when we try to confirm a Bancontact payment using the secret, it throws us the following error:
IntegrationError: Invalid value for stripe.confirmBancontactPayment intent secret: value should be a client secret of the form ${id}secret${secret}. You specified: src_client_secret_VE8rVMNf***********vQFR.
Could anybody please help me?
@vocal wagon you are using the wrong secret.
you seem to maybe create a Source object for bancontact which is a few years old/legacy and you shouldn't
I've to provide support for Bancontact and it's created acording to the documentation. The secret is created from the backend stripe implementation.
@vocal wagon sure but that's not much details unfortunately. Based on the client secret you shared, you are not following the official docs. I'd still need more details about your code at least
I'm using the method stripe.sources.create(...) and using the source.client_secret retrieved
see you're using the multi-years old approach which we deprecated a long time ago
@vocal wagon In case it helps, we have an end to end implementation using the recommended path of using PaymentIntents in our channel: https://www.youtube.com/watch?v=srGuWN807Mg
you want to use PaymentIntent and PaymentMethod instead. Following the video above or our official documentation will help
so, sources are deprecated and I've to use paymentIntends for integrating bancontact would be the short answer?
That's right
well you're already using PaymentIntents per the error you asked in the first question. But instead of creating a Source you should use PaymentMethods yes
one of my customers got a invoice.payment_failed error. Does this mean the card declined? or do I have a bug in my code? has anyone had this issue before?
if anyone has ran into this problem before it would help a lot just for some advice
@mossy star hey there - can you share the event or invoice id?
@mossy star This is likely a payment being declined by the customer bank and you'll need to get new payment details from them (or let Stripe try to do that for you):
https://stripe.com/docs/billing/subscriptions/webhooks#payment-failures
https://stripe.com/docs/invoicing/automatic-collection#settings
Ok thanks. I’ll have them contact their bank
Can someone show me some documentation on how to handle the situation where the subscription status is past_due?
Hi @daring lodge thanks for message in general-chat.
As mentioned, we are at telecom provider, our clients have different monthly costs due to Long Distance, Toll-Free or changes in their services.
Currently, we integrate with Stripe as a payment gateway and looking at streamlining our billing process to make it easier for our clients to have automatic payments.
Can you point us in the direction on implementing something like this?
@vocal wagon what exactly do you mean? This indicates the subscription has an unpaid/failed invoice :
https://stripe.com/docs/billing/subscriptions/overview#subscription-statuses
If it pays automatically, you should receive a payment failure webhook that you can use to handle recovery:
https://stripe.com/docs/billing/subscriptions/webhooks#payment-failures
https://stripe.com/docs/billing/subscriptions/overview#settings
@lethal carbon Do you charge highly variable amounts based on exact metered usage?
Hi there. Can someone help me with verification email not being sent in order to connect to my account? Thanks.
@lethal carbon This is supported using metered pricing which allows you to report that usage and Stripe will invoice the customer based on the usage and pricing you configure:
https://stripe.com/docs/billing/subscriptions/metered-billing
Thanks @daring lodge So in my situation once we have the user back a payment page, how can I find the existing payment intent that failed so I can confirm it? Or is it best to create a new payment intent and asking the user or additional card details
@vocal wagon Unfortunately we can't help with account support here. You can contact Stripe's support team here: https://support.stripe.com/contact or see #help for more resources.
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.
@vocal wagon You'll want to pay using the payment intent on that invoice.
it's not a high variable, but during some months, based on some customers business model, Toll-free charges sky rocket.
@daring lodge this is for a subscription
Ok, will look into this. @daring lodge is it possible to mix metered pricing and subscription prices? We charge per seat + metered line items (Toll-free, international LD)
Hey guys. I've been told it's not possible to get the currently attached bank account(s) as the platform for Connect Standard Accounts via the API. But we can get the bank account info for each Payout via the API. Are there any other ways to get bank account info for Connect Standard Accounts? We'd like to display this information from within our app so our customers know which account deposits are heading to. Thanks!
@vocal wagon You can use expansion with the subscription.latest_invoice.paytment_intent to complete the payment using Stripe.js, for example:
https://stripe.com/docs/expand
https://stripe.com/docs/api/subscriptions/object#subscription_object-latest_invoice
Learn how to reduce the number of requests you make to the Stripe API by expanding objects in responses.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
thank you
Due to limitations in our implementation, would it be possible you think to overwrite the payment intent with a new one?
@vocal wagon what are the limitations? What's the issue with using the existing payment intent?
@vocal wagon if you collect a payment method you can also try confirming that PI server-side, or use the invoice /pay API
cheers!
@lethal carbon Yep, depending on your pricing model you can combine multiple pricing items into a single subscription, including fixed + metered
https://stripe.com/docs/billing/subscriptions/multiple-products
Create subscriptions with multiple products, all billed in a single invoice.
@lethal carbon THe restriction is that a given subscription must have all items in the same currency and on the same billing interval
Ok got it, thanks. Got some homework to do 🙂
@wild wyvern Do you get zero results when you list the external accounts?
https://stripe.com/docs/api/external_account_bank_accounts/list
I would expect you to be able to get the last4 in order to show what you're asking about, but this may not be available for Standard accounts since that part of the relationship is between the account holder and Stripe:
https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-last4
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@wild wyvern Are these new standard accounts you created as your platform, or existing ones you connected to via oauth?
hey guys, my account got clossed but i cannot create payouts, it's been more than 4 weeks, do you know how to get my money tranfered?
@daring lodge the vast majority of the time they are creating the account with Stripe via oauth through our app. Are there other ways to do this?
@tidal herald hello, account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
I work for an online marketplace and a customer of ours uses a POS system in store to track inventory etc. Is there a way to connect the Stripe account with the POS system / a way to transfer the data so they don't have to manually update their inventory every time?
@wild wyvern The current way to create these accounts is using the API and sending them to an onboarding URL:
https://stripe.com/docs/connect/standard-accounts#create-account
Integrating with Standard accounts is the fastest and easiest way to get started using Connect, since Stripe will handle the majority of the user experience and user communication.
when I try to get a list of external accounts for a Connect Standard Account via the platform I get the following error: "You cannot perform this request as you do not have Platform Controls for Standard on the account." Can the user change permissions so we have the ability to get the last 4 of their bank account via thei API?
@next drum hello, ah I see what you mean, there isn't any way in the Stripe Dashboard to do this currently, there might be some third party extension/platform that allows you do do this but I'm not aware of any personally https://stripe.com/partners/apps-and-extensions?q=wix
@next drum meant this https://stripe.com/partners/apps-and-extensions
hey, i have a problem in a payment receive.
First i created a setupIntent on PHP and get card informations with javascript, then i build PaymentIntent with confirm on PHP, but in both moments the 3d secure is requested...
I responded to a late email from stripe from a week ago about my verification, are they still going to respond to me?
Thank you!
@stable pagoda hello, it depends on which card you are using and how you're creating the PaymentIntent. Can you share a SetupIntent and PaymentIntent ID (I'm assuming these are test mode attempts that you did)
@tawny tiger sorry you replied to a comment of mine but that wasn't intended for you, right?
hmmmm... if we switch to this method, will we have more permissions and can get last 4 of connect standard account's bank account via the API?
Good morning people! We use Stripe as an intermediary for our sales and for about 2 or 3 months all notes issued from Stripe have been missing information from our students. They fill in the required fields with their data, but the note is still issued as if they hadn't done it. How can we resolve this situation? we have a serious problem
@whole eagle hello, did you/your team build an integration to Stripe? or did you use a plugin/module?
@wild wyvern Right, that's not something available to your platform for pre-existing standard accounts because it's part of what Stripe manages, but you can read about these platform controls and how you can manage more of the experience for future newly created accounts:
https://stripe.com/docs/connect/platform-controls-for-standard-accounts
Manage more features on behalf of your Standard connected accounts with platform controls
@wild wyvern That's right, but be aware its for new accounts created after you make the changes
ok thank you!
We made the integration with a platform called ENOTAS
i will describe my steps:
- PHP (server side)
\Stripe\Stripe::setApiKey(STRIPE_KEY);
$setup_intent = $this->stripe->setupIntents->create([
'customer'=>CUSTOMER_ID,
'payment_method_types' => ['card'],
'usage'=>'off_session',
'description'=>'....',
]);
$payment_methods = $this->stripe->paymentMethods->all([
'customer'=>CUSTOMER_ID,
'type' => 'card',
]);
- JAVASCRIPT (client side)
cardElement.mount('#card-element');
stripe.confirmCardSetup(
clientSecret,
{
payment_method: {
card: cardElement,
billing_details: {
name: cardholderName.value,
},
},
}
)
2.1) POST result to server side
....
- PHP (server side)
$this->intent = $this->stripe->paymentIntents->create([
'customer'=>CUSTOMER_ID,
'amount' => VALUE,
'currency' => 'brl',
'metadata' => $this->metadata,
'payment_method' => CARD_HASH_CREATED,
'setup_future_usage' => 'off_session',
'payment_method_types' => ['card'],
'confirm' => true,
'return_url'=>"MY_URL_FINISH"
]);
But in the step 2 and 3 the 3d secure is requested.
@whole eagle ah ok I'm not familiar with that, did your team write code to integrate Stripe? Asking so I can better help you
Is there ANY process for our existing standard accounts to edit permissions so we can pull bank account info?
i need get the information card for further off-session payments
@stable pagoda two things:
which card are you using? 1/ You should use the card ending in 3155 for this. and 2/ the PaymentIntent should be created with off_session: true, for the off session exemptions to be applied to the PaymentIntent. Otherwise it is treated as on session and 3DS is requested
@stable pagoda try my two suggestions above and the PaymentIntent won't require authentication
No. We don't write any code
this 4000002500003155
@whole eagle ah ok then it is hard for me to suggest anything if you didn't build the integration, can you provide me a link to which module/plugin you set up?
@stable pagoda yeah so you're using the right card, pls try my second suggestion on passing that param
ty, i will try!
Are you referring to the site that separates the integration?
@whole eagle no I was asking for the link to the page you followed where you set up your Stripe integration. For context, I typically help users in this channel who are writing their own code to build their Stripe integration, which wasn't the case for yours, so just trying to better understand what the integration you're using is
I don't know if that's what you want. But I didn't find any integration links.
@whole eagle what is the link for that page that you're on? Can you share the link to it?
eNotas Emissor - A forma mais fácil de emitir suas notas fiscais eletrônicas de serviço e as de seus clientes (garantido)
Sorry @bold basalt I responded to a late email from stripe from a week ago about my verification, are they still going to respond to me?
@whole eagle thanks, ok so Enotas is a plugin meaning they build the plugin code that your integration uses. I would reach out to their Support team, sharing examples of what isn't working in your integration, they should be able to help.
@tawny tiger account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
@bold basalt for while its all ok! ty!!
Thanks
i have done integration with stripe, now to every user based on specific location, i want that user can see the checkout page in their local currency/local language/local payment method(see in screenshot attached). for example:- if i need a payment of 100usd from indian user then it should be shown 7000INR, that is equilant to 100usd in INR (let 1usd=70INR).
can anyone suggest me any API through which i can represent checkout amount to the users equivalent to their local currency amount, so that they can pay in their local currency.
@simple mantle hello, you'll have to create new Prices for each region in its local currency for that, and depending on where the user is, create a Checkout for an INR or USD Price.
@bold basalt you mean new checkout page for every single country ?
@simple mantle no a new Price for each currency. So say I am a US customer, you ask me my country before you present me the CheckoutSession. And when I select "US", present me a CheckoutSession for a "usd" Price.
Similarly, when a Customer from IN comes to your page and selects India, you create a CheckoutSession with "inr" Price.
@bold basalt Similarly, when a Customer from IN comes to your page and selects India, you create a CheckoutSession with "inr" Price.
it means we need to convert from usd to inr for indian user, how will this conversion will take place ?
@bold basalt do i need to use any conversion API?
@simple mantle I'm not sure I understand what you mean. What I was saying is, you'll have n Price objects in your Stripe account, e.g. a "usd" Price, an "eur" Price, an "inr" Price. And depending on what currency the user picks, you create a CheckoutSession for that Price. You're not converting Prices, but creating distinct Prices in different currencies. Does that help?
@bold basalt got in but i have more than 1000 tutors on my website, each tutor charges different prices , so the product price is not fixed, for 1000 tutors there are 1000 prices (n number of prices), so it means it is going to be 'n' number of CheckoutSession ?
Hello.
I have a problem that I cannot figure out using just a search.
The problem is that my payment service supports both debit cards (payment method entity) and bank accounts (source entity {"source": "ba_1J563YJqwvA4YhgLo2mXXXXX"}).
And I handle the situation when the user has an incomplete (not succeeded) payment intention, then when adding a card I make a confirmation of payment intention with a new payment method and I would like to do the same with a bank account, but I did not find a description of this behavior.
Perhaps I missed something and will be very grateful for any of your help.
@wild wyvern Hey there, are you still here? i've been poking at this on my test account. Can you share the request ID of the example you tried?
@patent marlin hello, can you explain more on
" I would like to do the same with a bank account, but I did not find a description of this behavior."
What do you mean by "payment intention" and like what would you like to do
@bold basalt are you still here ?
@bold basalt
if (lastInvoice && lastInvoice.paymentIntentStatus === SubscriptionPaymentIntentStatus.RequiresPaymentMethod) {
try {
/**
* https://stripe.com/docs/api/payment_intents/confirm
* Confirm that your customer intends to pay with current or provided payment method.
* Upon confirmation, the PaymentIntent will attempt to initiate a payment.
* */
await StripeService.stripe.paymentIntents!.confirm(lastInvoice.stripePaymentIntentId, {
payment_method: args.stripePaymentMethodId
/**
* https://stripe.com/docs/api/payment_intents/confirm#confirm_payment_intent-payment_method
* ID of the payment method (a PaymentMethod, Card, or compatible Source object) to attach to this PaymentIntent.
* */
});
/**
* Upon confirmation, the PaymentIntent attempts to initiate a payment.
* */
} catch (e) {
logger.error(e, `error while confirmation payment intent (with bad payment method)`);
throw e;
}
}
This code can use only for Payment Method entities
@simple mantle yes still here, missed your earlier message, reading now
@bold basalt how to get the risk payment information that appears on the dashboard of Stripe?
@simple mantle there will only be as many CheckoutSessions as customers coming to pay. You won't create 1000 CheckoutSessions in advance for each customer that might come to pay. So if I come to your site to pay in USD, you only create 1x CheckoutSession for me with the USD Price, not one in each currency, cause I'm only paying in USD. Does that help?
@stable pagoda what info specifically? do you have a link to the PaymentIntent ID ?
yes!
@patent marlin ah I see, answering one sec
Risk evaluation info
@bold basalt so it means i don't need currency conversion api here ?
@patent marlin for paying a PaymentIntent with ACH debit bank accounts, since it isn't supported on PaymentMethods, instead of passing anything under payment_method: ... , you would pass the bank account token under source: ba_123 .
Give that a try
@simple mantle you still have to define your Price amounts in different currencies, whatever regional pricing makes sense for your products. Upon successful payment, Stripe automatically converts the currency into whatever the supported Balance currency is for that Stripe account.
@stable pagoda can you share a PaymentIntent ID so I can check which payment you're looking at and what Radar info you see there? Just the PaymentIntent ID, not the whole object
@bold basalt can you please share me any reference/document/code if you have for this?
@bold basalt ok, i found here!
@simple mantle there's no reference code for this, e.g. say you're selling a T shirt for $10 USD.
You want regional pricing for INR, USD and EUR.
So as an example, you create 3 Prices for the same T Shirt product, "$10 USD", "10 EUR" and "800 INR" as three Prices.
I come to your webpage, I am paying from France, so you display me a CheckoutSession for the "10 EUR" Price.
Yep! req_YKUS0cWcoPGGSH
@bold basalt thanks for help , let me start according to this
kann ich für ein bestehenden Zugang meinem Steuerberater einen zweiten zugang einrichten?
@vocal wagon hello! I can answer in English, account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
We have made the Stripe web hook as a server less function and capturing the event which is successful and storing it in the Cloud storage , issue is in flick of second we are getting two duplicate events and slight piece of information is different , which one should be captured:
wenn Sie ihren Dienst auch in Deutschland anbieten, erwarte ich auch einen Service in deutsch. ich kann kein englisch!!!
above events are captured
@vocal wagon das Stripe-Support-Team unter https://support.stripe.com/contact kann dir auf Deutsch helfen, ich spreche kein Deutsch, aber Google Translate hat mir bei dieser Nachricht geholfen
danke
@pseudo remnant those are webhook event retries, no? Basically if Stripe sees a 200 http status code in the response to the webhook event, Stripe treats that as a "successfully delivered" sign. I think your integration is not returning a 200 status, which is why Stripe is resending those events, which is why you're seeing them over and over.
Hi guys, we have 3 and 6 months subscriptions and we need to implement a new feature that allows users to cancel it any time. However, we are not sure how to test it on stripe where billings/invoices need to have future dates. How do we do that in Stripe Test?