#dev-help
1 messages · Page 118 of 1
If you haven’t passed a tax rate that matches your customer’s shipping address, billing address, or country, no tax rate is applied.
This is all documented in https://stripe.com/docs/billing/subscriptions/taxes#adding-tax-rates-to-checkout (you can't use both methods at the same time)
Learn how to set taxes on subscriptions so that Stripe can calculate invoice tax amounts for you.
under Dynamic Tax Rates
I saw the docs, it just seems strange but OK.
So either you need an exhaustive list of states or just use Stripe Tax. That makes sense.
What's strange, specifically? In your example, you either have a tax responsibility in NY state and need to tell us so, or you don't. There isn't a "default across the country" rate.
Hi, First time on bard, have a question about using the API, is this the right place to ask?
What are you curious about with regards to the API?
I am using AWS lambda to make a call to paymentintent however any time i make a change IE to the value or response email i get the same response, stuck at 1000..
its like its a cached or session response, but no idea why
if I use curl it changes fine
Is it possible to create a Subscription to a Connected Account (using Stripe Checkout) without a (cloned) default payment method, and instead collect payment details after creating a subscription?
Sorry, I don't really understand what you mean by "I get the same response stuck at 1000". Do you have a request id that shows this? https://support.stripe.com/questions/finding-the-id-for-an-api-request
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.
the amount of the payment intent request its stuck at 1000:
"id": "pi_1J9u36D39mArstkd4EXJdPpW",
"object": "payment_intent",
"amount": 1000,
You wouldn't use Stripe Checkout unless you're collecting a payment method. What flow are you really trying to achieve?
'amount' : 666,
'currency': 'gbp',
'payment_method_types[]':'card',
'receipt_email': email
@sick talon I want our platform customers to be able to subscribe to one of our connected (Standard) accounts, and have them choose between an already added payment method, or use a new one (e.g. iDeal, since you can't save that payment method). I don't want to build any custom UI if possible and use the Stripe Checkout / Portal where possible
There aren't any update calls that you've made to modify that PaymentIntent. You're only making create calls to POST /v1/payment_intents. See https://stripe.com/docs/api/payment_intents/update for the update call on an existing one
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ugh.... I was using GET not POST... thanks
You'd need to have the user select an existing PaymentMethod in your own UI. You'd use Checkout to collect a new PaymentMethod, or you could create an existing Subscription first and only then use the Portal to let them modify it.
But it seems like creating subscriptions for standard accounts only supports using the default payment method, which means I have to clone that method to the Standard Account, which is only possible with Card. However, I'd like to be able to handle whatever payment methods are configured for the Standard account
Well, if there's an existing Customer with saved PaymentMethods on the connected account, you can use those.
hi
I am in South Africa and do not have a bank card in the United States or Switzerland. How can I solve it?
:question: @clear jasper Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Hi guys.
I need to know if having a single account on Stripe I can receive payments in countries other than where my company is registered in. In other words, do I have to change any settings other than my product currency, or send any information in to stripe in order to receive payments in US, for instance?
:question: @analog vault Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
me to
@sick talon thanks!
There is too little support in this region. We are in different countries, but he supports the United States, Switzerland, and Norway.
@clear jasper account related questions are answered by Stripe Support at https://support.stripe.com/contact. Please reach out to them for your question!
Good morning, I am using the Stripe PHP lib to iterate over all the customers in the system. The goal of this script is to collect the subscription revenue and the transaction revenue for reporting. I am successful in using the Invoice endpoint to get the subscription data, but the payments are not in there. Payment being individual changes we sent the customer when they buy a product not listed in Striped Products. For the items they purchased I have tried PaymentIntents and BalanceTransactions, but both come back with zero results in the collection. I can see transactions on my customer, so I am unsure how to call and get them. $trx = $customer->allBalanceTransactions('cus_XXXXXXXXX');
@trail wren hello!
@trail wren BalanceTransactions don't allow listing on a particular Customer, you could use "List Charges" as that can be filtered by a customer: cus_123 param.
That will get you all Charges that include recurring Invoices, or one time payments on that Customer
Ah I guess when I read https://stripe.com/docs/api/customer_balance_transactions/list I figured it was customer specific.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I'm looking to apply 'credit' to a customer, and use that credit automatically when initiating a card payment for that customer in future. For example, I give them a £10 credit (via balance adjustment) and then next time they buy something in the app worth £30, they're automatically only charged £20 (despite me creating the PaymentIntent for £30). I've tested, and the £10 credit is not taken off. I'm not using 'invoices' - only direct PaymentIntent / charge creation. Is there any support for this concept or a better approach?
hello i cant log in.... im not recieving the authorization code anymore. not sure why?
@serene scarab hello! so direct PaymentIntents don't actually support taking out from a Customer Balance (or CreditNote etc), that is supported on Invoices only. So you'll basically have to deduct the credit and create a PaymentIntent for (total - credit) for your Customer.
:question: @lunar pelican Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Thanks 👍
@lunar pelican hello, as the bot says, please reach out to Support as you're facing a login issue, not something we can help with in this channel!
Hi, I'm exploring high fees for subscriptions, in Summary_of_payments_fees_2021-06-01_to_2021-06-30.csv I found most fees are per_auth_fee with cost $0.20 per item and it looks strange for me that I have 8x more auth than charges.
Is it possible this api call https://stripe.com/docs/js/payment_methods/create_payment_method produces auths?
Complete reference documentation for the Stripe JavaScript SDK.
I'm setting up https://github.com/stripe/stripe-react-native following https://snack.expo.io/@charliecruzan/stripe-react-native-example using the PaymentsUICompleteScreen.
I have a screen where users can select an amount from a dropdown list and then click "Add Funds".
In the example, the screen inits and fetchPaymentSheetParams from the server: https://glitch.com/edit/#!/expo-stripe-server-example?path=server.js%3A419%3A0 line 419
On the server, it sets the amount to 1099 with stripe.paymentIntents.create, but in my case I need to set the price to whatever the users selected
The "Add Funds" button fires openPaymentSheet which by now already has a price set.
Here is what I'm thinking of doing:
The users will select a price and the init of the screen will not init with fetchPaymentSheetParams. Instead, when the "Add Funds" button is clicked, it will post the server with the amount selected and return the paymentSheet with the correct amount.
Is this the recommended way of doing this?
React Native library for Stripe. Contribute to stripe/stripe-react-native development by creating an account on GitHub.
@edgy plank hello, createPaymentMethod() doesn't produce auth's but your question could have a longer detailed answer, depending on what type of Stripe fees you are on, etc.
Would recommend writing in to Support with examples of the fees that were "per_auth_fee" and they can help investigate.
Hello I am currently dev on the Kreezalid platform (only allowing to modify in JS or in css ... very boring). I wish that by logging in the user id is recovered in order to delete or modify data on his Stripe account.
I have already looked at the doc but it only talks about Node.js and asks for a key that looks strangely like the ID ... hardwritten
const stripe = require('stripe')('sk_test_XzIrQk0');
const account = await stripe.accounts.update(
'acct_1EFMXZB03N', /* <---- it's a ID ?*/
{metadata: {order_id: '6735'}}
);
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@patent turtle yep that sounds right, get the user to set an amount, then send that amount server-side where you create a PaymentIntent for that amount.
@potent kernel hello, yes the stripe-node library is a server-side only library . It needs to be deployed and run on your server. Is the Kreezalid platform only a frontend platform? Like you can modify the webpage's CSS and JS? If so, you would need to somehow hook it up to a server.
As for what you're trying to do, are you trying to allow a Customer to update their Customer object? If so, you would not be using accounts.update
@potent kernel also please modify your message to remove your secret key from it. I know it is a test mode secret key but still it will allow anyone to make requests on your integration and update/create/delete your testmode objects
the goal is to try to send data such as the sector of activity the phone number or other directly to the platform therefore without the customer having to do anything (ask him to enter this key is not the goal)
PS: the key above is truncated
@potent kernel sure but what I'm asking is, are you using Stripe Connect here?
Or just having a Customer come in and update something, like their card or their address etc
yes we are currently using stripe connect
is there any way to easily add a test connected account to stripe connect for testing?
@potent kernel ah gotcha, yeah in that case you would update the Stripe Connect account as shown in the code snippet. The acct_123 ID is what you pass for which Stripe Connect Account you're trying to update.
@lucid sorrel hello, which type of Connect account are you referring to?
I am testing creating payment intents so i need to populate "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"
@lucid sorrel I mean are you using Custom / Express / Standard type of Connect accounts? Which one are intending to use
I only have the one account, and wondering is there an easy way to set up a few test connected accounts
standard I think
does https://stripe.com/docs/api/refunds/create returns with the final state ? or do i need to use a webhook for success ?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@lucid sorrel gotcha, you create a Standard account via the API, then you have to redirect to the AccountLink which should allow you to mostly skip account creation, to quickly create the Connect account: https://stripe.com/docs/connect/standard-accounts
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.
ty
and sk_test_XzIrFDN0 it's a api key ?
we creat a Web app for run that on node.JS and we juste apiKey and pass ??
@cloud pasture hello, it creates the a refund synchronously for card payments but other payments could go into 'processing' first, so you listen to webhooks for successful refund.
@potent kernel yes that is the API key.
I'm not sure if it's intentional but you CANNOT verify your identity without logging in..
Which I can't do.
@scarlet mulch hello, I'm not too informed on how account setup/verification works (as that isn't something we help with in this channel), would recommend reaching out to Stripe Support and getting help with logging in ?https://support.stripe.com/contact?skip_login=true
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.
You cant reach out to support without logging in..
@scarlet mulch the link I sent you allows writing in to Support without logging in.
Hey there. Your team gave us access to Stripe Tax on two accounts for testing a Stripe Tax integration for our Stripe Connect Platform. Yay! But we are still getting the error that the account does not have Stripe Tax. *** Stripe::InvalidRequestError Exception: Received unknown parameter: automatic_tax (Stripe Tax is an invite-only feature. Please request access at https://stripe.com/tax)
hi @bold basalt ! may I ask you a few questions? can I use spanish? is it possible to have a voice call? thanks!
*I added it in the dashboard and thought we completed registration. ?
@vocal wagon hello, sure if you have coding/programming related questions, this is the right channel. I only speak English so can answer in that. I can't do voice calls.
For Spanish language support, Stripe Support does have that: 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.
@viscid burrow do you have a request ID where you see that failure? I think I know what it might be
@bold basalt thanks for replying! mmmm I think my questions are more related on if I can do some things instead of how to do them... but I can try... 🙂
Sure. Give me a sec to get the request id.
**Also if our platform does not have Stripe Tax, but the "Connect"ed account does have Stripe Tax , it should work fine though correct? session = Stripe::Checkout::Session.create(session_hash ,{stripe_account: @site.stripe_user_id})
**Since we are passing in the stripe_account of the Connected account
@viscid burrow can you share the request ID for the request? like the req_123 ID?
You can get it like shown here: https://support.stripe.com/questions/finding-the-id-for-an-api-request
Since it is a Connect request, best way would be to look at the response headers like https://stripe.com/docs/api/request_ids
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.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@bold basalt Thanks that is working for me!
sure. I wasn't sure if the session had a request id. brb
Next up. I need the cancelation date for a subscription, of course if a customer has canceled the subscription object is blank.
@trail wren not sure I understand, you want the datetime when the Customer canceled the Sub?
(like even if they want to cancel now, to let the Sub cancel at end of current period, you want the datetime of now, right?)
@viscid burrow thanks! looking
yeah the date time it was canceled. Since if they do the "Cancel Now" situation the subscription is removed from the customer object it is not something I can pull.
Multi-year subscriptions are prohibited, but is selling a multi-year service as OTP, for example, Domains, allowed if you don't rebill without customer consent - or have the customer do it themselves?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
**The Stripe team added Stripe Tax per our request to 2 accounts. One is inactive and one is active. We are getting that error on both that neither have Stripe Tax.
@small ginkgo hello, not sure I have the answer to that but if you are initiating the recurring charge after 'n' years, you should be able to without explicit Customer consent atleast for card payments (notifying them via email that their recurring payment is upcoming is a good idea but don't know if it is required)
Nope. My fee covers a service for x years. I don't auto rebill. Is that allowed?
Hello!
I'm working at this moment on create subscriptions to connected accounts, but i'm having troubles because the customer object does not exists on each connected account, is there any way to share principal customers list to child connected accounts??
@viscid burrow what is missing is, your Connect Platform account acct_183tJHHnzkM7EAuH needs to have Stripe Tax enabled for it, both on the account itself and in a Connect context as well. Can you re-write to Support to have them enable it for you? Do mention that you need it both on the account and as a Connect Platform.
@small ginkgo just so I have it right, you charge now $X for n years, and that is it. You don't charge $X again after n years?
Hi, my account of stripe send me to woocommerce payment and i cant enter on the dashboard. How i can make for enter on dashboard for see my api key?
Correct. It's a One-time-payment. Not a subscription.
@rough spire hello, there's no way to share or clone Customers, you have to create distinct Customer objects in the Connect accounts. You can clone "card" PaymentMethods from the platform to the Connect account, but not the Customer.
@small ginkgo gotcha, yeah that should be allowed.
@twilit moss hello, which dashboard are you not able to get into?
i am trying to enter at dashboard.stripe.com/apikey and i cant
the app send me to select Woocommerce payment
and i cant make more
hi, good morning
@twilit moss the Support team at https://support.stripe.com/contact can help you with this, please write in to them and explain the issue, they can help unblock you as they are experts on the Dashboard side of things
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.
@copper mirage hello
@bold basalt Okey thanks 🙂
Ok. Are sites randomly reviewed? Auto scanned for bad keywords? Idon't wanna give some dude the wrong idea. lol
Thank you very much! I found this too, will give it a chance https://stripe.com/docs/connect/cloning-customers-across-accounts#creating-tokens
With Connect, you can clone your customers' payment information across multiple connected accounts for reuse.
@small ginkgo I don't really know about that.
@rough spire to clarify, that isn't "cloning Customers"
@rough spire that is what I was referring to above, that is "cloning PaymentMethods/Tokens"
@rough spire you cannot "clone" a Customer. You have cus_123 on the Platform, you have cus_456 on the Connect account. You can clone cards from cus_123 to cus_456 but that is it. You cannot "clone" cus_123 into cus_456, that isn't a thing
@copper mirage what help do you need
Ohhh perfect! You're very kind and clear!
good afternoon averyone ! I try to add the IBAN when a custom account is created but it doesnt add it when account is created. Is it possible to create a custom account with directly every informations required at first ? Thank you
Hi all - I have a new client that has been having someone pound her Stripe account with $0.50 charges for the last 24 hours. We are taking over for another team. I am assuming that the old team leaked the key to someone and they seem to be using it to try and verify if stolen credit card data is valid or not.
- Whats my best option here? Invalidate the current keys and update where she uses them?
- 99.99% of them have been blocked by Stripe. Will this cause any issues with her account or is it okay until we figure it out?
- If only her old dev team had access to the keys, thats the most likely culprit right? I don't see anywhere else they could have been leaked (i.e. committed into public repository or something)
OK, I sent the email to support. Can you clarify on more step? Does the standard Stripe account holder who has enabled Stripe Tax also need to go in and update the Product/Price? I see we have a way to set Tax code to "Generally taxable" or whole dropdown menu. Do we need to tell the Stripe account holder to also update this in the Stripe dashboard in addition to enabling Stripe Tax?
I think I know the best course just want to run it by you guys
Basically the flow of the script seems to be:
- Tokenize card
- Create customer
- Attempt $0.50 charge
and its too fast to be manual input so must be a dev or someone with a script
@bold basalt i have problems with payments greater than 100 eur, problems with 3d secure, I need the client to enter a specific amount that he wants to be the maximum that he is charged.
@viral tangle that should work, you can create an external account while creating a Connect account.
Stripe paid back to my customers the orders paid by my customers ! I wrote shipping and invoices to customers! All customers made their payments via stripe as 3D secure. Stripe tortured me!
I passed this in my JS this way
business_profile: {
mcc: document.querySelector('.inp-mcc').value,
},
@silver tangle hello, one sec
I WILL COMPLAIN TO COURT ABOUT STRIPE !
thx
THEY BLOCKED ME ON LIVECHAT !
AND THEY DONT ANSWER MY E-MAILS
They hurt my company !
@bold basalt something else
@bold basalt Thank for your answer, I actually used the "createToken" JS function. The first argument is "account" and the second one is the whole object account with values
@bold basalt
@silver tangle would recommend rolling API keys immediately. Second, it could be the dev team or the API key might have leaked. Or it could be an unsecured endpoint too, not sure, really depends on the integraiton.
@bold basalt yeah the old dev team was outsourced and barely understood the framework they're using so i was thinking endpoint too - going to run through that. Have to wait on my client to get back in town later tonight unfortunately. Any risk to her account in the meantime?
They're rotating IPs constantly so no way to stop with that... but at least Stripe is blocking everything.
@noble grail hello, I don't have state on your account, but really working with Stripe Support would be the right thing to do here. They are the right team to raise this with.
@viral tangle the code snippet you shared is for mcc , not external_account. I was referring to this: https://stripe.com/docs/api/accounts/create#create_account-external_account
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Yes sorry, because I also tried at first to modify the mcc value and it still did not work
@copper mirage what is your question? how are you integrated? can you give me more details?
@silver tangle would recommend writing in to Stripe Support that you're facing card testing, they can help you with that in the mean time. Let them know you've been to the Discord Developer Chat and I routed you there. But if you can, do roll your API keys immediately
thx. will as soon as i can.
@noble grail What are you selling?
Of course, I have to ask the client for a monthly limit amount, since I am currently charging 100 EUR and it gives me an error, being automatic payments it cannot validate SCA, I wanted to add this limit so that it can be charged without problems until reaching said amount.
i use PHP(laravel)
My another company Software
other company home Decoration
they dont give me answer
Can you clarify a point for Stripe Connect platforms using standard accounts? Are you saying that our platform needs to add Stripe Tax to our own account to allow the Connect account to process a Stripe Tax payment? We would strongly prefer to just write the code for the Connect accounts who choose this product, but there is a large financial impact to us and we would prefer not to add Stripe Tax to our account.
ITS NOT LEGAL STRIPE HAVE DONE
Is Stripe Tax set up differently then Stripe Billing? For example, we don't need Stripe Billing and Customer Portal, but our Connected accounts do, so we do not have Stripe Billing on our platform, but the Customer Portal woks fine, so I assumed Stripe Tax would work in the same way as Stripe Billing?
IM SELLING LEGAL WAYS. ! I SENDING TO MY CUSTOMERS EVERY INVOCE !
@copper mirage sorry it still isn't clear to me. what error are you getting on 100 EUR payments? Is it requiring authentication? is that the error? If so, that is expected and there are things your integration has to do to get the payment completed
Hi there. I'm actually not a customer. I'm trying to process a payment and keep getting an error saying that my card can't be authenticated. I've tried a couple of different cards and get the same issue each time.
I've talked to my bank(s) though, and they say I'm good to go
ok, there is a way to be able to put a limit amount, example 300EUR per month to a client, and be able to make charges up to 300EUR without having to go through the SCA process, that is possible
@noble grail let's calm down, we're here to help in this channel but account related policies are not our domain. I unfortunately cannot help you, would recommend working with Support on this. Do you have a ticket ID or something with Stripe Support? Can you DM me the ID? I don't know what I can find (as this isn't my domain) but I can try
@copper mirage ah I see but I'd like to reframe how you think about it. SCA/authentication isn't something you can avoid. Issuing banks can ask it for any amount, at any time. So really, you have to build your integration in a way to a) claim off session exemptions during the first payment and b) bring your customer on session if any payment declines with authentication required
@bold basalt is this a Stripe problem or do I need to contact the seller?
@tepid compass hello! reading one sec
@tepid compass that is Stripe Checkout, right? (a full page payment form that the business redirected you to)
Correct, just a snip from it though.
I contacted my bank and they told me that hadn't got any transactions today, so it's not processing through at all
@tepid compass gotcha ... yeah not sure what it could be really. Can you DM me the link to the url there? I can try to see any logs I can find and try to trace through what it could be.
So there is no way to set your own limit to skip the SCA by development? only by the bank
@tepid compass looking ...
@copper mirage yes it isn't entirely dependent on an amount limit or not, authentication can be required by the issuing bank so you have to build your integration in a way that you can have your customer authenticate payments.
Thank you very much man, I'll be bothering you for any other thing, good morning
Hi, what field in invoice object (https://stripe.com/docs/api/invoices/object) shows the "Payment date"? i cant understand
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@tepid compass from what I can tell, the authentication failed. It looks like the bank rejected it. I'm not an expert at looking at authentication failures but that is what it looks like to me. Using a different card might work here.
@viscid burrow sorry getting to your question, missed it
no worries.
@viscid burrow let me check actually, one sec
That's weird. I already talked to my bank and they said they didn't see any transactions.
@prisma flower hello, look at the Invoice's underlying charge Charge's created field
@tepid compass not sure why they say that, (speculating here) maybe the technicality that they didn't see a Charge as a payment was never created cause the authentication failed?
Maybe. I'll try contacting them again.
@viscid burrow so you won't be charged for Automatic Tax if you're not using them but rather, the tax lives on the Connect account cause the payments are "direct charges" created on the Connect accounts.
I do think you need to (as a Platform) enable Automatic Tax in order to pass that param on Connect accts, once the product is past invite-only.
At the invite-only stage, you'd have to ask Stripe Support to enable it for you as a Connect Platform
@bold basalt I tried contacting them again and they still say it's not an issue on their end. I also tried a different card from a different bank and got the same error.
@tepid compass so your later attempts aren't authentication failures but rather card declines after authentication. Again, can't say more than that but that is what it looks like. TBH it wouldn't be an issue with Stripe Checkout, it is taking the card and attempting charges, just that it is getting back a decline.
Yeah, I tried my wifes card and it got caught up in the fraud department. Contacted them and they said it was good to go, but it keeps doing the same thing. Very frustrating situation.
@bold basalt is there someone I can contact on your end that might be able to give me more information?
@tepid compass I don't think this would be helpful from Stripe's end really. From what I can tell, these were downstream things, where Stripe talked to an issuing bank and got an authentication or payment decline. This happens, it really is dependent on numerous factors but there's not much I think Stripe can help with. You're welcome to talk to Stripe Support but really what I've seen work is just using alternative cards.
I've tried 3 cards from 3 banks. 2 authentication failures, and 1 decline in the fraud dept.
Citi says that it's on your end, and they aren't seeing any transactions. I know the card is working fine since I've used it on other transactions today. Even since I tried my purchase.
And that was from 2 different customer service people there.
So I'm at a loss.
Hi all,
I am trying to update an account with PHP from these docs
https://stripe.com/docs/api/accounts/update
the script seem to work but the business_profile fields (name,support_phone,support_address and product_description) do not get updated and come back as null. the metadata does work btw.
Q: Did I do something wrong? How can i fix the business_profile fields to get updated?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
PHP code here...
$update = $stripe->accounts->update(
'xxxxxx',
[
'metadata' => ['order_id' => '6738'],
'business_profile' => ['name' => 'test'],
'business_profile' => ['support_phone' => '3121231234'],
'business_profile' => ['support_address' => '11 main street'],
'business_profile' => ['product_description' => 'test'],
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
]
]
);
Thanks for the help
@tepid compass I would say write in to Stripe Support (at https://support.stripe.com/contact) with that Checkout URL that you shared earlier, they should be able investigate a bit more. Not sure if they'll find something different really but that is what I'd recommend.
@mortal tinsel hello, can you share an account ID? (not the full object, just the acct_123 type ID, I can look it up)
like this - acct_1JA4q04hOBvcamqy
I'm taking a look now! Give me a few minutes
thanks much
So looking at the recent requests made to update that account, I do see multiple requests made to update business_profile.product_description, but none that update any other fields in business_profile. Can you try running your PHP code again to confirm whether the other business_profile fields also fail to get updated?
ok will do
@bold basalt Is there any specific configuration to add business_profile to an account because passing token seems to be different to the classic way ?
I do have to pass a token for creating an account since I'm French
hi i just did an update
example change worked here "metadata": {
"order_id": "12345"
},
but not for these
"business_profile": {
"mcc": "5734",
"name": null,
"support_address": null,
"support_email": null,
"support_phone": null,
"support_url": null,
"url": null
},
@bold basalt had to step away, but I can help you out! Are you trying to create an account w/ business_profile set using an account token?
trying to update existing account
Just want to confirm - what is the product_description you passed in to the request?
That last message about creating an account w/ a token was for someone else @mortal tinsel
'business_profile' => ['product_description' => 'Varied test'],
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
using PHP - maybe I wrote it wrong?
@dim hearth Thanks ! I'm using this form https://stripe.com/docs/connect/account-tokens to create a new account, I try to add more input to have the fresh created account verified such as mcc or external account but it doesn't take it during the creation
Connect platforms can use Stripe.js to securely collect account details from their users.
AH! Just caught something - your code is wrong.
$update = $stripe->accounts->update(
'xxxxxx',
[
'metadata' => ['order_id' => '6738'],
'business_profile' => [
'name' => 'test',
'support_phone' => '3121231234',
'support_address' => '11 main street',
'product_description' => 'test'],
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
]
]
);
ok thanks karbi
Gotcha - so I don't believe information like MCC and external accounts are passed in as part of the account token. You'd first create the account token, and then using that token ID you'd pass it into a server-side request to create the account w/ the additional information (like business_profile) like this: https://stripe.com/docs/connect/account-tokens#create-account
Connect platforms can use Stripe.js to securely collect account details from their users.
i have probles about disputes
i lost a lot of money and product because of this
can anyone help
or i have to stop using stripe
Hello! This is a channel specifically geared towards integration/developer questions, and we don't really handle issues with disputes. I'd suggest contacting support at https://support.stripe.com/contact and they should be able to help you!
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.
Oh then the token creation does not actually create a proper token ?
It was a bit confusing since the documentation tells to add as much required input as possible but it's ok ! It explains why I can't create the whole process in a row 😂 thanks lil owl !
It is creating a proper token, but only some information (specifically legal entity information) needs to be bundled into the token. The rest of the account information is passed in separately.
Hi all,
My client needs to be able to set up a payment in 1x 2x 3x is this possible directly with stripe?
Hello,
I have been assigned to fix a Stripe bug on a project that implements Stripe using Java. The project is rather old and the API version currently integrated is using some deprecated features.
I attached photos of what the dashboard looks like for each connected account that isn't working. Is there a non-deprecated version of the legacy_payments capability? Or do I have to update the API version to fix this issue?
Hello there! When you say 1x 2x 3x, are you talking about paying in installments?
Hi karbi - you mentioned my code is wrong - can you tell me how to fix it?
I am working in PHP from this
https://stripe.com/docs/api/accounts/update
More parameters
business_profile
optional associative array
CUSTOM AND EXPRESS
Business information about the account.
Hide child parameters
business_profile.mcc
optional
The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.
business_profile.name
optional
The customer-facing business name.
business_profile.product_description
optional
Internal-only description of the product sold by, or service provided by, the business. Used by Stripe for risk and underwriting purposes.
business_profile.support_address
optional associative array
A publicly available mailing address for sending support issues to.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
maybe I wrote the PHP wrong?
Sorry, should've been clearer! The code I sent over in my last message has the fix in it - you were setting business_profile incorrectly (I removed some of the brackets from your code).
I still think there may be an issues with product_description on our end, but that fix should at least get you to a point where you can update all the other fields
Hello! Let me look into this for a few minutes
Yes exactly !
Gotcha - so we do offer installments in mexico (https://stripe.com/docs/payments/installments) but for other countries this would have to be something you build yourself on top of what we offer (invoices, subscriptions, etc.)
Learn how to accept credit card payments using an installment plan with Elements and the Payment Intents API.
Thanks karbi - when I ran it I got the error -
Fatal error: Uncaught (Status 400) (Request req_Oph8Qs3GRMOQbd) Invalid object thrown in /home/halive/public_html/biz/data/pay/vendor/stripe/stripe-php/lib/Exception/ApiErrorException.php on line 38
Yo, anyone knows how to pass a parameter to an expanded object
For example, I'm retrieving customers list by email and expanding the response with data.subscriptions, but I also want to pass the status: "all" parameter to the subscriptions list
So that all subscriptions are returned, not just active ones
this works w no business_profile
$update = $stripe->accounts->update(
'xxxxxx',
[
'metadata' => ['order_id' => '6738'],
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
]
]
);
this has error
$update = $stripe->accounts->update(
'xxxxxx',
[
'metadata' => ['order_id' => '6738'],
'business_profile' => [
'name' => 'test',
'support_phone' => '3121231234',
'support_address' => '11 main street'
],
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
]
]
);
and took out product_desc
You're getting that error because support_profile doesn't take in a string, it takes in a hash (https://stripe.com/docs/api/accounts/update#update_account-business_profile-support_address). If you were to replace 'support_address' => '11 main street' with 'support_address' => ['line1' => '11 main street'] that would work.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
aha thanks I will try it now
That's not possible and it's not how expansion works - if you want to get all the subscriptions for a customer, you'll have to do it in a separate request
just a friendly tip, try wrapping this in a code block as it'll be formatted and syntax highlighted.. easier to read!
Like below, without the space before the backtick:
``php print 'hello world' ``
🙂
Ok, thank you, that makes sense
ok will do
Okay my example didn't work, it's three backticks 🙂
@bitter pewter Sorry for the wait! Are you able to request the card_payments capability for these accounts? That should be all you need to do migrate
Sorry since I'm new on this project I'm not quite sure. I'm assuming when connected accounts are made they are given certain capabilities, and these capabilities are what displays in the dashboard under each connected account... if that's correct then no the card_payments capability isn't activated / can't be requested. Would I just have to request those capabilities then to migrate?
Yup! You would just request the card_payments capability for any account that has legacy_payments - you can see how to do this here https://stripe.com/docs/connect/account-capabilities#requesting-unrequesting
Learn about capabilities (which determine what a connected account can do) and the associated information requirements you must satisfy to use them.
Thank you!
thanks Knippy will do
thanks karbi - not it's all working with full address update like this
'xxx',
[
'metadata' => ['order_id' => '123456'],
'business_profile' => [
'name' => 'test',
'support_phone' => '3121231234',
'support_address' => [
'line1' => '11 test street',
'line2' => 'Apt 7',
'city' => 'My City',
'state' => 'CA',
'postal_code' => '123456',
]
],
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
]
]
);```
so happy thank you!
Awesome! Glad I could help 🙂
YES YES YES !!!!
Hello. Trying to get an understanding of stripe payment. Is it possible to integrate to accept payments from a website? If so, do we require our own back-end server (e.g. Node, etc)? Or can the website process the payment directly to a Stripe server, etc? Appreciate any advice. Thanks
Hello! There are a number of different was to accept payments through Stripe - it just depends on what you need. The standard integration would require some code on your site, but we also offer payment links (which require no code), and there are a number of third-party plugins/extensions that would require no coding on your part
i need some help with reseting my password because it wouldn't let me since i have opt password enabled
I don't mind "some" code. I have a few concerns. I don't want to have to have a back-end server. The site in question runs in a php server environment. It doesn't require a mass amount of transactions. It's for a property management company, so need to accept payments from home/co-owners for monthly payments of fees, etc.
So if you have any recommendations, I'm all ears. 🙂
I've tried getting someone to contact me from the stripe.com site, but so far, no luck.
That's not something we can help with on our end (this is a channel for technical/developer help) - I'd suggest contacting support at https://support.stripe.com/contact/email and they should be able to help!
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.
Hi guys! Im developing a small Discord bot as a test through which customers can buy a digital product. I have only one theoretical question. The user should get to a gateway, is Stripe Checkout Session or Invoices more suitable for this?
Yeah, that just sends me right back to the contact form on the website. Which thus far I can't get anywhere with. I also don't see a phone number to call anyone. So I'm in limbo until someone can contact me I guess.
Sorry that last message was for someone else - if you don't want to have any backend code then your options are more limited. I'd suggest looking into payment links (https://stripe.com/docs/payments/payment-links) and if that doesn't fit your use case you can look into some of the third-party options available (https://stripe.com/partners/apps-and-extensions)
Learn how to create a payment page and embed or share a link to it.
its a front end issue on stripe, if i know what body data i have to pass, i can solve it pretty fast for myself to continue working and i still will report it
Hi there - could you point me in the right direction for updating my existing stored card tokens to work with SCA? all the guides I see seem to relate to just migrating existing checkout flows but I swear there's a dedicated page for this
Hello! It depends on what you need - both rely on a Stripe-hosted checkout page for users to enter in their payment information. Invoices have the added benefit of sending a user an email w/ the payment instructions + link to the hosted payment page.
Cool, thanks for the quick answer. Seems like Im going with Invoices 🙂
That's still something I would suggest contacting support about - we mostly handle integration issues here, not issues with log-in.
Hello, my English is not very good, I am developing a web application that uses the sdk and the stripe api, can you make a card payment without having a customer? I get the following error, You cannot reuse PaymentMethods without attaching them to a Customer object firs
Hello! I can't think of a specific dedicated page we have for this, but do you have any other details? Typically existing card tokens that were saved prior to the enforcement date are grandfathered in and shouldn't need authentication
Hello! You can make one-time card payments w/o having a customer, but you cannot re-use the same payment method unless they are saved to a customer. Does that make sense?
Still have a question regarding invoices. Probably a stupid question: How can I add an invoice item to a invoice?
Oh nice, is that documented anywhere?
thanks, then I'll keep reading the documentation
To an existing invoice? Once an invoice has been finalized, it can't be modified anymore.
Ok. We would need it so the amount would be calculated by the site prior to sending the user to the payment section
Yup! You can read a bit more about it here: https://stripe.com/docs/strong-customer-authentication/previous-authorization-agreements#eligibility
Learn which payments previous authorization agreements can be used for (sometimes referred to as grandfathering).
Not an existing one. Im creating an invoice and directly want to add an item.
will there ever be a webhook for connect account create? currently we only have connect account update
Boom! Thanks karbi I remember you being awesome back in the freenode days!
If you need that level of control then payment links is not the best fit - I'd really suggest looking into third-party solutions if you don't want to have any backend code. We also have a very old client-only Checkout solution that doesn't require a backend (see https://stripe.com/docs/payments/checkout/client), but I really wouldn't recommend it. It has a lot of limitations and is no longer being actively worked on
Where would I start with the 3rd party solution?
If an invoice is not yet finalized or not yet created, you'd use the invoiceitem object. If it's not yet created, create one and then pass that ID into the create method for invoiceitems -> https://stripe.com/docs/api/invoiceitems/create
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I don't believe there is a way to create an invoice item at the creation of the invoice itself. I think it has to be a consecutive process.
If i'm understanding your question correctly.
Thats exactly what Im doing. Leads me to Error: Nothing to invoice for customer
Also, I'm not opposed to coding if required, just hoping not to have to have our own back-end server to implement the payment process
Can I dm you to explain my problem in more detail?
I'm not a stripe employee, and they prefer keeping everything in the public venue to the benefit of the fellow devs 🙂
No, that's not a webhook event we would add - connect account creation is something that happen synchronously through an API request on your part, so there's no need for you to be notified of it.
Oh sure. Then let me try to explain it better. One second 🙂
Provide some code too, if you can, maybe the invoice creation process!
Yes, but not having your own back-end server really limits the integration options you have. Almost all of direct integration guides require some backend component (leaving you with only third-party options if you don't want to have your own backend). I can't make any specific recommendations, but there are a number of third-party apps + extensions we have listed here (https://stripe.com/partners/apps-and-extensions/collection/recurring-payments) that support recurring payments, so that's where I'd recommend starting.
I'm probably going about it the wrong way. I keep it small and handle it in a single function. i start by creating a price for a product. Then, I create the invoice & add an item.
const createInvoice = async (customerId: string) => {
const price = await stripe.prices.create({
unit_amount: 500,
currency: "usd",
product: "prod_XYZZZ",
});
const invoice = await stripe.invoices.create({
customer: customerId,
});
const invoiceItem = await stripe.invoiceItems.create({
customer: customerId,
price: price.id,
invoice: invoice.id,
});
console.log(invoice);
console.log(invoiceItem);
return invoice;
};
Not sure what could be wrong with that.
for future reference, you can paste that in a code block, which is wrapped around three back ticks. for specific syntax highlighting put javascript without space right after the first set of backticks 🙂
Invoices are weirdly tricky through the API - you need to first create the invoice items (on the customer), then create the Invoice. The request to create the invoice will automatically pull in any pending invoice items that are on the customer
Is stripe tax in beta since it is invite only? @dim hearth
Ok. Thanks
Such a good point, i forgot about that 🙂
Didnt think about that. Fixed 🙂
Yes @fair flower ,karbi is completely correct. It has to be created in reverse, so sorry about that 🙂
Yup! I believe it's in beta
Ahh, makes sense. Will try that out
@fair flower i do advise you have some error tracking in place, so that if the invoice creation fails, it deletes the pending invoiceitem, as I think it'll sit there and then be added to the /next/ successful invoice, which could result in two line-items.
Say, for example, the API goes down, network error, rate limiting, etc, in the precise milliseconds between invoiceitem creation and invoice creation.
Good thought. Yeah would have added that surely, but for now Im just testing some things 🙂 For production this is definitely the way to go
Enjoy all there is to using Stripe. The scuttlebutt is they may make the Stripe Platform the 8th wonder of the world 🙂
What would happen if my server goes down between successfull payment and webhook? Will the webhhok be called later?
But sshh, you didn't hear that from me
Failed webhooks are retried!
Thats nice
Which means its also important that you have idempotency checks in your code to make sure a webhook that you already actually processed isn't repeated
Is is possible to retrieve the ordered qty from the payment_intent.succeeded event please ?
Yea i verify them the same way as the docs, but does that prevent replay attacks?
Pass it in the metadata
Hello! Are you using Checkout for a one-time payment and want to know the quantity for each item?
Yes
how long would it take that the support response to my ticket? and thank you for the support 🙂
If you validate the signature of the webhook as well as IPs (from a whitelist of known Stripe IPs), that should by itself mitigate attacks in general. But the idemopotency would just make sure you aren't re-processing something you already have processed.
Is there a limit to how many subscriptions a customer can have? I feel like it used to be limited to 20 but I was just able to create a customer with more than 20 subscriptions.
Gotcah! So you can't get that information off the payment intent itself, but you can list the checkout session that is associated with the payment intent by passing in payment_intent when listing checkout sessions (https://stripe.com/docs/api/checkout/sessions/list#list_checkout_sessions-payment_intent). You would combine that with expansion to expand data.line_items and see the quanity for each line item
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
How long has it been so far? I don't have a ton of insight into expected wait times, but with the US holiday weekend there might have been some delays
Is there a public list of ipaddresses that stripe uses when calling webhooks? And I dont understand what idempotency means
i know this issue is here for quite some time but i just send a contact email (15 minutes ago), but if i have to wait a few days i will just create a new account as a temp solution
Got it, thanks for your help!
Here's an example of how I have it in my client's code:
(req, res) => {
/**
* @todo get this dynamically https://stripe.com/files/ips/ips_webhooks.json on server init
*/
let stripeIPAddresses = [
"3.18.12.63",
"3.130.192.231",
"13.235.14.237",
"13.235.122.149",
"35.154.171.200",
"52.15.183.38",
"54.187.174.169",
"54.187.205.235",
"54.187.216.72",
"54.241.31.99",
"54.241.31.102",
"54.241.34.107"
];
let requireValidIP = true;
let webhook_secret = __APPCONFIG.stripe.apiKeys.webhook;
let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
if (ip.substr(0, 7) == "::ffff:") {
ip = ip.replace("::ffff:", "");
}
if (requireValidIP && !stripeIPAddresses.includes(ip)) {
return res.status(403).send({
err: {
message: "Unauthorized IP Address",
ip: ip
}
});
}
// validate signature
const sig = req.headers['stripe-signature'];
let event;
try {
event = Stripe.webhooks.constructEvent(req.body, sig, webhook_secret);
} catch (err) {
console.log("Webhook Error", err);
return res.status(400).send(`Webhook Error: ${err.message}`);
}
But to answer your question, IPs are available here: https://stripe.com/files/ips/ips_webhooks.json
Thank you, I will just pull the json as you commented
Let me double check on that - the limit of 20 sounds vaguely familiar, but I would need to dig in for a bit
As far as what idempotency is for, it's basically a way of tagging a specific instance of a request with some sort of ID or signature. That way, if the same exact instance gets repeated in the future, you know that you've already handled that request. It works both ways, so you can generate an idempotency key in your API requests. That way, lets say your server repeats a request (maybe because of a network issue or a weird handling of a refresh button), Stripe will go "oh hey, I already saw a request with this idempotency key, I will ignore it"
see information about it here -> https://stripe.com/docs/idempotency
Idempotency allows safe API retry requests.
as far as webhooks go, I'm not sure if Stripe itself has its own preferred way for developers to handle it, but what i do is, I locally store the ID of the event in an array, and check every future request to see if that event ID is in the array.
if (event.request && event.id) {
if (__KEYCHAIN.keyUsed(event.id)) {
console.log("Webhook Error", {
err: {
message: "Event key already processed",
webhook: event
}
});
return;
} else {
__KEYCHAIN.addIdemKey(event.id);
}
}
I am looking to hire a developer to help me differentiate location meta data on reports for my two locations , can anyone assist?
I could generate a random key inside the metadata when creating a paymentintent, and then store it in my database, and compare the keys when webhook is called.
@fair smelt This is how you pass idem keys to Stripe in your outgoing API requests:
let idemKey = __KEYCHAIN.GenIdemKey();
Stripe.plans.create(apiObject, {idempotency_key: idemKey}, (err, apiPlan) => {
if (err) {
return res.send({error:err});
}
[snip]
You could do that, but then you'd be doing a lot of database lookups and such to search against that metadata-random-key you generated. It could work, but consider if it'll be sufficient for your application model when it comes to system resources. Accidental re-sending is rare but it can definitely happen, by that, I think my point is I don't know how necessary it is to indefinitely store those keys for checks after a few days.
And additionally, if you have automated objects being created, like through a subscription, you won't have that opportunity to assign your own random key to it
I'd suggest waiting a couple of days, and if you hear no response then create the new account as a temp solution
i rather create now a new account, i'm don't like hold ups, sorry that how i just work, and be fast lol. but still thx for the help
This IP list doesn't change too-too much, but it can definitely change. So it's probably safe to cache the IP whitelist for a few hours so you're not constantly performing an HTTP request every webhook. Your server needs to respond to a webhook speedy-quick, otherwise Stripe will consider it a fail and will retry it later on
would anyone happen to know how I could use the expand key in a StripeResource request? For example:
const product_classes = await new resource(stripe).request({})
I thought I would be able to pass expand in the request object there
but it comes out as a bad request
@hearty pilot I don't have specific dates, but yes, the limit used to be 20 subscriptions per customer and has since been raised to 500
Quick question on updating subscription using stripe.subscriptions.update, if i'm trying to manually update the cancel_at property to be after the period_end would i need to set the cancel_at_period_end back to false if by default in settings, i have it set for end of billing cycling month?
@fair smelt But it is also important to check the signature of the webhook itself, to make sure it was signed with your webhook_secret this would also prevent attacks. In my example, I used constructEvent() provided by Stripe's nodejs implementation
Ok, I think I will figure it out. Storing it on the server is probably much better, and then clear elements older than some days
Whatever works best for your implementation. Again, my only concern is for webhook events that originate from asynchronous events, like a paymentintent being created after an automatic subscription renewal
Yea, I did that already, was just concerned about replay attacks, but I can test it using burpsuite
Have you tried this out? I'm actually not 100% sure what would happen in this situation and would need to test to confirm. Can you also clarify what you mean by "default in settings, i have it set for end of billing cycling month" - which setting are you talking about?
I'm going to head back to work. Y'all in good hands with karbi 🙂
What kind of error are you seeing from the request? Haven't personally tried to use StripeResource like that, but I can dig around and figure out what's wrong
I'm testing the Product Catalog API
@edgy axle Hello! @dim hearth needed to step away, but I'd be happy to help! Can you give me the request ID showing the error about data.price? Here's how you can find a request ID: https://support.stripe.com/questions/finding-the-id-for-an-api-request
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.
@edgy axle Taking a look, hang on...
@edgy axle That request was made to /v1/product_classes, but Product Classes have no price or data.price properties. Did you mean to hit /v1/products instead?
nope, this is actually what has been sent to me as documentation, this means I need to contact the team that made the docs and let them know this doesn't work
@edgy axle Are the docs you're using hosted on stripe.com?
No, this is private 😐
@edgy axle Ah, okay. What are you trying to accomplish with this request?
I can successfully list product classes, but the docs tell me I should be using expand to access prices associated with them
oh wait a sec, maybe you're right.. I might be hitting the wrong url..product classes are query params of products, lemme try something
@edgy axle Yeah, that's not how Product Classes work.
@edgy axle Prices belong to Products, and Products belong to Product Classes, not the other way around.
gotcha gotcha
@edgy axle I think you might want to try listing Products while expanding product_class on those Products?
@edgy axle Actually, no, I think you want to list Products and specify product_class and expand price_options maybe?
This is the curl command
so it looks like product_classes is a query param, but I want to pass the product class id with it and expand price from there
I'm not sure the best way to do that with StripeResource
could I do that in path?
@edgy axle To clarify, does that curl command work as expected?
I couldn't get that to work for some reason, don't even remember the errors I was getting
it's always auth issues though
and I can't copy and paste from the docs anyway lol
@edgy axle Can you share the code that led to the request you shared earlier?
can I DM you? I'm not even sure if I'm supposed to be sharing this publicly 🙃
@edgy axle No, I have DMs disabled. I also forgot this was in beta. 😅
brb gonna delete everything
@edgy axle Probably best to work with whomever your point of contact is/the one who provided the docs.
@edgy axle I don't think you need to delete anything.
@dim hearth i have not tried this yet 😦 and i'm talking about settings -> customer portal -> cancel subscriptions (Allow customers to cancel subscriptions) and have choice between "Cancel Immediately" and "Cancel at end of billing period". I have it set at end of billing period, which means once a customer cancels, the cancel_at_period_end will be set to true
@edgy axle We generally don't like to share beta stuff because it's subject to change and whatnot.
right, I'm giving feedback on the API, I'm not doing anything production ready
ty for your help, though!
@lusty geyser Hello! karbi had to step away, but I'd be happy to help!
What am I looking for, if I want to integrate the "other" payment methods in the Stripe-hosted checkout page? (javascript)
@lusty geyser What exactly is your question about that Customer Portal setting?
@mighty hill oh thank you, by any chance do you know what the proper steps would be for updating the cancel_at timestamp if i set it past the end of billing period?
I keep getting a message stating that our account representative's social security number can't be verified, even though he entered the correct one. How do we fix?
@small ginkgo Can you provide more details? What do you mean by "other"?
would i have to manually set the cancel_at_period_end to false? since technically the cancel date is not end of billing cycle
@lusty geyser To clarify, what does this have to do with the Customer Portal? Do you have two unrelated questions?
@hallow siren I wish I could help, but this chat is focused on developers and technical questions. Our support team will be able to assist you better than I can: https://support.stripe.com/contact/email
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.
In the dash: Settings > Payments > Eligible > Ready to Integrate
Alipay, Przelewy24, etc
@lusty geyser If you set cancel_at on a Subscription via the API the Subscription will cancel itself at the exact time you specify. It's not directly related to the current billing period in any way.
@mighty hill I was telling @dim hearth that i have it set that cancelling a subscription via customer portal is set to end of billing period. which means that the subscription object's property: cancel_at_period_end is set to true
@small ginkgo You specify the payment methods you want the Checkout Session to support in payment_method_types when you create the Checkout Session: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_method_types
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
what happens and what does stripe do when i manually update cancel_at timestamp to be past the billing period. does stripe automatically set cancel_at_period_end to false?
or does stripe use the cancel_at_period_end and ignore an updated cancel_at timestamp
does it apply for javascript too?
@lusty geyser So the scenario you're asking about is someone using the Customer Portal to set a Subscription to cancel at the end of the period, then you go in with the API and modify the Subscription in question with cancel_at set to a time period past the end of the current billing period?
@small ginkgo What do you mean? Are you asking about client-only Checkout?
yes
@small ginkgo I'm honestly not sure. Client-only Checkout is deprecated and we don't recommend people use it. Let me see what I can find out...
@mighty hill correct. a bit more context of why i need to do this is... i have an applied coupon but if the customer cancels a subscription the full period of the coupon is lost (the subscription ends end of billing period). So i'd like to manually update the cancel_at period to the full period of the applied coupon
@small ginkgo According to the docs only card payments are supported with client-only Checkout: https://stripe.com/docs/payments/checkout/client
Ok, cool.
@lusty geyser Ah, okay. What behavior are you seeing in test mode? Is it different than what you expect?
Hello Stripe folks. I'm trying to debug how to send an invoice_payment.failed webhook for testing.
When I am in Developers > Webhooks > Send test webhook of said event, our app was able to pick up the event.
I tried to recreate this via https://dashboard.stripe.com/test/customers/cus_Jm05qQpD0n14Xf; I created an invoice with invoice items and initiated a payment with a card that is designated to fail. I didn't see any failed event come through. Would you have some insights for me?
@lusty geyser When I create a Subscription via the API, set cancel_at_period_end to true, then set cancel_at the cancel_at_period_end reverts to false.
@mossy wren The easiest way would be using Stripe CLI and the command stripe trigger invoice.payment_failed
@mossy wren That should produce output like this:
❯ stripe trigger invoice.payment_failed
Setting up fixture for: customer
Setting up fixture for: invoiceitem
Setting up fixture for: invoice
Setting up fixture for: invoice_pay
Trigger succeeded! Check dashboard for event details.```
And the event will be triggered.
@mossy wren Looking at the Customer you mentioned above, I am seeing invoice.payment_failed events, like this one: https://dashboard.stripe.com/test/events/evt_1JAKt8EtYN1x6B8hG1tXRhf3
@mossy wren To clarify, where are you expecting to receive these events? I'm not seeing any webhook endpoints configured that would have received it, and it doesn't look like you're using Stripe CLI either?
@mighty hill Interesting, I thought I had a webhook endpoint configured to receive it. It would've been: https://dashboard.stripe.com/test/webhooks/we_1ImluBEtYN1x6B8hM1X6dzTz
And we're not using Stripe CLI for these specific tests.
That webhook is configured to receive invoice.payment_failed webhooks. May you double check for us?
@mossy wren That's a Connect webhook endpoint, which means it will receive events from your connected accounts. If you want to receive events from your platform account you need to set up an account (non-Connect) webhook endpoint.
That explains everything. I have a couple other webhooks that are not receiving events either. I'll go ahead and make the switch. Thank you!
@mossy wren If you go to https://dashboard.stripe.com/test/webhooks you'll see that all of your webhook endpoints are set up as Connect endpoints.
Yes, I have them all setup as Connect endpoints. I'll make the fix now - appreciate you looking into this.
Happy to help!
@mighty hill is price.updated considered an account webhook endpoint or Connect webhook endpoint?
It can be either! You'll get it for your own account and for your connected accounts (using a connect webhook)
@mossy wren It's both. Most events aren't specific to your account or a connected account, they're simply events that happen on a Stripe account.
Does that mean we need to setup a webhook endpoint for both Connect and non-Connect if we want to capture all scenarios?
@mossy wren If Prices exist on both your platform account and your connected accounts and updates happen in both places price.updated will fire on your platform and your connected accounts.
@mossy wren Yes.
Ah, I'm trying to wrap my head around this concept. With price update, it would been our app sending an API call to deactive/activate the Price of an affiliated Product. In that case, that would fire on my platform. Under what circumstance would it fire for my Connected accounts?
@mossy wren It depends on your integration. It may or may not fire on your connected accounts!
One key concept to understand is that a Standard Stripe account can be connected to another Standard Stripe account. Imagine the scenario where someone with a Standard connected account goes into their Dashboard and creates/updates a Price. That will fire a price.updated event on that account. If that account has an account webhook endpoint set up to receive that event they'll get it sent there. If the platform they're connected to has a Connect webhook endpoint set up to listen for price.updated events from connected account it'll also get sent there.
Does that help?
@mossy wren In your integration it depends where the Prices live. If the Prices exist on your connected accounts you need a Connect webhook endpoint. If the Prices live on your platform you need a regular webhook endpoint. If they live in both places you need both types of webhook endpoints.
@mighty hill Gotcha, thanks for the explanation. I actually am not certain which platform our Price is linked to. Could you take a peek and let me know? https://dashboard.stripe.com/test/prices/price_1J8YztEtYN1x6B8hJLlMrglo
@mossy wren I can tell you where that Price exists, but at a higher level what are you trying to build?
I need help with updating my bank information for payout
@mighty hill In our app, we have user with Connected Accounts who own a Stripe Product. Every Stripe Product has a Price associated with them.
We're building out a Subscription model, regular Customers could subscribe to the different Products and be charged the respective Price that is associated with the Product.
@vocal wagon hello, please work with Support at https://support.stripe.com/contact for that, they can help you. This is not the right channel for this.
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.
Sorru
@mossy wren Where do your connected accounts define the Products that belong to them? In the Stripe Dashboard (meaning these are Standard connected accounts)?
We create the Products for our connect account via Stripe API. When a connected account establishes their credentials on our app, we fire a stripe.products.create call and track that Product ID in our own db; we'll then fire a second stripe.prices.create call referencing the product that was just created.
So in a way, the Product isn't directly associated with the Connected Account on Stripe, but we're tracking them on our own via our own DB.
@mossy wren What type of connected accounts are you using?
@mighty hill I don't have an immediate answer because someone else from the team built the Stripe Connect Account flow, but here is an example of a Connected Account: https://dashboard.stripe.com/test/connect/accounts/acct_1J8An9RHcurDxsvD
Would you be able to tell by looking?
@mossy wren Yep, looks like an Express account. So that means you're likely using destination charges, which means the Prices would live on your platform account.
Hello everyone
When creating an account (company), I try to create a "person" (1) with the file uploaded before this (2).
when create person sent
...
"additional_document": {
"front": stripe_file_response["id"]
}
...
but nothing happens 😦
steer in the right direction please
https://stripe.com/docs/api/files/create
https://stripe.com/docs/api/persons/object
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.
@fast kayak hello, can you explain more, not sure I understand what the issue you're facing is? can you share a request ID for the request you make, so I can look it up?
@mighty hill Amazing, thank you again for clearing things up for me.
@mossy wren Happy to help!
req_bjmG6P2TXFfPKQ
@fast kayak can you explain more what the issue is and what you're expecting to see instead? thanks for sharing the request ID but not sure what issue you are running into
Hello!
How can i create "card" type payment method from stripe-react-native-sdk?? I'm trying to use "createToken" function with type = card but it doesn't works
@rough spire hello, you would use CardField and call createPaymentMethod() (it will automatically grab the right card details off CardField
createToken() creates a Token, not a PaymentMethod, you want to create the latter.
@rough spire no event on it, you just hook up a button to call createPaymentMethod() and it automatically grabs the CardField params from the view hierarchy
Ok, will try it
@mighty hill it seems that updating the cancel_at period to later than the billing period date messes up the customer portal view. The Cancel Plan button still shows up even though cancel_at period is set to discount.end period, as if the customer never cancelled (should be showing the "Renew" button instead)
Hi again! Let me take a look...
@dim hearth hi welcome back! thanks. like @mighty hill mentioned it seems stripe automatically sets cancel_at_period to false when i set a custom cancel_at period. but now issue is the customer billing portal shows the cancel button instead of renew button as if the initial "cancel" never happened (but in backend cancel_at period is correctly set)
@bold basalt I'm still trying but it does not work :/ it shows me an error on createPaymentMethod()
I had
<view>
<CardField />
<button onPress={() => createPaymentMethod()} />
<view>
This may be an edge case that the customer portal team didn't think of - I'm seeing the same behavior as you, but I also want to note that if cancel_at falls within the current billing period the button will say "renew" instead of "cancel".
Hi there! @bold basalt isn't online right now, but give me a minute and then I can take a look. Do you mind sharing what error you're seeing?
@dim hearth okay is there a way to relay that bug report to the customer portal team? Seems like i'll just have to inform my customers about this since i do need to set cancel_at period to be after current billing period when they cancel a subscription
I'm filing the bug report now - if you write in to support at https://support.stripe.com/contact and mentioned that you talked to karbi on Discord I can keep you updated on the state of the bug.
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.
@dim hearth okay. should i send an email support or chat?
an email is fine 👍
Sure, is a typescript error notifying me that function expect at least one param.
I'm trying to create a paymentMethod
Just trying to do this
@dim hearth okay sent email! looks like for now the customer will only see the renew button on the month of the cancel_at period
@lusty geyser I actually have a quick update - a teammate just flagged that this is expected behavior and unlikely to change. The intention is that the customer portal enabled customers to either cancel immediately or at the end of the current period. For a subscription where cancel_at is not in the current billing period, we want the customer to be able to cancel their subscription at their earliest convenience so when they press "cancel" the cancellation date will either be now or at the end of the billing period (depending on your setting)
@dim hearth oh 😦 hmmm... i dont think stripe offers a solution yet for my business case then.... customer cancels a subscription with x free months off applied coupon -> customer should still have active subscription till full x months of the coupon is used
Your code isn't passing anything into createPaymentMethod - take a look at this example here (https://stripe.com/docs/payments/accept-a-payment-synchronously?platform=react-native#react-native-collect-card-details).
Learn how to confirm a payment on your server and handle card authentication requests.
Hello! This channel (#dev-help) is just a place where Stripe users can ask technical/integration questions! There are some other channels here as well where you can chat about other topics
cool
is this channel( #dev-help ) 24/7?
as in, is there always a stripe engineer online
I'm sorry about that - you're right that the customer portal isn't flexible enough to support your use case right now. Your best option would be to disable cancellation in the portal and have a custom cancellation flow
some of the helpers are just regular coders like you 🙂
amazing 🙂
we have a global team, so usually there's someone online on weekdays. on the weekends we have a gap in coverage from Friday night (PST) to Sunday night (PST)
the stripe community is amazing. the employees are awesome, intelligent people, the fellow devs look out for each other. it's awesome.
@dim hearth unfortunately. do you know what properties of the subscription object actually gets changed when clicking the "renew button"? It looks like besides an immediate cancel subscription api endpoint, everything will have to be manually changed
Thanks for that 🙂
Pressing the "renew" button would do the same thing as updating the subscription and setting cancel_at_period_end to false.
Hi everyone ~ I am new to Stripe and API programming in general. I'm wondering where the best place is to ask questions regarding some code that adds listitems via a collection of products from my database?
You can ask here!
ah, ok - I just didn't want to bug people with dumb questions 😄
@dim hearth would i have to set cancel_at, canceled_at to null as well? Or does cancel_at_period_end to false automatically reset the state?
I had tested it out - you should be able to just set cancel_at_period_end to false and that should automatically update everything and reactivate the subscription
Hello! I've deleted your last message because it included your full name (which is PII), and this is a public channel. We can't help with account-specific issues here, but if you contact support at https://support.stripe.com/contact they should be able to help you
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.
@dim hearth okay ty
There should be a UI that pops up in the bottom right hand corner. If you can't get that to work, you can always go through the email form instead https://support.stripe.com/contact/email
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.
@mighty hill is there any way we can test these errors and responses other than the initial card validation? We are trying to replicate these errors like how the customers would receive them in our production environment. (e.g. when they attempt to make the charge after the card has already been added)
Hi, we have managed to port the recent releases of the terminal SDKs for Android to Xamarin. Any chance that Stripe ends up owning the codebase for future releases?
Whilst we are in touch with senior management re other topics, we see some strong value and compelling reasons for Stripe to actually own such Xamarin-based SDKs given the obvious commercial reasons in multi-platform development.
You can accomplish this by passing the undocumented parameter validate: false when attaching the payment method to the customer. This will allow the card to be successfully attached the customer and you can use it in future payments
If you're already in touch with senior management on other topics, I'd suggest flagging this with them as well so they can raise it with the right team internally. We (the team that staffs this channel) wouldn't be the right team for this, and if we were to own it in the future it would fall to other folks.
is there a code example on how to add list items to checkout programmatically as opposed to the static examples shown on the stripe site?
awesome thanks karbi i'll relay this info to my team 👍
You can generate the items in an array before creating the checkout session, and then pass that array into it
Here's how I do it for my client!
// build the line items array
const lineItems = [];
req.cart.orderNumber = await models.order.generateOrderNumber();
req.cart.items.forEach(item => {
const lineItem = {price_data: {currency:'usd', product_data: {product_data:{}}}, quantity: item.quantity}
const stockLine = item.product.stock.find(sL => sL.SKU == item.SKU);
lineItem.price_data.product_data.name = item.product.name;
if (item.label) {
lineItem.price_data.product_data.description = item.label;
}
lineItem.price_data.unit_amount = item.unitPrice
if (stockLine && stockLine.image_map && stockLine.image_map.expanded?.length > 0) {
lineItem.price_data.product_data.images = [stockLine.image_map.expanded];
}
lineItems.push(lineItem);
});
lineItems.push(shippingItem);
let apiObject = {
payment_method_types: ['card'],
line_items: lineItems,
mode: 'payment',
success_url: req.protocol + "://" + req.headers.host + "/shop/order/success/{CHECKOUT_SESSION_ID}",
cancel_url: req.protocol + "://" + req.headers.host,
};
I'm currently using a controller to handle the CreateCheckoutSession event (via post from the form), using the Stripe.Checkout library for c#, so I'd want the code to actually reside on the server - unless you think it's easier to handle the whole thing via the front end via javascript?
I'm not terribly familiar with c sharp, but this is definitely something to handle on the server side. But you can build a list of items and store it in a list or array and pass that into the line_items parameter in the actual API call
gotcha. I guess I'm taking the wrong approach - my current approach looks like this :
In my example, I have a shopping cart that I'm managing throughout the user's session. When they add an item, it gets added on the database. When they hit checkout, it iterates through the items in the cart and then builds an array, and passes that array into the createCheckoutSession call
but I'm getting an error that I can't get to the bottom of. this is kindof why I was hoping there's some code out in the netherworld showing a real life example!
gotcha. build an array.
I'll give that shot. I would have preferred using the objects's own "add" functions instead of string building, but I'm not picky as I just wanna get this thing running! 😄
Yup. Build the array with the pricing data for each item, and then take that array and include it in the API call
I'm not a C# guy, isn't there some JSON parsing thing?
the Stripe.Cart's Session object (at the bottom) handles sending the json to the server (I would imagine!)
thanks for the example Knippy - that's very helpful to get me headed in a good direction!
Is it possible to split payment 4 ways during a connect transaction? Looking for a fixed fee to be charged payed by the end customer to the platform (us), a % fee from merchant to the platform, % fee paid to Stripe for transaction and remaining balance to the merchant. The end customer would see 2 line items in their bank statement - the fixed platform fee and the price of the product.
This could be what you are looking for: https://stripe.com/docs/connect/charges-transfers
With Connect, you can make charges on your platform account on behalf of connected accounts, perform transfers separately, and retain funds in the process.
Thanks, does the charge have to be a single charge? In the example given there is a single charge of $100 that would be visible to the customer.
It doesn't have to come from a single payment. You'd probably want to use transfer_group so you can later identify where the transfer came from though
Thanks!
I understand that if my connected account's details_submitted field is false that I should redirect them to the account link URL so they can finish submitting details. However, what should I do with the user if they have submitted details but charges_enabled is false?
It could be that the details submitted by your user are still being verified. I'd wait a bit longer for a account.updated event before checking the requirements hash to see if anything's missing: https://stripe.com/docs/api/accounts/object#account_object-requirements
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Sounds good. Thank you!
Hello 👋🏽 I need some help surrounding Canada’s pre authorized debit and Stripe’s micro-deposits page. If anyone is willing 🤗
Hi @mossy cape, what's up?
When a user confirms the micro deposits, they are directed to a bank account verified page. The ‘Back to {ConnectedAccountName}’ always redirects to the URL ‘payments.stripe.com/microdeposits/{ConnectedAccountURL}’ which of course is always a broken link. I was wondering if this link is customisable?
Hello @young ibex ,
I need a little help please.
I was following your guide on Accepting card payment from your youtube video https://youtu.be/fhgqeeQczOc
at around 6:00 you type payButton.
in my case payButton showing as Red (error) Iam not sure why
could you kindly assist me on what I need to do.
I am very new to coding and trying to make a payment page for my Project. Thank you!
In this episode, you'll learn how to confirm a card payment with the stripe-android client library in an Android application. Thor covers how to use the CardInputWidget drop in component.
This episode builds on the previous episode about setting up an ApiClient for making an HTTP request to the server to create a PaymentIntent: https://youtu.be...
Are you using Checkout or Elements to integrate this?
@bleak breach Checkout
That's really hard for anyone to answer as we don't know what that colour means in your IDE specifically. Are you getting an error?
Hi @bleak breach It says Unresolved reference on Line 53
You can find the code from that episode here: https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdfWEJQb0VkN3hiS2F2U1FpTmxNcERWemhfZ3xBQ3Jtc0tseEhWTW1Rc1ljdUROY2N3cy1hYVdqbWFoUDFTTFdPWlZENldUZDFTd3J3cE43R2piUmtzN20zLWNBWWpMdnpqcU4ybkUtQ0NZSTdPQzlla2JneWNvWFA2alZzWWNNOU05R1JMN0hCUkNPRnBfOVV6OA&q=https%3A%2F%2Fgithub.com%2Fstripe-samples%2Faccept-a-payment%2Ftree%2Fmain%2Fcustom-payment-flow%2Fclient%2Fandroid-kotlin
Specifically here's where payButton is implemented: https://github.com/stripe-samples/accept-a-payment/blob/5a6280c3c51d3fbb57afce8ad30ca97cdf9a76f3/custom-payment-flow/client/android-kotlin/app/src/main/res/layout/card_activity.xml#L22
@bleak breach Thank you very much
Just trying to recreate this, back in a sec
thanks a lot 🙂
On a stripe billing portal, does anyone know where these plans come from?
You'll find them on your Dashboard: https://dashboard.stripe.com/test/products
My products list shows these. Not sure why the premium ones don't show?
@vocal wagon Did you perhaps set the prices in the portal configuration? https://stripe.com/docs/api/customer_portal/configuration?lang=node#portal_configuration_object-features-subscription_update-products
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
This is the extent to which I've setup the billing portal in Node.js (creating the link to see the plans):
const stripe = new Stripe(stripeSk);
link = await stripe.billingPortal.sessions.create({
customer: stripeID,
return_url: process.env.URL,
});
Aside from that, all products were setup just on Stripe under Products.
Where exactly do you see this page? Can you give me steps to reproduce?
so a user goes through PAD process using stripes checkout, enter details (test email to skip 3 day delay and to receive verification email: {any_prefix}+skip_waiting+test_email@{any_domain} > during checkout they choose manually verify > enter bank details > confirm > email gets sent > click link to verify > enter test micro deposits of 35c and 42c and confirm > redirects to page shown in screen shot
What did you provide as a success_url when creating the Checkout Session?
a link to my own success page
Okay, give me a sec, checking something out
@bleak breach Just found it per your tip! The section was in https://dashboard.stripe.com/settings/billing/portal. Thanks for your help!
sounds good 🙂
It should use the business URL set at https://dashboard.stripe.com/settings/update, are you seeing a different URL there?
actually there I have no URL set
@bleak breach i’ve set it and still the same problem 😦 are you using connected accounts? is yours not being set to payments.stripe.com/microdeposits/{ConnectedAccountURL}
Do you have a Session ID or PaymentIntent ID I could look at?
Hi @steel dragon, what's up?
dm’d ya!
hi i have buyed a server form McsHosting but i did not get the server can i get a refund pls
I am afraid we can't help with that :/ Only with questions about integration
@vocal wagon you'd need to get in touch with mcs hosting
He is not replying so want can I do
if they're not responding, then the other thing you can do is to get in touch with your bank to issue a chargeback
I need some urgent help, i have connected my stripe to shopify plus and it looks great but when I make a payment it is saying "your payment can not be processes at this time" - how can I fix this so my customers can place orders?
G'day, I'm just wondering if it is possible to specify which card types to accept? Eg Mastercard and Visa but not Amex. Through dashboard or API would be fine. Thanks 🙂
@acoustic shell if you look at https://dashboard.stripe.com/logs, do you see any failed /v1/charges or /v1/payment_intents/xxx/confirm calls?
@sacred tinsel there usually isn't a good reason to restrict card brands, unless you're on pricing where they don't all cost the same. what are you trying to do?
hey, yes there are a few failed payment intents
@acoustic shell if you click on one of the failed logs, and look at the response body, what sort of error are you getting?
@stark tide yes that's it exactly, MC and VISA are at a much better negotiated rate, so don't want to accept AMEX at much higher rate
POST /v1/payment_intents
Status
@stark tide or other card types which are not at negotiated rate
402 err
Hey guys, we are using stipe API for payment. We had a use case where we had to provide a promo code feature. For that, we used stripe coupon feature and then generated the promo code via it. The problem is if the promo code discount exceeds the price of the products, the product price is changed to negative rather than being zero. Is there any way to change the price to zero rather than it changing to negative?
@sacred tinsel before calling stripe.confirmCardPayment to confirm the payment intent, you'd need to check the brand of the card in the card element to verify it's visa/mastercard, and reject the input if not
@acoustic shell is there a more specific error message? there should be a field called message in the response body
hi
@oak haven is this using checkout sessions with products + coupons, or something else?
@unreal meadow 👋
this is what I see
@stark tide what do you mean by checkout sessions
@stark tide Thanks, but I'm using Checkout so just setting up the session and redirecting. Is there an option there?
HI i need help for some guide and help for stripe
@acoustic shell please delete that; this is a public forum that you shouldn't be posting customer details to
any can help me
it was a test transaction not real - but the error message is: "This account cannot currently make live charges. If you are a customer trying to make a purchase, please contact the owner of this site. Your transaction has not been processed."
@acoustic shell it looks like your account either isn't activated, or was disabled. you'd need to talk to stripe support if you'd previously activated your account
@sacred tinsel no, you can't use checkout if you only want to accept specific card brands
@oak haven how are you using coupons? is this with an invoice, or with a subscription?
@mossy nimbus shoot
@stark tide with a subscription, a monthly or yearly one depending on the product type
@stark tide is it possible to not accept international cards with checkout? Again rates are much higher for these. Thanks
the thing is we want the price to become zero if it exceeds the promo code amount exceeds the product price
@oak haven I don't think you can get the coupon to not apply to the customer balance like that; I think you'd need to use a negative invoice item instead, so you can apply the capping logic in your code
@sacred tinsel same deal, sorry
negative invoice?
an invoice can consist of multiple invoice items; normally, you'd have one invoice item from the subscription, which would be a recurring invoice item that'll be added to every invoice
you can also add one-off invoice items; there's a convenience method to add these to the first invoice by passing add_invoice_items when creating the subscription https://stripe.com/docs/api/subscriptions/create#create_subscription-add_invoice_items
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
you could add a one-off invoice item for a negative amount to model the discount
Hi everyone! I have succeeded to choose the network for a payment intent but after it i make a subscription for the client and the subscription payement is on "carte bancaire" network.. it's for the dual brand card ( cb & visa || cb & mastercard ) and i want payement only on visa or mastercard! it's possible to choose network on a subscription? thanks a lot!
@quasi flicker you're not actually allowed to do this, unfortunately. see https://stripe.com/docs/card-brand-choice
Enable your customers to select their preferred brand in your payment form.
Hey
I have a question regarding customer while creating checkout session. (https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-customer)
Last time I tested it, few days ago it was working, now it won't prefill customer data
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
ok it's a pity! thanks @stark tide
@vocal wagon what data you want to pre-fill and maybe show the code. so someone can help you
I's PHP code, it used to prefill everything from credit card,name to address
https://pastecode.io/s/t82qaxeg
As documentation says: ID of an existing Customer, if one exists. In payment mode, the customer’s most recent card payment method will be used to prefill the email, name, card details, and billing address on the Checkout page
@vocal wagon where do you see that? AFAIK, when you pass the customer id, it will only prefill the email address.
@lucid raft it's this https://stripe.com/docs/payments/checkout/customization#link-with-stripe
Learn about the different ways you can customize your Stripe Checkout integration.
@meager hawk just can i have a confirmation about that: Hi everyone! I have succeeded to choose the network for a payment intent but after it i make a subscription for the client and the subscription payement is on "carte bancaire" network.. it's for the dual brand card ( cb & visa || cb & mastercard ) and i want payement only on visa or mastercard! it's possible to choose network on a subscription? thanks a lot!
I disagree because it used to prefill everything, just like docs are stating
yep it should work, hard to say why it wouldn't really! the main thing is it only prefills payment methods that were actually added via Checkout itself in the past for that customer, that's the main thing I see confusion about
@quasi flicker good question — I don't know and we don't have documentation on how that feature works for recurring payments. let me look internally for a bit and get back to you
the question it why it doesn't work, but it used to
Hmm, if it is Link with Stripe, you should see this first before Stripe prefill everything
So it is either the customer needs to first click Save Inforamtion to pay faster next time first before that auto fill works
Or Enable Link with Stripe needs to be turned on in the dashboard settings https://dashboard.stripe.com/settings/checkout
it's turned on. This is testing mode and it used to work to be honest
do you have a URL of a CheckoutSession where it's not working so I can try to take a look?
thanks a lot @meager hawk i'm waiting for you!
is there a way to create a connected account from my test stripe dashboard that is auto-approved/confirmed? Creating one and selecting "skip this step" for test mode creates the account but is always restricted
@vocal wagon yeah, strange. I don't know! I'd suggest working with https://support.stripe.com/email so we can dig into it with the product team, if you keep seeing the same thing with new Customer objects. Sorry i don't have a better answer
@lament pier no there's not unfortunately, you always have to provide the information when onboarding the account to activate it(the test data at https://stripe.com/docs/connect/testing#identity-and-address-verification- will work e.g. 1/1/1901 as the date of birth and address_full_match, London, United Kingdom as the address etc)
Hi, I'm having trouble with testing webhooks. I have stripe listen running, and it says connected, and on website it says currently connected, but when I send a test webhook it returns with "Test webhook error: 500 Failed to connect to remote host". I am forwarding to a local Rails instance but I don't see anything in the logs of rails or Stripe cli.
Hey guys. TIL that you guys can now send emails "from" a custom domain. I was going to implement it for our project, but then I saw that you require bounce.example.com to CNAME to custom-email-domain.stripe.com.. Don't you think that this name is way too generic? Especially given that your business is primarily not about emails. Could it be something like stbounces.example.com instead? What do you Stripe guys think?
Hello, I have a questions about phases, and how this affects the CurrentPeriodEnd on a subscription.
I’m updating a subscription(sub_JbVfYmsK7CC6tC) to include a new schedule, in which I set the current phase to have a new end date (i.e. sub.schedule.current_phase.end_date), however I expected the CurrentPeriodEnd of the Subscription to be updated to this new phase's end date, but it’s isn’t - is this expected or am I doing something wrong?
@vocal pollen this is, the "send test webhook" button in the dashboard? That only sends to the URL of the endpoint you're setting up on that page, it doesn't send anything to stripe-cli
I mean, my transactional email provider whose business is pretty much email only and who handles most of my outbound emails, has kinda bigger claim on a domain like bounce.example.com, if you know what I mean.
if you're on that page, what is the ID the endpoint(it's like we_xxx , it's in the URL)
@feral oxide you can't change it really and that's just how the feature works, so I don't really have any opinion to give you
@meager hawk Yeah - It has a built in tunneling service, right? Because it was previous reaching api.teachme2.test which is only available on my local machine, but it looks like it can no longer reach it
@vocal pollen stripe-cli can tunnel but that 'test webhook' button only sends to the URL of the endpoint you're setting up on that page, it doesn't send anything to stripe-cli
well, you could change the way it works, because that seems rather wrong by you
so if your URL is not something pubic our servers will reach you'll get an error
To clarify, I've also set billing_cycle_anchor to the start date of the second phase (which is also the end date of the current phase). My understanding is that this should change the billing cycle anchor and thus should change CurrentPeriodEnd?
@feral oxide I can't since I'm not on that product — if you feel this could be improved I'd suggest contacting https://support.stripe.com/email so the feedback can be reported to that team and they can priotise it. I don't know anything about email DNS best practise myself so my opinion is probably less informed than yours!
@kind pulsar looking!
OK, thanks for redirecting to the right place. Cheers!
@meager hawk I'm not sure I follow. I'm sure it was reaching my own machine (not publically available) by using stripe listen --forward-to api.teachme2.test/api/callbacks/zebra_webhooks --log-level debug
it was working for both the test webhook and by running through checkouts
now both are not working
it's not receiving anything
@kind pulsar I think this is just how it works, I understand what you mean about current_period_end should change, but it doesn't, it's just that when the current phase ends , the schedule will reset the subscription's billing cycle, the subscription object doesn't 'know' that's going to happen right now
@vocal pollen do you have an evt_xxx ID of an event you tested with which is not getting delivered?
also I'd suggest restarting stripe listen
sometimes it gets stuck unfortunately(https://github.com/stripe/stripe-cli/issues/600)
Ah okay, that's a shame - but thank you for looking into it @meager hawk ! 🙇
@meager hawk Sorry! I've deleted and set up webhook again, and re-authorized stripe cli.. it is working for webhooks after a checkout. I should have checked again. Perhaps a re-auth was required after 90 days.
Hello, me again 😅 I have a live implementation that works on localhost but not on the development site. I think it might be because the site has a login firewall. I was just wondering if I have to verify the domain somewhere though in case I'm incorrect in my assumption
@west pivot is this a screenshot from Checkout after redirecting to it? If so, if you open the devtools console, there's usually an error in there that hints as to the real problem(usually it's about API keys but hard to say)
@vocal pollen you don't have to apologise really, but glad to hear it's working
let me know what it says(or you can link the page here and I can look too)
Hello everyone. I have a question.
I have a portal and have multiple vendors registered on it. I want to collect payment from the customer, cut my commission from the amount and send the remaining amount to the specific vendor's bank account. Is it possible?
Any help would be appreciable.
@left orchid hi! sure, that's something you can do with Stripe Connect. I'd start with https://stripe.com/docs/connect/ , maybe https://stripe.com/docs/connect/collect-then-transfer-guide since that's basically what you describe
@meager hawk you're amazing! I don't have access to the site's environment file myself but the devtools let me see that the the publishable key was missing one character. Thanks so much

@meager hawk Actually I am confused about what payout means. As per Stripe support, "Payouts are how money from your customers gets deposited into your bank account". In my case, I want to transfer the remaining amount to different vendors, for example, Customer A paid 10 dollars, I cut my commission 2 dollars and send the remaining 8 dollars to Vendor A.
@left orchid the way it works is :
- you charge the customer $10
- you transfer $8 to the vendor and keep $2 yourself
- those amounts sit in the balance of each of your Stripe account.
- they get paid out automatically to bank accounts a few days later(https://stripe.com/docs/payouts#standard-payout-timing)
so it all just works really
Hi! I have a question regarding webhooks and rails. Currently we have webhooks for Stripe checkout and subscriptions for our platform, and for this we have a webhooks controller with a create method. I am currently wishing to code a checkout for stripe connect (payment intent) and am following the docs where it references creating a webhook for this. Can I simply create a new route/method in the existing controller (such as ‘create_purchase’, as well as our existing ‘create’), or would it be better to make a new webhooks controller for this separate checkout? As I don't want to cause issues with our current webhook for subscriptions. Any advice would be great! 🙂
@meager hawk thanks - I created an "active" account but attempting to create a payment intent with the extra 'stripe_account' param set to the stripe_user_id obtained from the connected account flow shows me "OAuth key or Stripe-Account header was used but API request was provided with a platform-owned payment method ID. Please ensure that the provided payment method matches the specified account."
What the deal with the --latest param on the cli, we had a developer with issues getting webhooks working and this was the solution, but wondering why its a problem to start with..
@vocal wagon well you can do it a few different ways. I don't use Rails myself but I think create is just part of the ApplicationController? Like you can't add a new function just called create_purchase ; you'd have to add like a new class CreatePurchaseWebhooksController for instance
you'll have to do that since it's a Connect endpoint so it will be a different URL from your main platform webhook endpoint and it will be using a different signing secret and so on
so I would create an entirely separate controller for it
@lament pier yes you can only charge PaymentMethods created on the connected account, so there's more to it.
like you'd change your frontend to create the payment objects on the connected account instead of the platform : https://stripe.com/docs/connect/creating-a-payments-page?platform=web&ui=elements#collect-card-details
Okay! Thanks so much for the advice, rly appreciated! 🙂
Hi. When integrating an express account. is there anything built in which will allow us to have the user create and use a new password to enter this area, or is this something we will need to custom build. Business logic is that some of our users share their ClassFit account, but wouldn't want the shared users to have access to the Stripe area so we'd want an extra layer of security before viewing that.
@frosty coyote I don't know! It's a known issue (https://github.com/stripe/stripe-cli/issues/600) but I don't have much context on this
@lyric iris you own the authentication that decides what acct_xxx Stripe account a given user should have access to
@meager hawk is this a change from the old charges API method of doing it? inside the frontend JS we used to supply the platforms PK rather than the connected accounts one
so like they log into your system's concept of a user account and your user database has stored their Stripe account ID and then you can tell Stripe to create a link for that account to view a dashboard(https://stripe.com/docs/connect/express-dashboard) ; you own that authentication
@lament pier hard to say! One thing did change(in the past if you created Tokens tok_xxx on a platform they were usable on connected accounts, but that was a legacy quirk that is not part of the modern PaymentMethod/PaymentIntent APIs) so that's probably what you're getting at
OK so if multiple users share the same ClassFit login details (several yoga teachers, with one studio account), but only the owner should have access to the Stripe Express area, we'd just need to custom build our own login barrier to that area? If so that's fine, I just wanted to make sure we don't custom build something that Stripe have readily available for us to just enable?
I don't think it makes sense to have multiple people associated with an Express account to be honest
like part of it is we collect a phone number and we will SMS that for a second factor of authentication when visiting the Express dashboard, so everyone would need access to that number
Agreed and they're not. We want the Stripe Express account to be limited to one person, the Stripe accountholder. But the ClassFit account is often shared access. So we will need a second barrier between the ClassFit Login and the Stripe Express account to separate access from many to one. That's why I'm asking if Stripe have something we can enable for this, before we start the build process ourselves?
but sure, if only the owner should have access to the Stripe part of your "Classfit" account and the other people on that account can see the other parts then that's fine yeah
Yeah, I actually thought from the demo, it would be a redirect to a new login from the get go. It's only now I'm seeing it in testing I'm realising that it's quite seamless access, which is great for some, but not others.
I thought they'd need to (re)login using their stripe credentials to access this dashboard for example.
oh actually, they can do that as well, sorry.
that's a new feature and I forgot about it.
Oh awesome! That may save us some time... is there a tutorial for that option?
Express accounts can just log in from dashboard.stripe.com https://support.stripe.com/questions/how-do-i-log-in-to-my-express-dashboard , you don't have to use the LoginLink API(https://stripe.com/docs/connect/express-dashboard) (you used to and I was still thinking on that basis)
Ok awesome, and that will just just show the same custom dashboard we're building now?
hmm. It shows them the Stripe Express dashboard, if that's what you mean(it doesn't redirect them to any like ClassFit page for example)
i.e. it's the page linked here in the RocketRides demo(also there's a gif on the support site link I posted showing this a bit)
Hi, y'all! Has anyone been able to add Jest tests using stripe-react-native?
OK I think this will be great. The only part I'm a little confused on, is when we spoke a while ago, you told me that a lot of the functionality like giving the customer the option to refund payments etc was what we would need to build. And we've build that now (within ClassFit) on our express integration. What I'm trying to understand is if we send people to this external link you're showing, is what we've built internally redundant, or does it all connect up?
So if we've build functionality so our clients can fully/partially refund their customers, will they see that on this external dashboard we're discussing now, or are they completely separate - and if separate, does the separate dashboard have refund functionality?
@quasi flicker sorry for the delay, but from I can tell internally unfortunately that brand/network choice feature isn't compatible with our Subscriptions API, recurring payments just use the default settings So there's not really any way to do this beyond manually processing the recurring payments yourself and passing the API parameters for network yourself each time, not using the Subscriptions API.
@lyric iris that Express dashboard only has the tabs you see in my screenshot there , it just lets you manage payouts and account verification
anything related to payments or refunds or disputes or making transfers is all things your platform controls, the Express account holder has no self-serve access to anything like that
OK so the external password protected version won't let a customer see his payments, or refund them. So if we need that we must host it all internally and custom build it. And if we want to silo this area from a mutiple user / shared classfit account to a single user stripe account, we'll need to build our own password wall between the two that is completely separate from the Stripe login. Is that all correct?
Hello ! I'm trying to make a regular payout to one of my seller's connected account. But it seems like "Ihave insufficient funds in your Stripe account for this transfer." I used the testing card to get funds directly charged, then why would this message appear ?
Hello guys, what are the real possible values of card.brand?
The docs states that "Can be American Express, Diners Club, Discover, JCB, MasterCard, UnionPay, Visa, or Unknown." , but when I use an American Express card, what I got is brand: "amex" in the card object.
https://stripe.com/docs/api/external_account_cards/object#account_card_object-brand
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@viral tangle this can be a few things! I'd really suggest using source_transaction always (https://stripe.com/docs/connect/charges-transfers#transfer-availability) as it's the best way to manage this.
With Connect, you can make charges on your platform account on behalf of connected accounts, perform transfers separately, and retain funds in the process.
Ok thanks ! @meager hawk
@lyric iris yes. I think you've looked at the RocketRides example before? Like in this screenshot, that is all a user dashboard you as the platform have built. In your business maybe instead of "rides" you have gym session or so on. You can choose to build a dashboard showing the person payments made on your platform that relate to them , and you can choose to give them the option to issue refunds by adding buttons/UI on this kind of page that tie into API actions.
The Stripe Express dashboard(my earlier screenshot above and what's linked as 'View Stripe account' here) is just for the person to manage the personal details of their Stripe account like what their bank account is and their KYC/identity verification.
Hey there, I try to run on stripe CLI: stripe trigger account.update --stripe-account acct_*****RZ and I get an error: event account.update is not supported why? Thanks
@tranquil bane you're probably looking at a PaymentMethod object instead : https://stripe.com/docs/api/payment_methods/object#payment_method_object-card-brand which has a different set of values
Thanks a lot
what you linked is a different part of the API(it's for debit cards you pay funds out to in our marketplace product) so you're probably just looking at something else
but yeah in the Card object we use Visa/Amex, in PaymentMethods we changed to visa/amex as it makes more sense for an API value as it's easier to programmatically handle
@pure finch it's account.updated in any case
@meager hawk What kind of source should I set for the charge since I want my own balance to be the source ?
@viral tangle you would set to the value of an incoming payment, that's the idea.
Got it. Thanks for clarifying everything
ok ok 👍 thank you very much
like you charged a customer $100 recently, then when making the transfer of $30 tomorrow you specify that you are linking the transfer to the incoming funds form that payment( ch_xxx)
you can not use source_transaction but then the money has to come from your available balance
@meager hawk any case of what?
which means you need to put your account on manual payouts so it accumulates funds (otherwise you never have available balance because we just pay it out to you as soon as we can
@viral tangle see this answer I wrote too : https://stackoverflow.com/questions/55686949/why-i-am-getting-insufficient-funds-when-trying-stripe-transfers-even-though-i/55687932#55687932
@velvet bridge I mean you should be doing stripe trigger account.updated
not account.update, that's not an event, account.updated is
Thanks I actually found it before 🙂
I get the same error
ohh ok I will try
@meager hawk same error with account.updated
well it's a different error actually
Connect platforms cannot create new accounts on behalf of their connected accounts I assume
Hello.
I pass the stripe_user[business_name] parameter in the link for Stripe Connect OAuth. And this value is successfully added to the company name field.
But in the form (almost at the end of the form) there is a field for the statement descriptor. The documentation says that the name of the business will also be added to this field. But now the domain of the business site is being inserted there. It looks like this: MYSITE.COM
Can you please tell me how can I fix this so that the name of the business is inserted?
@meager hawk Ok, I will explain what I want to do, I want to test on my local the webhook account.updated , how I can do it?
@sharp quartz hi! unfortunately I don't think you can do anything about that, it's just how the onboarding form is designed/set up.
That is, this is not a mistake on my part? I just thought that I was doing something wrong.
@pure finch you can just do stripe trigger account.updated (without --stripe-account). stripe-cli will create a new Standard Connected account attached to your platform and will update it, which creates the event on that account and it would be sent to your Connect endpoints. Does that work for your use case?
@sharp quartz I don't think you are no.
It might work differently if you use https://stripe.com/docs/connect/standard-accounts instead of https://stripe.com/docs/connect/oauth-standard-accounts , since then you can prefill https://stripe.com/docs/api/accounts/create#create_account-settings-card_payments-statement_descriptor_prefix and it might work more like what you want, I'm not sure and would have to test it
@meager hawk I tried it
Thank you. Now I will start to study these links
Hello, I am trying to collect recurring ACH payments through stripe subscriptions through PLAID
I am wondering if this is possible
The ACH page on stripe says it is possible but I did not see any documentation for it
@pure finch try upgrading as it mentions
it does work, I just tried it, so you likely need to update
@meager hawk Also we were previously collecting ach payments using dwolla
@meager hawk I tried on Linux, but without success
and we want transfer those over to stripe completely
@plain rapids hi! yep unfortunately there's no direct documentation really so it's hard to explain unless you're already familiar with creating subscriptions on Stripe
@meager hawk I can reinstall the stripe cli?
but basically you follow https://stripe.com/docs/ach and end up with a Customer object with an attached BankAccount. Then you call https://stripe.com/docs/api/subscriptions/create passing the customer ID and it will use that bank account as the default payment source for recurring payments
we have the plaid auth access tokens for existing users can we use those to move our recurring payments to stripe without any user interaction?
Hello, is there any other way to check Stripe system status for more than 90 days ago? For example last 2 years? https://status.stripe.com/
Check Stripe system status and see recent API status updates.
gotcha, thanks
Ahh, ok I found this https://statusgator.com/services/stripe 😄
@meager hawk is this possible?
@plain rapids I'm not sure unfortunately , I don't really know much about the Plaid integration.
okay thanks, anyone else on this group knows about this?
I'd suggest contacting https://support.stripe.com/email with the specifics of your question in as much detail as possible.
hello guys, i want to top-up my virtual card or physical card in stripe is there a way to do it, i'm unable to find it ?
The things is that I'm automatically redirected to my dashboard like a middleware is activated
@river portal I don't really understand, what do you mean by top-up? Do you have a Stripe merchant account?
@viral tangle do you have administrator/owner access to the account?
I'm just a developer, then I don't think so
that's why then
@meager hawk
i have some users and their card no's i want to add some amount into their balance.
like if cardholder have 10 $ in his account and i want to deposit some amount into his card let say i deposit 5$ more that he must have 15 $ in his card
is there a way to do it
@river portal what "account" does the cardholder have? Like, their bank account?
you can't just send arbitrary money directly to a card using Stripe, except by refunding a previous payment you made on that card for example
instead you'd use Stripe Connect for example (https://stripe.com/docs/connect/) to create a Stripe account for them and can send funds to that to be paid out to their payout method(which might be a debit card)
no they are cardholder on my stripe account and virtual cards are issued against them
ok! So you have a Stripe account and you use our Issuing product? (https://stripe.com/docs/issuing/)
yes but issuing will add that amount into my stripe account
i want to add amount from my stripe account to my users virtual card
ok, it really wasn't clear you were talking about Issuing, sorry.
As far as I know you want to use https://stripe.com/docs/issuing/funding/connect if you want to have separate balances per cardholder — you'd have a Connect account for each person and issue cards from those accounts. Without that, funds just all come from your platform's combined balance, it's not split into individual balances for each card.
@meager hawk I'm sorry to disturb you once again, but I'd like to know if what I've been trying to do is possible. I actually gather charged money in my account. When a user subscribe to my platform he automatically get a Stripe Connected Account and can sell products on the platforms. 1 time a month. I want to pay out every Stripe Connected Account (through my own application) following a certain amount. (The issue I'm facing is that I can't transfer a certain amount for each of my Stripe Connected Account with Stripe methods (payouts, transfert...)
@viral tangle it's possible but you will have to use manual payouts so you accumulate the funds on your platform. Otherwise what's happening probably is the customer pays you for the subscription, and you're on automatic payouts so the money just gets paid out to you as soon as we can do so.
if you accumulate funds in your account's available balance instead (by being on manual payouts) then you can use /v1/transfers to send some to connected accounts as needed.
it's really complex though! But it is certainly possible.
@meager hawk
thank you
so basically is not possible the way i was saying it.
as per your suggestion i may need to create their connect account for each individual and then deposit amount into their connect account and they will have their separate balances right?
@river portal yes
is there a way to delete all the data in my stripe test account?
there are lot of customers/account which I don't want
@meager hawk Ok ! Then I should try transfers ! Thank you
@upbeat grove there's a button at the bottom of https://dashboard.stripe.com/test/developers for that
@meager hawk
thankyou so much
Hi
hello there
I have face payment failed issue
like when credit card details or some other reason
Please have a look image
@prime basin you should write to https://support.stripe.com/email as they have access to your account and can help with that
Thanks
thanks @meager hawk have a good day
I wonder if I need customer's action to confirm anything when I "recreate" the subscriptions using the API ?
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 in theory no, since the idea is you use the approach there(it's better documented at https://stripe.com/docs/security/data-migrations/imports#working-with-subscriptions) to manage the billing date of the newly-created subscription, so the customer just gets charged on their next billing date as normal, just the payment happens through the new account and not the new one
@meager hawk thank you very much! Stripe is brilliant!
Hey guys, what webhook event is emitted when the subscription status changes to past_due
You likely want to just listen for https://stripe.com/docs/api/events/types#event_types-customer.subscription.updated
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
and also what webhook events are emitted in this case:
incomplete and expired
this will be called irrespective of what change happens to subscription?
It sounds like you have quite a few scenarios to test, I'd suggest creating those situation in test mode and seeing what fires. That will be a comprehensive example for you.
Any updates to the Subscription will fire that event, yes.
got it
so if these transition are happening
incomplete->expired
active->past due
incomplete->active
this will always be called event_types-customer.subscription.updated with the updated data, right?
Yep, they're all the same underlying change (status field is updated)
got it. Thanks
:question: @flint apex Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
I'm a developer trying to find an API to cancel payment/charge
@flint apex There isn't any way to cancel a payment that is in process. What are you specifically trying to do?
Actually we made a duplicate payments which are all in pending state
so I want to cancel one
Do you have the id of one of those? I can take a look
not sure whether i can share that, could you please suggest some solution to the above stated issue?
It would begin with either pi_ or ch_
There's nothing sensitive about the ids, they are useless without your secret key. You can share the ids here.
A request id would be fine as well (https://stripe.com/docs/api/request_ids), but if you're unable to share any of those ids here, the support team will be able to identify who you are if you write in via https://support.stripe.com/contact and they can look them up directly to assist.
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.
It'll be much faster if you can share a request/payment id here though.
hi there, stripe.billingPortal is showing up as undefined, has it been deprecated?
thanks for the help.. let me reach them
Which library are you using and what version of it?
You'll need to upgrade to at least https://github.com/stripe/stripe-node/releases/tag/v8.45.0
great thanks
Newbie to webdev/payments here. I would like to offer customers on my Shopify webshop where I sell subscriptions products the possibility to pay via IDeal with a digital authorization integrated in it for automatic monthly payments, or, at least SEPA direct debit payment with a digital authorization for automatic monthly payments. Can I do this on Shopify? If yes, how?
Does Stripe offer a customization option for this I mean
@urban drift Shopify runs their own integration that they control, thus you'd want to reach out to their support directly with any Shopify questions https://help.shopify.com/en/questions#/login
Hi @mellow spear
What is the standard "stripe_fee" while charging the dispute?
any questions about Stripe's fees can be answered by the support team (https://support.stripe.com/contact) if it's not already answered by https://stripe.com/docs/disputes
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.
Learn what disputes are, how the process works, and how to prevent them from happening.
Good morning.
i just installed the Strpe in my store. Iwant to perform a test(with trial mode turnedon) with a payment. Iwould like to know, if such a payment would be deducted from my bank.
thank you
test mode payments never create any real world money movement
You should use the test cards at https://stripe.com/docs/testing
Learn about the different methods to test your integration before going live.
thank you
Hi everybody, I would like to know if any of you have implemented stripe connect with the Django Oscar platform to create an ecommerce. I'm looking to link them.
Never heard of Django Oscar, and we don't have any official Django libraries so nothing that specific, either.
Hello!
Is there any tutorial or documentation to create a customer's credit card from react native using SDK??
@rough spire hi there! you want https://stripe.com/docs/payments/accept-a-payment?platform=react-native I think.
Securely accept payments online.
https://stripe.com/docs/payments/save-during-payment?platform=react-native during a payment, or https://stripe.com/docs/payments/save-and-reuse?platform=react-native if you're just saving the card
Learn how to save card details during a payment.
Learn how to save card details and charge your customers later.
Hello Stripe folks. I am looking for some help with our webhooks.
I have two events for comparison: #1 evt_1JAc20EtYN1x6B8hV5vwyck1 (failed) and #2 evt_1J8oyPRHcurDxsvDZ6EjicQ1 (successful).
Our failed event is throwing a StripeSignatureVerificationError, although the method we used to obtain the signature is the same as the successful one. We obtain signature via req.headers["stripe-signature"].
Could I pick your brain as to where I could go to debug this?
Those events are from different accounts. You'd either have to be using a Connect endpoint for a platform they're both connected to, or you are likely using the wrong Webhook Endpoint Secret with the failed one
I need to setup the credit card to use it later for each customer.
I'm trying to understand the create subscription flow using react native but guess i'm stuck at this moment cause i want to store customer credit card
Without do the payment
You want the second link that I mentioned above
Ok let me see
@sick talon I just verified the the Webhook secret appears correct. Could you dive in more on what you mean by I have to use a Connect endpoint for a platform they're both connected to?
I initially had the failed event invoice.payment_failed on the Connect endpoint but switched it over from Connect to regular Account because that's where the event belongs.
@sick talon I'll explain
@mossy wren you have two separate endpoints :
https://dashboard.stripe.com/webhooks/we_1JALDBEtYN1x6B8hiUbpFS0n for events on your platform. That gets the invoice event like evt_1JAc20EtYN1x6B8hV5vwyck1 you mentioned.
https://dashboard.stripe.com/webhooks/we_1Ixc1qEtYN1x6B8hQ2p5rXdx for events on connected accounts. That gets the external account event like evt_1J8oyPRHcurDxsvDZ6EjicQ1
each of those endpoints has an entirely different signing secret whsec_xxx ,obtainable on those respective pages
you'd need to configure whatever software listens at each respective URL to use the respective signing secret for it to be able to verify the payload since the signature is computed based on the respective secret
@meager hawk Thank you. Yes, our system is configured to use the respective signing secret for different URL. I'm double checking again to see if that is the case.
assuming the secret is correct there's several other things it could be! Often it's that you are not passing the exact raw HTTP body to the signature verification function because some middleware is mutating it or parsing it to JSON before your code sees it; but since you have success elsewhere presumably that's not the issue here
I got this error when trying to confirm setupIntent
{"error": {"code": "Failed", "declineCode": null, "localizedMessage": "Card details not complete", "message": "Card details not complete", "stripeErrorCode": null, "type": null}}
Hey all, im developing an app that uses stripe and to avoid a lot of backend code I would like to be able to create a payment link with the api, does this exist? And if so where can I find documentation for it. Thanks ETA: ive looked through the documentation and googles but no luck
@arctic fiber I think the easiest way is to use Checkout : https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout it's just a small backend route and you can return a redirect for the customer's web browser to follow.
I feel like I might be missing something though. You could just embed a static payment link somewhere(https://stripe.com/docs/payments/payment-links) and that's totally an option too. But they can't be created in the API, if you need anything that is dynamic you'd use Checkout.
ah ok, would that work the same way with subscriptions?
@rough spire did you actually type card details into the CardField in the component in the UI when testing this? That error is what you'd get if you didn't, at least
@arctic fiber yep it's the same thing really, https://stripe.com/docs/billing/subscriptions/checkout#create-session , a backend route that returns a redirect
hmm, interesting, I don't know then. Can you share the full code somewhere(like pastebin etc) and link it here so I can have a look?
[Wed Jul 07 2021 11:40:48.558] LOG cardDetails {"brand": "Visa", "complete": true, "expiryMonth": 10, "expiryYear": 24, "last4": "3155"}
const paymentScreen = () => {
const { confirmSetupIntent, loading } = useConfirmSetupIntent();
const handlePayPress = async () => {
post("/wallets/setup-card").then(({ data }: any) => {
console.log(`client_secret`, data.client_secret);
confirmSetupIntent(data.client_secret, {
type: "Card",
})
.then((res) => console.log(`res`, res))
.catch((error) => console.log(`error`, error));
});
};
return (
<View>
<CardField
postalCodeEnabled={false}
placeholder={{
number: "4242 4242 4242 4242",
}}
cardStyle={{
backgroundColor: "#FFFFFF",
textColor: "#000000",
}}
style={{
height: 50,
width: "100%",
marginVertical: 30,
}}
onCardChange={async (_cardDetails) => {
console.log("cardDetails", _cardDetails);
}}
onFocus={(focusedField) => {
console.log("focusField", focusedField);
}}
/>
<Button label="Prueba" onPress={handlePayPress} loading={loading} />
</View>
)
}
That's all
When an invoice payment fails due to 3d secure, it seems to send two webhooks, invoice.payment_failed and invoice.payment_action_required. However, unless im blind there doesn't seem to be a charge associated with these. Meaning, when we receive the invoice.payment_failed, we have no way to tell why it failed.
Am i correct or am i missing something?
Hey everyone - I have been getting a high rate of "authentication_required" failure response on apple pay payments...Apple Pay is already SCA compliant and doesn't need an additional step for 3DS authentication. Has anyone seen this before or solved this issue? all the help is appreciated.
@rough spire could you share more context/the full code? for example you're not using StripeProvider here so that component must be part of something else?
Yes I use it, as app principal app provider
export default function App() {
return (
<SafeAreaProvider>
<StripeProvider
publishableKey="{{PUBLISHABLE_KEY}}"
// urlScheme="your-url-scheme" // required for 3D Secure and bank redirects
// merchantIdentifier="merchant.com.{{YOUR_APP_NAME}}" // required for Apple Pay
>
<Provider store={store}>
<AppNavigation />
</Provider>
</StripeProvider>
</SafeAreaProvider>
);
}```
@frosty coyote yes it sends both(for backwards compatibility because for integrations not handling 3DS they'd treat it as a failure). You would inspect invoice.payment_intent.last_payment_error while handling the event to see exactly why it failed
@runic quarry hi! hmm. Do you have an example PaymentIntent ID pi_xxx where that happened? Or are you not using PaymentIntents?
@meager hawk i have the PaymentIntent ID - will DM you
you're right that yes, Apple Pay should generally count as being compliant, but banks might still force 3D Secure, either by mistake or otherwise, or you have settings on your Stripe account for it.
you can just post it here (pi_xxx), it's not sensitive.
or how should I send it to you? do I send it here?
pi_1IhaLmDlpLzq27jHKUvqzOuH
this is different from the video i sent but i have 100s of transactions where this is happening
@rough spire hmm I really don't know unfortunately, I am not a React Native developer and this library is still in beta. Unless @bold basalt is around I'm not sure what else to suggest.
Ok, no problem, thank you very much! I'll wait for @bold basalt
@runic quarry looking
so 3ds is authenticated on apple pay and then the issuing bank requests another 3ds auth? its odd because i have 20-30% of transactions that are successful for the same issuer >30 Euros so it should trigger 3DS but then i have 60-70% failing with the same issue from the video
@runic quarry do you have a more recent example than that one from April?
pm_1J4sRjDlpLzq27jHclbvHNu3 june 21st
and yes the issuer can request 3DS on the charge attempt even if the card being charged being used was from an Apple Pay wallet. I think the idea is they 'shouldn't' but as I said, they might, either by mistake or otherwise. If you have a more recent example I can try to understand more
I got an error message saying that stripe was not accepting live charges... can anyone tell me where I should start to fix this problem. I've reached out for support but I thought it might be a quick fix if someone had some insight
@cinder torrent reaching out to support is the right path
ok....thanks
if you want more examples of Apple Pay specific:
Failed:
ch_1IhaLnDlpLzq27jH4vFdpA9W
ch_1IhaKKDlpLzq27jHRr54hld7
ch_1IhbuZDlpLzq27jH050GRyNH
ch_1IhbycDlpLzq27jHlnbBhtKD
Succesful:
ch_1IiQ3bDlpLzq27jHr4tyIpCw
ch_1IiPsGDlpLzq27jH4Leg4qg7
ch_1IiQTFDlpLzq27jHGgJX7TwN
ch_1IiQUdDlpLzq27jHJd6RUksZ
@runic quarry I don't, and this is not an account support channel so I can't get into that level of detail(you want https://support.stripe.com/email) but give me a moment to look into your example so I understand what's happening with it
ok apologies - thanks taking a look
ok so in that example yes, it was the bank declining the transaction and requesting 3D Secure, and so are the other examples
as the merchant you should still be able to handle it though and present 3D Secure
our example code does that : https://stripe.com/docs/stripe-js/elements/payment-request-button?html-or-react=html#html-js-complete-payment
(that's why it calls confirmCardPayment twice)
so you should definitely at least change your integration to use the approach there so you can handle the 3D Secure step up.
for the more general question about how often it happens or so on, you should contact our support team if that's an issue, as I said though it's the banks enforcing this and SCA is ramping up so some of them might have their systems badly configured unfortunately and you happen to be impacted based on the spread of customers your business gets and their particular banks. Really hard to say.
ok thanks will take a look at the documentation and see if I need to make changes on my end
How do you attach a payment method of one customer to another customer? (They are duplicate customer objects, have to do this as a workaround for certain reasons)
I tried detaching then attaching, but it says "cannot attach detached payment method". If I just try attaching, it says "this payment method is already attached to a customer"
"This PaymentMethod was previously used without being attached to a Customer or was detached from a Customer, and may not be used again." Exact error message for case 1
Hello! Detaching a payment method from one customer and re-attaching it to another is not something you can typically do (it's gated functionality and you would have to write into support to get it enabled)
No, that isn't something you can do either. Do you mind sharing a little more about what you're trying to do? Maybe there's an alternative I can suggest
Sure! I have an app with the following workflow: the user opens the app, creates an account with name and email. Then they open a JotForm in the browser and add payment method, specifying email and name. This creates a duplicate customer object in Stripe (because this is how JotForm implements it). My workaround is then to copy the payment method from the duplicate customer object to the original customer object and then delete the duplicate customer object.
Gotcha - and do you have a specific reason for creating the customer w/in the app and not just using the customer object created by JotForm?'
Hi there, we are hosting a virtual event. Our registration is being processed through Socio.events and our payment processor is Stripe. however when someone registers and we are in stripe to view the transactions, under payments, the transaction description is an alpha-numeric sequence and not the event name. This is problematic for us becuase we have multiple events/campaigns going on at the same time and need to know which event a payment belongs to. do you know how to edit the description in Stripe to be reflective of the event name from socio?
Well previously it was because I'd have to reassign id in app state, but now this looks like a quicker way indeed. Thanks I'll do that!
Hello Everyone 🙂
Just want to confirm - you are using Stripe through Socio.events and aren't making the calls to Stripe directly? If that's the case, Socio would need to change their API calls to send different data as the description. Do you have a payment intent ID I can take a look at as an example?
Is it possible
to use stripe CLI with 2 different webhook secrets
as i am trying to simulate webhook events for connected accounts
and my platform account
?
Yes, the info on stripe is being pulled from socio, users dont see or interact with stripe in any way. hmmmm thats what I thought, sadly they said its a stripe thing and now looks like im stuck between. I will call socio again and ask them to check the API
If you send over an example payment ID (they're safe to send over in the public channel), I can take a look and give more details on what they would need to update
No, when you listen with the Stripe CLI there would just be one webhook secret. Can you clarify a bit more what you're trying to test? Are you just trying to listen for events that would be sent to a connect webhook endpoint?
ahh i see
so i'm testing the event.type balance.available
for both connected accounts and the main platform account
I'm also printing out the account value from the results of stripe.Webhook.construct_event
pi_1JAdRDG3TbNq7ddZieSCxsIa THank you!
i've noticed (correct my if im wrong) that the account value doesnt appear as part of the result for my platform account
but does appear for connected accounts
account will only be populated for webhook events that are coming from your connect accounts. For events that are for that account (and would be sent to normal webhook endpoints) it'll be empty
@dim hearth thank for that
Hello, the expert team here. My client is living in Mexico Country. They want to connect the stripe account to his business website. I try to connect stripe account, but there is no option for Mexico country. Request you to please guide me about the same.
So I took a look at that payment, and I'm not seeing any description set on it at all. When you talk to socio, I would be specific and say that you want payment_intent.description (see https://stripe.com/docs/api/payment_intents/create#create_payment_intent-description) to be set to the information about the event.
Please Note: My client website is in WooCommerce.
Hello! Can you clarify - are you trying to connect two different Stripe accounts together? Or are you just trying to change one Stripe Account to have a different business website?
No, this is my first stripe account. Connect it using WordPress WooCommerce website.
another question, when the event type balance.available fires for a connected account. is it possible to relate which previous successful payment has been cleared after the 7 day waiting period (i'm in the UK)?
So you have a Stripe Account and you want to use it with a Wordpress site (to accept payments on your site)?
Yes, I want to add my client details by select Mexico country, but there is no option to select Mexico
There are only these options available
Gotcha - you need to contact the Woocommerce payments team for that. They are in control of which countries are enabled for their integration.
okkk
I believe the best way to do that would be to list all balance transactions and set available_on (see https://stripe.com/docs/api/balance_transactions/list#balance_transaction_list-available_on)
THANK YOU SO MUCH! @dim hearth
i've just had a look at the documentation. how to i pass in the connected account id?
Have you read this doc yet https://stripe.com/docs/connect/authentication ? You would set the Stripe-Account header to the connected account ID
Hi everyone maybe 5% of my daily payment are incomplete because of the 3Ds confirmation is fail.. i don't understand why.. i have this id to help: pi_1JAc42CnH6d31UhhJT23p1v0
pi_1JAcJsCnH6d31Uhhpbe7vO3I
pi_1JAc2ICnH6d31UhhpUgLzYS7
thanks a lot!
the pop up never appears and there is an error like 'it miss "client-secret""
@quasi flicker seems like an issue with your code if it's missing a client secret. Something in your code is not properly surfacing back the client secret from the server. You'll need to add detailed logs to your code to track what can cause this
hello guys, Im having a hard time creating a customer with
session = stripe.checkout.Session.create(
customer_email=customer_email,
payment_method_types=['card'],
mode='setup',
success_url=success_url,
cancel_url=cancel_url,
)
the UI shows that the card is saved, but there is no customer or anything on stripe. What am I doing wrong, thank you for nay help
@quiet hemlock you should create the customer upfront before the session and then pass customer: 'cus_123' to associate the Setup Session with a customer.
Hello!
I went back to stripe-react-native sdk v0.1.2 and it works, maybe there is an issue on the latest release.
ah okay that makes sense! thank you
@rough spire 👋 hello! are you using Expo with your app?
@rough spire ah gotcha, could you catch me up to speed real quick what the issue was? I missed it in the scroll back. I recall you had CardField set up and you were creating a PaymentMethod? or confirming a SetupIntent?
I was testing both flows to check wich one should use
@rough spire gotcha, what error were you getting
https://github.com/stripe/stripe-react-native/issues/350
This is the issue related
I was getting:
[Wed Jul 07 2021 12:04:58.141] LOG error {"code": "Failed", "declineCode": null, "localizedMessage": "Card details not complete", "message": "Card details not complete", "stripeErrorCode": null, "type": null}```
@rough spire ooh let me quickly repro but yeah it might be an issue if a few folks have reported it. Also looking back at how your view was set up (looked fine at first glance but double checking)
@rough spire PaymentScreen is a component that you present somewhere within AppNavigation , right?
I think it might be that in that view setup, it isn't able to grab card details from CardField view
on 0.1.4 how were you calling confirm... ? were you passing card details directly? no right?
Yes PaymentScren is a component presented on my main navigation stack using react navigation.
And no, I'm not passing card details directly cause <CardField> do not give me all card details. So i put it on the same view and still getting the error that i mencioned.
@rough spire gotcha, let me repro real quick, back in a bit, thanks for the clear steps!
Sure, anything i can help just let me know