#dev-help
1 messages Β· Page 119 of 1
@safe fiber yeah there's a fee for all ACH Debit failures so we don't retry (true for all bank debits really). But you can always pay that invoice with https://stripe.com/docs/api/invoices/pay
@normal coyote sure what's the question?
Is there a way to share cart details and customers' emails from stripe checkout?
card*
i think my concern is that upon failure, with no retries, this will mark the subscription as "unpaid" which my company is currently translating to suspended and will block access. it would be nice if we could leave the subscription as payment failure π€
hmmm yeah we don't have a way to tweak settings per payment method types. But you can always retry yourself after the failed debit
Hi, we want to create a product and use in clickfunnels where we can charge monthly for 3 months
@normal coyote what do you mean "share" here? Checkout can save card details for you during a payment
And after 3 months it should not charge
I mean, the customer can see that this info has been saved once he has made a payment? And the checkout can also save emails?
Can anyone please help??
@normal coyote I'm sorry, I am not really following what you are trying to get as an answer
@rough spire so I just tried v0.1.4 on my mini Expo sample app and the SetupIntent was confirmed just fine there. Caveat is that my view hierarchy is relateively straightforward, that my StripeProvider is wrapping SetupIntentComponent which contains CardField.
so I have:
<StripeProvider>
< SetupIntentComponent>
Where <SetupIntentComponent> has <CardField>
So I think there's something odd here where CardField isn't being picked up from the view hierarchy for certain non-straightforward view hierarchies.
@rough spire so can you say more about how your AppNavigation wraps CardField?
@normal coyote Checkout will save a customer and payment method details in your account if you configure it with setup_future_usage https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout#save-payment-method-details
Great, thank you so much!
@rough spire oh wait I think I might be close to repro'ing it ... checking ...
Iβll be back in 30 minutes, taking lunch π
Hi ! How can I change the name whitch appears in the bank account when a custumers pay ? I don't find on stripe
@rough spire spoke too soon, yeah not able to reproduce it (when I did, it was probably a weird state issue due to me making code changes and reloading the simulator).
I basically have more or less the same code as this person https://github.com/stripe/stripe-react-native/issues/350#issuecomment-864341354
and I'm not able to reproduce, confirmSetupIntent() works every time.
That said, I do think the issue here is that the SDK isn't able to get the CardField from the view hierarchy, hence instance?.cardParams is null If possible, can you try to set up a minimal repo where you set up a simple AppNavigation, (no need to hook up any backend endpoints), just paste in a SetupIntent client_secret and call confirmSetupIntent and reproduce this?
That would help the RN SDK engineers reproduce this and fix this issue of finding the CardField correctly.
@flint spoke which name / appear where?
Ciao
you know when you pay You have the paiement written in your bank account website for instance
ahhhh you mean the bank statement?
It's associated with your own business name and the way you signed up with Stripe. You can set it on a per payment basis otherwise via statement_descriptor but you can set the global/default here: https://dashboard.stripe.com/settings/account
The problem is that it appear "levoyagefacile" witch was the name of a tentative of business months ago
but voyagefacile doesn't appear nowhere in the page you give me
but appear in the bank statement ..
Hi ! I'm new member here. I'am developing beginner and i'm French. Very happy to be here among a lot of dev seniorsπ€
@flint spoke I'd recommend reaching out to our support team https://support.stripe.com/contact/email
I need some help regarding how to accept stripe payments with Przelewy24 from shopify store. Please, i realy need help.
thanks π
Hello! That would be a better question for Shopify - they are in charge of their own integration with Stripe and should be able to provide you with instructions on how to enable this.
Thank for your response. But Stripe give on they docs, all the steps to do it, i don't understand the codes.
https://stripe.com/docs/payments/p24/accept-a-payment
If you're trying to enable Przelewy24 for your shopify store, you wouldn't be following that doc (that's for a direct integration with Stripe).
a direct integration with Stripe : that's what i want to do
are there pre authorized bank tokens for testing?
How can i do then to enable Przelewy24 on my store ?
What specifically are you trying to test?
I don't understand
This is a channel where anyone can ask questions - that was a separate question from yours.
trying to test the plaid flow without actually signing up to plaid, and then also seeing if i can force that token through our ActiveMerchant code with little to no changes
I'm traying de allow people to pay with Przelewy24 on my store. I want to enable Przelewy24 payment on my store
@teal phoenix Just to clarify - are you trying to get Przelewy24 to appear on the checkout page generated by Shopify? If so, that's not something you would code up yourself. As I said earlier, that's something you would have to check with Shopify to figure out how to enable
Hello
Okay, i understand now.
We have some test bank account/routing numbers here https://stripe.com/docs/ach#testing-ach. Does that cover what you need?
is the a way that we can export ithems?
What are you trying to export?
unfortunately no because when using those i still need to authorize and i don't get a btok_* value
You could use those numbers to generate bank account tokens (https://stripe.com/docs/api/tokens/create_bank_account), but you're right in that they would still need to be verified before use
so i do need to set up a plaid account to test this then?
we would like to export ithems,
Well what exactly are you trying to test? If you want to exactly emulate what plaid is doing (verification is handled by them) then yes, you would need to set up a plaid account to test it. If you're just trying to get to a state where you can save a bank account to a customer and charge it, then I think that's doable
Could you be more specific - I have no idea what ithems is. If it's helpful, you can export a lot of Stripe information through the dashboard (there are export buttons on some pages)
Hey! I can do it later night, working at this moment
@rough spire thanks! I did still flag to the RN SDK team to have a look, maybe something jumps out to them (as I couldn't repro) but if you're able to repro on a fresh project, that'd help them quickly understand if they're not handling a case properly in internally grabbing CardField from the UI.
i kinda don't care about exactly emulating plaid's verification etc. i basically want to follow step 4 https://stripe.com/docs/ach#using-plaid "The response will contain a verified Stripe bank account token ID. You can attach this token to a Stripe Customer object, or create a charge directly on it." i would like to know if this token can be fed through the ActiveMerchant code... i suspect i can just try with any ol bank token π€·ββοΈ
Stripe supports accepting ACH paymentsβdirect from bank accountsβalongside credit cards. ACH is currently supported only for Stripe businesses based in the U.S. We'd love to hear about your use case, though!
mostly want to test (1) create a customer (2) attach a verified bank account token to it (3) subscribe a customer and have it charge ACH immediately
Gotcha - you won't be able to exactly those set of steps, but you can get close. From what I just tested it out you can attach any old bank account token to the customer, but there's no way to get a bank account token that's immediately ready to charge w/o using plaid. Without plaid, this is what your testing flow would need to look like:
- Create a customer
- Create a bank token w/ the testing numbers
- Attach the token to the customer
- Verify the bank account <- This will be the main difference between what you want test vs. what is accomplishable w/o using plaid
- You can start using it for payments
we are a travel agency and we sell activities, when we sell an activity we put the concept of the activity that the clients is reserving in our stripe plataform it show us am area called ithems where we add this activities, that is what we want to export
kk i will work with this for now π Thanks!
Are you integrating directly with Stripe, or are you using some kind of plugin-in/extension? Stripe doesn't have anything called ithems, so I don't know what to tell you to export. Do you have a screenshot (with any PII blurred out) or an object ID I can take a look at that may give me a better idea of what you're asking for?
Hi there, I am using update payment method API from Stripe -> https://stripe.com/docs/api/payment_methods/update
Just wanted to check is it possible to change the card number and zip code for an existing payment method? I see that the API only allows updates to billing_details , metadata .
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@hardy laurel I went ahead and deleted your most recent message since the screenshot included an email address (this is a public channel, so it's not a good idea to share PII). Give me a few minutes and I'll try and dig into what you're asking
Hello! No, there isn't a way to update the card number of an existing payment method.
@hardy laurel Are you possibly referring to invoice items?
I've got a website that will sell monthly subscriptions to an automated trading program involving stocks., as well as a place where people can pay to view the details of promising option trades. I'm running into the error message "testmode_charges_only
Your account cannot currently make live charges." . However this IS set up for live mode. Reading on Stripe it suggests that this may be because this is a regulated industry. But I would imagine if I were rejected because of that someone from Stripe would at least send me an email. Any help would be appreciated.
Hello! Do you have a request ID I can take a look at?
Isure let me look it up
400 ERR
ID
req_2yIqYFL8ZqhO7t
Time
7/7/21, 1:24:33 PM
IP address
184.88.202.181
API version
2019-10-08
Source
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64
If I am not wrong there is no way, we can delete a payment method for a customer in Stripe. The only allowable thing is to detach a PaymentMethod from a Customer. Is this understanding correct?
Thanks for sending that over! I can see that live charges are currently disable on your account, and I'd suggest contacting support at https://support.stripe.com/contact for instructions on how to get this fixedc
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.
That's correct - payment methods aren't deleted, only detached
hi karbi. I 've read through all the faq's on the support forum. Cannot seem to find where I can submit a query for an answer. None of the existing responses seem to cover it, unless it's because I'm in a "regulated industry" (financial services).
I don't have a lot of insight into the review process for accounts - it could be because of the industry you're in, but it could also be any number of things (missing information, mistake on our part, etc). If you write in, the folks at Support will be the best ones to help you
I don't believe we have an easy way of exporting this information other than through sigma (https://stripe.com/docs/sigma/billing#invoices). You can export more general invoice information (w/o the line items) through the dashboard, but if you need the information on the line items the best way to do it would be by retrieving it through the API https://stripe.com/docs/api/invoices/invoice_lines
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Use Stripe Sigma to retrieve information about Billing.
Karbi, thanks I'll try the chat room on support .. thanks for your help.
Hi,
Looking into wait times for transactions
After creating a connect account and setting of various vendors, I am curious what would be the quickest wait times to do the following:
1 - add a top-up from owners external bank account to stripe account?
(shortest wait time / average wait time...)
2 - make a transfer to a vendor's express or standard account?
(shortest wait time / average wait time...)
3 - after vendor receives payment - they transfer funds to their own external bank
(shortest wait time / average wait time...)
Also is there a way to transfer payment from the connect account directly into the vendors external bank account (to speed things up and save steps)?
Hello π hope you are doing well
I have a question regarding the Customer API:
I noticed that when updating a customer's address, all the omitted (nested) attributes are nullified. I.E: If I have a city set and then update only the country, the country is set to the new value but the rest of the attributes are wiped. Why is that the case? I would have expected it to only update the provided keys. The API reference also states: "Any parameters not provided will be left unchanged".
Thanks for your time!
I don't have answers on specific wait times, but let me try and help:
1 - add a top up from an owner's external bank account to stripe balance
The time it takes for the funds to settle into your stripe account depends on how the funds were added (see https://stripe.com/docs/add-funds#settlement-timing)
2 - make a transfer to a vendor's express or standard account?
The funds will transfer immediately, but if you used source_transaction when creating the transfer the funds may not be available until the original charge is also available (see https://stripe.com/docs/api/transfers/create#create_transfer-source_transaction)
3 - after vendor receives payment - they transfer funds to their own external bank
Payout timing depends on a number of factors - country, whether this is the first payout, etc. You can see some information on payout timing depending on country here https://stripe.com/docs/payouts#standard-payout-timing
Add funds to your Stripe balance to cover increased refunds and chargebacks.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Set up your bank account to receive payouts.
@mortal tinsel "Also is there a way to transfer payment from the connect account directly into the vendors external bank account (to speed things up and save steps)?" -> Do you mean transfer funds from the platform directly to the external bank account of a connected account?
Hello! Do you have an example request ID I can take a look at?
@dim hearth Sure, just a sec
@dim hearth this came first: req_5P2GxrzoYMb7iF, then this: req_Kp7mdda1fZdbPV
Hi - Do you mean transfer funds from the platform directly to the external bank account of a connected account? YES That is what I would like to know
Unfortunately that's not possible
hi karbi thanks again for all your help - BTW: this is all in US banks and would use the quickest method like ach or whatever is least expensive
If you have the time, I'd also suggest writing into support to see if they have any additional advice - we don't deal with the specific timings of payouts/transfers that often and have more of a general idea. They'll know more about the specifics
thanks karbi - good idea - will do
@languid bolt Hello! The behavior you're describing is expected. The API considers the Customer's address to be a single unit of information. Changes to it overwrite the entire property, so issuing an update that specifies only the country would null out everything else.
Hi there! Hope you're well Stripe team. QQ: If I'm building out an Express Connect environment (both pay ins for mktplace and pay outs to sellers), is it required to have "powered by Stripe" during any part of that flow?
I'm anticipating during the Express Connected Account onboarding, but wanted to check if that can be removed.
@somber sundial I believe Stripe branding exists during Express onboarding and in the Express dashboard, and that branding cannot be removed as far as I'm aware.
@mighty hill Good to know, thanks π
Thanks!
Also Is there a way that the vendors express/standard account can be setup to automatically transfer payments - as soon as they are received - right from their own stripe account to their own external bank account without manual actions?
@mortal tinsel Automatic payouts are the default, yep: https://stripe.com/docs/payouts#payout-schedule
Set up your bank account to receive payouts.
There's no way to immediately start a transfer when funds land, but you can make it pay out daily with automatic payouts
daily automatic payouts are the default.
Suggestion Request :: Hi there, Greetings from Brazil! I am working on a real-time KPIs Dashboard, using Stripe Data from API, almost completed right now, I just wanna get some opinions about calculations logics, if I may.
@lapis bough Hello! Happy to help if we can!
Cool! For ex. MRR Calculation - I am getting that from Subscriptions (status = active or past_due AND pause_collection_behavior = null)
(removing paused acc. from calculation is a request from customer) Thx @mighty hill !
THANKS much Rubeus and basta!
@lapis bough Did you have a question about that?
Just turned on Radar. Is it any good?
@small ginkgo I mean, I'm biased, but I think it's pretty good, yeah.
Just requesting suggestions, if any different than that
@small ginkgo If you're looking for general opinions on Radar you might want to ask in #841573134531821615 instead, but if you have a specific technical question asking here is good.
@lapis bough I don't have any particular suggestions. MRR calculations often vary depending on business needs, integration specifics, etc. so there's no one "correct" approach.
none really - i just don't want to be randomly closed like all those blokes complaining on fb, google reviews, etc.
@small ginkgo For what it's worth we never "randomly" close accounts, we always have a good reason. π
Hello!
Is there any way to create a subscription from a connected account to other??
Thx!
Hello again! I have a question regarding the flow of collecting application fee on Subscriptions (https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). We have a handful of users with Connect Accounts who Customers may Subscribe to them. We are assigning an application_fee to every new Subscription as well as transfer_data.destination that points to the respective Connect Accounts.
It seems like we're unable to set an application_fee on Subscriptions without a valid transfer_data.destination. We have some use cases where we want to take an application fee for Subscriptions, but the Connected Account user who is getting paid out for the Subscription may not have transfer_capability yet. Is there a way to get around this?
@rough spire Create from one to the other? If you mean move, no. But we have backdate_start_date to help you create new Subscriptions that replace the old ones: https://stripe.com/docs/api/subscriptions/create#create_subscription-backdate_start_date
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@rough spire See also: https://stripe.com/docs/billing/subscriptions/backdating
Learn about backdating subscriptions.
@mossy wren Setting an application fee without a transfer destination makes no sense. Application fees are what your platform keeps before transferring the rest to a connected account. If no destination is specified no transfer will happen and your platform will keep everything, so what would the application fee represent in that scenario?
Hello! I'm trying to integrate Stripe in React Native (RN Cli) app and I've got one issue with the other integration react-native-document-picker. So - when trying to use the camera on Android app is crashing with the following error:
Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter data
at com.reactnativestripesdk.StripeSdkModule$mActivityEventListener$1.onActivityResult
Of course, I'm trying to use the camera using react-native-document-picker. Stripe is configured as it is in the documentation. Any thoughts what's going on?
No I mean, I have in my platform account some products with recurrent monthly prices. And have a lot of connect accounts (one for each user on my application), these products belongs to some connect accounts. I want to know the right flow to collect money and then transfer it to corresponding account.
Or by the other way want to know if is possible to create a subscription between connect accounts, I mean not using customer objects.
Hi, Is it possible to connect an existing Stripe account to a connect platform?
Hi! My when using my stripe payment terminal, as of around 5pm ET, the API is consistently outputting "Reusable card payment methods can only be created via insert or swipe, not via contactless. Please try again."... even when the card is inserted via chip. Anyone else have this problem?
@rough spire Ah, gotcha. Yeah, we have a guide for Subscriptions with Connect here: https://stripe.com/docs/connect/subscriptions
With Connect, you can create subscriptions for connected accounts, optionally taking fees in the process.
@vocal wagon hello! not sure I've seen this before myself but reading, be a sec!
@mighty hill I see what you mean. What our client is asking for is to enable the Connected Account to allow Subscriptions before that Connected Account is fully setup for transfer. What are our options/limitations?
If a Connected Account doesn't have transfer capability yet, I'm wondering if we should disable the Subscribe feature to Connected Accounts, and/or before Connectedto allow the creation of Subscription to Connected Account without application fee, then manually create an application fee amount when Subscription invoice are created. Not sure how we'd execute the latter, tbh.
@rich kindle That depends on several factors. Why do you ask?
qq: is it possible to simulate "Partially Won" dispute scenario in Stripe Test Mode?
@thin jewel I've never encountered that issue. Have you tried cutting power to the reader and restarting it?
will try it! thank you. though, we have 20 of these devices and they all suddenly started doing this. quite bizarre.
@vocal wagon at what point do you hit this crash? can you tell me more about what you're doing with the camera?
@zenith dagger Not that I know of, but let me look...
Tried, and Stripe server said account does not exist on platform.
Developing product for client that uses connect platform. Need the ability to connect an existing Stripe account for multi-destination transfers on a charge. One destination already has an account on Stripe.
@zenith dagger Actually, which status here are you asking about specifically? https://stripe.com/docs/api/disputes/object#dispute_object-status
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@vocal wagon ah you might be hitting this?
https://github.com/stripe/stripe-react-native/issues/297
@rich kindle Have you read/heard about this? https://stripe.com/docs/connect/oauth-changes-for-standard-platforms
Learn about the changes Stripe is making to OAuth for Standard Connect.
@mighty hill status is "lost", but part of the disputed amount is returned. As a result, it's "Partially Won" in the UI.
Using an custom account on Stripe would cause platform to incur payout fees on account in question. Hope I don't have to create a new Stripe account for existing on that is assocated with platform.
Crash is occurring right after I'm accepting photo in camera Intent. And yes, this looks like same issue
@vocal wagon are you on v0.1.3 of the SDK?
v0.1.2, I'm updating it right now
@rich kindle As far as I can tell there's no way to test that scenario in test mode.
I briefly saw that article, but didn't get a chance to look at functionality in depth.
@rich kindle I believe it answers your question, but if there's anything else I can help you with just let me know!
Thanks!
i sent an invoive but they did not get it
@vocal wagon Hello! Can you provide more details?
@vocal wagon 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.
Hi @mighty hill! I want to circle back on a question: #dev-help message
Wondering what your thoughts are
@mossy wren Oh, I'm so sorry I missed this earlier!
@mossy wren Disabling Subscriptions prior to the connected account being ready to receive funds would be my recommendation.
@mighty hill Thanks, appreciate it!
Hello
@heady pagoda Hello!
Is this valid for retrieving all balance transactions for a connected account
balance = stripe.BalanceTransaction.retrieve(
stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}'
)
?
@mighty hill hello π
its python by the way
@heady pagoda I'm not very good with Python syntax, but generally speaking that's the correct approach. That won't get you everything though, just the default limit of 10.
oh ok
how about if i want to achieve the exact same thing but with Stripe CLI?
what does that syntax look like
@heady pagoda We have some documentation relevant to your question:
Making Connect requests: https://stripe.com/docs/api/connected_accounts
Retrieving Balance Transactions: https://stripe.com/docs/api/balance_transactions/retrieve
Pagination: https://stripe.com/docs/api/pagination
Auto-pagination: https://stripe.com/docs/api/pagination/auto
I strongly recommend reading all of those, especially the first and last ones.
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.
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.
@heady pagoda There are Stripe CLI examples available for all of those I believe.
@mighty hill thanks for this
Hey everyone π
I'm looking for some advice on how to handle a specific scenario in my app. Would really appreciate your help. π
We have a subscription-based app. If a charge fails, we pause users' subscriptions until they pay for that. This means whenever the users update their credit card, we don't only update it on Stripe but also reset their billing date (billing_cycle_anchor: now), so the next charge occurs 30 days later.
This is what's happening with some of our users:
A user has a subscription billed every month on day 12th. The last charge failed 'cause the credit card wasn't valid anymore. So, two days later, on 14th, he updates his credit card and a new charge is attempted by Stripe automatically, which now succeeds. However, there's still one open invoice for those 2 days, but we can't charge the user as his subscription was paused during that period.
What's the best way to ensure the user is not charged for those 2 days?
I'm not sure if disabling proration is the solution for this case, as I'm not sure if proration would void an open invoice in this case.
Any ideas?
Thanks in advance everyone π
from looking at the second link i've looked at the CLI example
and it seems as i can only pass in a transaction id and not a connected account id
here the example
stripe balance_transactions retrieve txn_1032HU2eZvKYlo2CEPtcnUvl
@lament raptor To clarify, when you update the card the changes you make at that point result in a new Invoice in addition to the Invoice created two days before? If that's the case you should void the Invoice from two days ago if you don't want them to pay it.
have i misunderstood the documentation?
@heady pagoda Have a look here: https://stripe.com/docs/cli/get#get-stripe-account
Complete reference documentation for the Stripe CLI.
That's exactly the case @mighty hill . Since we reset the billing date, Stripe creates a fresh new invoice that starts today, but leaves the previous one as open, charging for those two days.
So voiding that invoice is the only way? Set prorations opts on stripe.customers.update() wouldn't void that, right?
Manually fetching last invoices and voiding the open ones is the solution I went for, but I wanted to make sure there's no easier way π
@lament raptor To my knowledge nothing you do at the Subscription level will retroactively void an already-created Invoice. Once an Invoice is created and finalized it's an independent entity, and if you want to make changes to it you need to make those changes to that Invoice explicitly. Even canceling a Subscription won't void outstanding Invoices (although doing so will pause automatic collection of them by default).
[β] I added metadata fields to my invoice, but I don't see them in the available fields in the financial report. I can see the metadata on the PaymentIntents I created directly through. So
- Are invoice metadata expected to show up in the financial report?
- If not, is there a way for making the invoice to pass the metadata onto the paymentIntent?
So I just got off a phone call with stripe support inquiring about itemizing items on the checkout - they said you cannot itemize items - am I understanding that correctly?
the line :
LineItems = new List<SessionLineItemOptinos>
{
makes me think otherwise?
this is from stripe.com/docs/checkout/integration-builder
@blazing raft I wish I could help, but this chat is focused on developers and technical questions. Our support team will be able to assist you with report questions 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.
@mental cosmos You can specify line items for a Checkout Session via the API using line_items: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_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.
thanks, I'll look into that.
Hi team, When I try to pay an invoice through code, Im facing error "cannot charge customer that has no active card" . But at the time of creation of invoice I have set the customer. The same invoice Im able to pay through dashboard. Kindly help
@unique escarp Hello! Can you share the request ID showing that error? 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.
so I should be able to do something like the following?
foreach(item in cart)
{
LineItems.Add( new SessionLineItemOptions{Price=item.Price, Quantity = item.Qty)
}
@mental cosmos More or less, yep!
Really appreciate your help @mighty hill! Thanks for the clarifications!
aha, it was something dumb I was doing - I think I fixed the error? thanks for the reference to that API article.
This is my request id -- req_XS1oSHcHi4j74K
@unique escarp Taking a look, hang on...
@unique escarp There's no payment information associated with the Customer this Invoice belongs to, so when you call the /pay API on this Invoice there's nothing to pay the Invoice with.
Its attached already ,, that customer already did subscription also that time the payment information actually stored
@unique escarp Sorry, I should have been clearer. There is a single Payment Method attached to that Customer, but it's not set as the default for Invoices. You didn't specify which Payment Method to use when you called /pay, and there's no default set, so none was found to use. You can use the one that's attached by specifying it when calling /pay: https://stripe.com/docs/api/invoices/pay#pay_invoice-payment_method
Or you can set the Payment Method to be that Customer's default for Invoices: https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method
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.
quicky question - after getting my cart to itemize items, I did a quick checkout using card num 424-... - my webhook received the Session information in the Checkout.Session.Completed event - if I want to gather the itemized items, are those available via an API call, or should I be saving my own cart session id and querying my database for the itemized list? if the latter, where do I store my own ID to be returned back to me via the hook? I need to generate a csv file to send to a fulfillment house.
@mental cosmos You can fetch the Checkout Session from the API and expand line_items to get them: https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-line_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.
I have set the defaulyPaymentMethod with the payment method ID .. invoice.setDefaultPaymentMethod("pm_1JAXfFChHNy99f8ceb3jfo5v"); still same error .. req_AahwejDAUadcLY
@unique escarp I'm not seeing the default payment method on the Invoice... can you give me the request ID of that call?
this is the req id req_AahwejDAUadcLY
I have set to the object .. may b it requires update
let me check
My account is locked due to fraudsters trying to get in and change my account info. Is there a telephone number that I can call to speak with someone to get this resolved?
@vast anchor There's no phone number you can call. You can contact support here: 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.
@unique escarp I'm looking for the request ID where you set the default Payment Method on the Invoice.
I have sent over 10 emails and they are terribly slow. I need my payouts as this is my income. I will be discontinuing the use of Stripe after this is resolved.
I sent an email at 6 am and I just got a reply back and still no help.
Updating the invoice was missing .. It worked .. Thank you..
@vast anchor Unfortunately that's your only option. We can't do anything to help here as this is a public server and we cannot verify your identity.
I have another doubt like, Actually, Im creating invoice for customer where the destination charge is to a connected account. And the default payout is daily. But everytime for the same account, the payout happens after 7 days. I want the payout to happen on the same day to my connected account. Kindly help
@unique escarp Payout timing depends on the country of the Stripe account. Have a look here: https://stripe.com/docs/payouts#standard-payout-timing
Set up your bank account to receive payouts.
@unique escarp See also this information about Instant Payouts: https://stripe.com/docs/payouts#instant-payouts
I have created as US account still I see its taking 7 days
@unique escarp The top of that page explains what's going on: https://stripe.com/docs/payouts
When you start processing live payments from your customers with Stripe, you wonβt receive your first payout until 7β14 days after receiving your first successful payment. The first payout usually takes a little longer in order to establish the Stripe account.
Set up your bank account to receive payouts.
ya I have checked that ... even the subsequent payout taking the same duration..
I have created as US account , but working in India
is that the reason >?
@unique escarp It might be, I honestly don't know. I recommend contacting support for help without payout timing questions: 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.
Thank you.. Dropped mail to support team.
Hello, I'm having a weird issue with my stripe JS. For some reason, after trying a first time with a problematic card (and getting an error - this is expected) my users are having problems during the second attempt even though they are using a valid card. I investigated a little more on my dashboard and checked what happened on the second attempt and it seems stripe didn't use the second card at all, they retried with the first problematic card. Is there anything I can do about it?
@south ice Hello! Hard to tell for sure, but it sounds like an error in the frontend code. Is the page in question online somewhere where I can take a look?
you need to have an account to access that, I can send you an invite tho, do you mind if I send you an invite for that? just need or email @mighty hill
@south ice Ah, that won't work as we can't provide private support here and my DMs are disabled. Can you share the frontend code in question?
When working with Payment Methods, are they suppose to have pm id's or card id's? I've used https://stripe.com/docs/api/payment_methods
When creating via the API you should get PaymentMethod objects pm_123
I've added functionality to manage payment methods (add, edit and remove), but they won't show up when im requesting to list them.
Good, yes they do show as pm id's, but won't show up in the list somehow. They do get attached as they show up in the dashboard, but not showing. I haven't supplied with billing information like name, address and such, could that be the issue?
Though if i add manually through the dashboard they do show, but as card id's
If you use the list endpoint you should see them, although bear in mind you can only list PaymentMethods attached to a customer: https://stripe.com/docs/api/payment_methods/list
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 have the Type set to "card", could it be that i haven't set a card type?
var opt = new PaymentMethodListOptions
{
Customer = Properties.Settings.Default.stripeUserID,
Type = "card",
};
Just to be 100% sure, if I want to make a code that a customer can enter, I first make a coupon, and then create a promo code with the id of the coupon?
Also, if that's the case, should I create 1 coupon and then multiple single use promo codes then that all point to the same coupon?
It depends on how you created the PaymentMethods, if they were of the type card then this should return all the card PaymentMethids attached to this customer
Yep that first part is correct, for the second part it depends on what you're trying to do really
Well, I'm planning on giving everyone the same discount, but I want to generate 1 time use codes to send out in an email.
If you want to be able to track who redeemed which promo code, then that'd be how you do it
Well, the goal is just that each person could only redeem it once.
Hello
Hi @leaden lynx!
Question - I have two different websites that both accept payments. Anyone know if it is required I have two separate Stripe accounts (one for each) - possible to merge?
If not, I can email support... I can't seem to get my connections into one account however.
It's not required, but recommended for your record's sake
iirc, it is required if they're materially different businesses
@leaden lynx You can have 2 stripe accounts with 1 login btw
Very easy to switch between them
Learn how to create and manage multiple Stripe accounts.
Yes. I just ended up with two (i think by accident) ... I wanted one. Same business - income from two different sources.
Two websites
Same Tax id... same social (me) ...
I had a mess in my codes Paul, i just wanted to let you know i was being a dumbass. I had old variables from when i was playing around with the cards object, so i used that instead of paymentmethods smh ;-;
Edit: Gonna go cry myself to sleep now
@leaden lynx I'd contact support and tell them your business case, they'll be able to advise you better on whether you need two accounts or not: 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.
Happens to the best of us
yah, thanks for helping out. It helped!
@bleak breach thanks. I'll head that way
When retrieving the price for a subscriptionItem, it doesn't return as a decimal or a double. Is there a quick way to get around this?
The price for this subscription item is normally $4.99, not $499.
are all values in Stripe set at the lowest unit in that currency ? So for USD, its cents?
I have a feeling that might be the case.
I haven't done anything in subscriptions, but all the PaymentIntents and Charges I've created are that way
Nope, but in most cases it should just be a simple divide by 100
Depends on the currency though
dang
bear in mind that you should avoid storing prices as floats internally
getting bit by floating point rounding for monetary amounts is like a rite of passage
It depends on whether the currency is zero-decimal: https://stripe.com/docs/currencies#zero-decimal
See what currencies you can use for making charges and for paying out to your bank account.
Also what @stark tide said, floating point math is never a good idea
LOL i didnt know i could divide by 100. That makes things a bit easier, thanks.
Ah yes, for sure.
Again it depends on the currency, for instance if you are selling something in yen you wouldn't divide at all
Hello, after looking for answers online, I still have a few questions/uncertainties I would appreciate some insight on.
Do checkout sessions support "Placing a hold on a card"?
If so, the bank guarantees the funds on the card for up to 7 days correct? And lastly, if the authorized charge is never captured do Stripe fees still apply in this scenario?
- Sure do: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-capture_method
- Yep, 7 days is the maximum time before the funds are automatically released uncaptured
- Fees only apply when funds actually move. In this case there'd be no fee associated with an uncaptured charge
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ahh It's right there. Thanks for answering all the questions @bleak breach!
Hi All,
Is there a video or article explain the stripe components and the flow of stripe checkout .. ( customer, payment intent, charge .. . ) ?
Of course, stripe form on custom sites ( like the Stripe form of WooCommerce )
hello! the documentation for each Stripe component can be found separately on Stripe docs. For Stripe Checkout - these would probably be good places to start :
https://stripe.com/docs/payments/checkout
https://stripe.com/docs/checkout/integration-builder
let me know if you're having trouble finding the documentation for any particular component!
Hi @golden cosmos , when creating subscription schedules (via java library) I have observed that, if schedule (having a single phase) has start date of phase -
- Any day before month back from current day it errors with
You can not create a subscription schedule withphasesthat already ended. You can back-date a subscription schedule by settingstart_dateto be in the past, butphasesmust end in the future
For ex: one month back from today (June/8) so any day before June/8 throws error. - Between June/8 and today creates subscription even though I called create schedule API
- After today creates schedule.
Is this consistent behavior? Can I make separate calls to subscription and schedule APIs based on above rules?
I don't see this documented anywhere
Hi @golden cosmos FYI I had asked a question to @vocal wagonl . can you please check
@sweet fjord What exactly are you trying to do? Why are you creating a single phase subscription schedule? Why backdate it by exactly a month?
@bleak breach I need to create subscriptions that starts in the future. So I am using schedules. Are you saying I cannot backdate a subscription?
I was playing around with the dates and observed this behavior
@bleak breach I guess there are multiple ways to create subscriptions that start in the future (adding trials). But that creates an invoice. I don't want invoice to be generated until subscription starts. Hence went with schedule with a single phase, which starts subscription at a latter point in time.
I think you're overcomplicating this. If you want to have a subscription that doesn't create the first invoice till a certain date, you'd use trial periods.
what is schedules used for then?
Schedules is for if you want to automate changes to a subscription over a period of time
Your use case is different, you want to create a subscription now but not start charging till a specific date. You'd use trial periods for that.
I don't want to create a subscription now
Sorry, maybe I was not clear
Subscription should start in a future date
There's no way to delay creating a subscription. You can't send a request that says "create this subscription X days in the future". A subscription is always created immediately whether you use subscription schedules or regular subscriptions. You either need to use trial periods to start the subscription now but not charge till a later date, or use something like a cron job on your end to send the creation request on the date you want
But I see that when I create schedule, it does not show subscription in the dashboard, only shows up in the schedules tab
A subscription is still created: https://stripe.com/docs/api/subscription_schedules/object#subscription_schedule_object-subscription
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
if you check the sample response, the last field in the response is subscription = null
@bleak breach this is actual response I got when I invoked schedule API with a future date https://pastebin.com/2Ck0gnuW
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
You can see that subscription = null
@bleak breach this is another response I got when I invoked schedule API with a date before today https://pastebin.com/2Y5gWDK8 . Here you see subscription has data
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
@bleak breach this is the request body https://pastebin.com/0tDynJKQ
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Only thing that changed in the request body to produce the two responses is the start date
@bleak breach Looking at the documentation https://stripe.com/docs/billing/subscriptions/subscription-schedules
Its mentioned
Some changes you might want to schedule include:
Starting a subscription on a future date
Backdating a subscription to a past date
Upgrading or downgrading a subscription
Learn about the Subscription Schedules object and how to use it.
@bleak breach are you sure that subscription cannot be started at a future date using schedules?
I'm sure. Like I said before there's no way to delay creating a subscription. You can't send a request that says "create this subscription X days in the future". A subscription is always created immediately whether you use subscription schedules or regular subscriptions. You either need to use trial periods to start the subscription now but not charge till a later date, or use something like a cron job on your end to send the creation request on the date you want
then why does the documentation say otherwise ? https://stripe.com/docs/billing/subscriptions/subscription-schedules
Learn about the Subscription Schedules object and how to use it.
does create a subscription and start a subscription mean different things?
@bleak breach can you point me to documentation that states "you cannot create subscription X days in the future"
@ashen heath Turns out I was wrong and you can use subscription schedules to start a subscription in the future, sorry about that. You can find the documentation here: https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#start-subscription-future
Learn how to use subscription schedules.
@bleak breach thank you for clarifying
Hi, i have a question related to stripe-connect and destination charges.
how i can automaticelx take the meta over to all follwing transactions? at the moment i could only see the meta in my connect account, but not in the connected accounts.
*metadata
@vocal wagon Metadata doesn't copy over automatically, you'd have to update the objects in question to have the metadata you want
i have to update any transaction object manually? there are many transactions
or it is possible add metadata on destination payment together with the destination account_id ?
You can definitely add metadata to a destination PaymentIntent, but that metadata won't automatically copy over to the Transfer
that would be a great feature π
at the moment its really hard to allocate the payments, transaction ids change in the balance i cant see the root payment intent and no meta data
only soluction i have to call your api with my metadata, get related transactions and update
Hello, would there be any way I could make Stripe Checkout work in Cypress ? Thanks
Thanks @golden cosmos for your reply. I did not mean how to setup checkout or how to integrate with it. I meant the concepts .. I need to understand every element of the payment, and how Stripe handle the payment.. what is the customer source.. the diff between payment intent and charge.. and all this stuff.
in short, I need to understand every element on the Dashboard Payment details page
Using transfer_group might help you here, that value will translate over to the connected account when you look up charges there
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 probably can, but it's quite difficult and quite brittle. By using Cypress you're guessing where the buttons on the UI will be at any point to automate the flow. Stripe could at any point change the Checkout UI which would cause your tests to break. You should focus on testing your own code and mocking responses from Stripe instead. For instance with Checkout you should mock a checkout.session.completed event and test the code that reacts to that rather than testing Stripe's UI.
There's an article here on how to do it with Elements, but again it's quite brittle: https://medium.com/@michabahr/testing-stripe-elements-with-cypress-5a2fc17ab27b
thanks @bleak breach i check it
Have you seen these docs? They are quite concise and should have everything you need:
https://stripe.com/docs/invoicing/customer
https://stripe.com/docs/payments/payment-intents
What's the value of integration tests if I'm not running the same code as I normally do ?
Also my primary issue is that Stripe Checkout actually blocks Cypress :
Stripe Checkout is not able to run in an iFrame. Please redirect to Checkout at the top level.
Thanks
Yeah I was afraid of something like that. I suspect that you can't use Cypress for Checkout at all. You need some sort of headless browser. However my earlier point still stands, you shouldn't be testing Stripe's Checkout UI as that can change at any time and break your tests
Hi, I have a question about Stripe issuing. Is there some webview or SDK capability for us to show issued card number/cvv directly from Stripe without having to touch that information for ourselves?
Hi, I tried to use Stripe Connect within a React Native App with the stripe-react-native library. This works fine except for one thing: We use Stripe Connect for a marketplace and tried to split a single PaymentIntent into several charges/transfers for different connected accounts. Althoug the transfer works, I don't know how to set up the application_fee in transfers.
So the result should be: 1 PaymentIntent that includes items of 3 connected accounts each with different application fee settings.
Furthermore the connected accounts should get charged the additional stripe fee.
Is that even possible to achieve?
Yes, but only for virtual cards: https://stripe.com/docs/api/issuing/cards/object#issuing_card_object-number
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 wouldn't set an application_fee, you just transfer the amount minus the fee you want to charge. So for instance if you make a payment for $100 and want to keep 5% as an application fee, you'd just transfer $95 to the connected account.
Ah okay, thanks for the answer. I thought it would be nice to see the listed fees inside the payment transaction. But I'll use a meta data entry instead.
Yup exactly, if you wanted to keep a record of how much the application fee was you'd use metadata
As far as I understand, it just means it does not return it by default. But is there any possibility to have Stripe show that data to our user directly. Like with Stripe Checkout you have a page which handles credit card information, so we don't have to touch it ourselves. Is there something like that for Stripe Issuing? A page which shows card number/cvv directly from Stripe without having us to query that information.
What exactly are you trying to do? Why do you want to display that information?
My use case is to issue virtual card to the user which can be used to buy some things or services in other apps. That requires revealing card number/cvv to the user.
@fringe gyro https://stripe.com/docs/issuing/cards/virtual shows how you can get the number/cvc for a virtual card
I know this is on your radar but this is a very big problem for me today. Debugging an issue in webhooks and I have to restart the forwarding every few minutes else it just won't receive any events. https://github.com/stripe/stripe-cli/issues/600
@frosty coyote yep I'm aware of that issue and I do raise it internally often! nothing else I can say right now unfortunately
Wouldn't it be possible to disable this security in test mode instead ?
Actually I don't think that the test being broken because of Stripe UI changes is a bad thing, on the contrary, because I'd want to know if something changes anyway.
@languid dew sounds like a feature request for , https://support.stripe.com/email , but in practise it's unlikely we'd disable this, Checkout is not in any way designed to be used inside an iframe from a UI or other standpoints. Also other technologies don't always work in iframes, like Apple/Google Pay, and redirects to other services like banks/iDEAL/etc might not support iframes which is why we intentionally designed Checkout to be a full page redirect, and as such it wouldn't really be an accurate test if you it did allow framing in test mdoe
as Paul says we just don't really intend for you to so this kind of automated testing of our UIs.
So "You can retrieve virtual card details via the Dashboard" means that only the people who have access to our company's Stripe account could retrieve that data. There is no separate dashboard for each cardholder right?
Hi! After finalising an invoice linked to a subscriptionschedule, I don't get a payment intent... how am I supposed to get it?
I did expand by setting expand=["payment_intent"] but all I get is a null payment intent
@fringe gyro well you can access it via the API as well, so the idea I believe would be more that if you want the cardholder to self-serve, you call the API from your user dashboard page of your own system and show them that information programmatically
@rigid ridge was the Invoice amount $0? There's no PaymentIntent in that case.
Nope, it's 254.3β¬... but checking on the dashboard it says "applied balance 254.3β¬" and then total "0"
I don't follow what's happening there π¦
it means the customer had a debit balance from overpaying a previous invoice for example
Huh... and how does that happen? Because all I've done is issue refunds, not adding credit to an account
what's the cus_xxx customer ID?
cus_JkVEidEVjoUsgU
mainly it comes from this invoice : https://dashboard.stripe.com/test/invoices/in_1J88OZJ1CItnDVH6TeCQKDvi which was a negative amount(which can happen when due to proration the customer is owed a large credit, like if the subscription is cancelled soon after they paid and proration wasn't disabled; or if they switch from a really expensive plan to an cheaper one early in a billing cycle).
Ohh, alright, that makes sense
And how can I explicitly disable proration when cencelling a plan? Do I have to set it when making the call to the API or can I set it as default on the account?
it has to be specified on each update or cancel call, it can't be set as a default setting
ok, thanks
for example for that invoice the invoice is created because you cancelled the Schedule : https://dashboard.stripe.com/test/logs/req_dDwW0r2KewDIoz but didn't specify https://stripe.com/docs/api/subscription_schedules/cancel#cancel_subscription_schedule-prorate
I know it's tricky unfortunately, so this is why it requires lot of testing of your exact flows in test mode to get a good handle on the integration!
@fringe gyro for what it's worth you might be interested in https://stripe.com/docs/corporate-card but it's invite only
but that does basically provide a Stripe dashboard for the cardholder to view their details including PAN of the issued card etc
basically you add the cardholder to your account as a Team member(https://stripe.com/docs/dashboard/teams) with a specific role (https://stripe.com/docs/corporate-card/card-management) and they can only see their own card and nothing else
ok, great, will take a look at that
we definitely would like to build something more like you describes as well(more hosted experiences for the cardholder, like you simply generate a link and they get a stripped-down dashboard) but I don't think it exists yet, everything is a work in progress ultimately!
is there any way of checking when a subscription schedule ends? Or should I calculate that on my own based on the phases I pass to the api?
@rigid ridge I think the most straightforward way is to inspect the phases yeah. I was going to say look at the end_date of the last phase on the Schedule object , but actually if you use iterations then I'm not 100% sure that works. It depends on if we populate end_date automatically on the API response based on the iterations, I'm not sure
okay, thanks!
Hello everyone
I am trying to create a test case of an verification error when creating a company account. With the requirement to upload IRS Letter 147c, IRS SS-4 confimation letter(https://paste.pics/1c090ea12b318bcc560f03b95a303b17).
Point in the right direction, please.
@fast kayak I don't quite follow. I think you want https://stripe.com/docs/connect/testing#test-business-tax-ids ?
you can pass those when creating a Custom account for instance to simulate a verification problem.
Hello everyone, I have a problem with the integration of new PI API , I used to run my website on Charges. I'm have a small business renting dresses . If a user rents a dress in the next 72h , the amount of the dress should be charged and deposit should be captured - so that later on it could be charged or not(depends on a state of the dress after return) . I used Setup Intent for this implementation , but I have a problem with authentication. If I use 424242424242 card, The amount of dress is charged and deposit is captured but if I used the card that requires auth - the 3D window prompt, I authenticate, but in my panel , both of the PI's are marked as failed and that they require authentication... I can send snippets of my code if needed , thanks for the help in advantage π
It seems this is what i need! thanks!
@grave magnet hi! are you aware of https://stripe.com/docs/payments/capture-later ? I would use that (run a single PaymentIntent at the start and then optionally capture/refund those funds); instead of doing a SetupIntent -> then doing a PaymentIntent I think. You'd only use a SetupIntent if you intend to save the card now without charging it and then charge it a few days later for instance, which doesn't quite seem like what you're looking for.
also, I should mention that if the dress is rented for a later date, I have a cron job that is releasing captured funds, or charging it , depending of the for example : state of the dress, if it has any damages or not
Hi @meager hawk , I currently have a live code with a PI on init where the amount is total amount , and later on 2 different pi's , one with amount of dress and the second one for deposit ... The problem is that the first PI is confirmed and that should not happen , now I have double charges
if you create 3 separate PaymentIntents that means you intended to charge the customer 3 separate times, so I'm a little confused(you control creating these PaymentIntents).
could you maybe share some specific pi_xxx PaymentIntent IDs connected with some specific customer journey so I can try to understand your integration?
I have created 3 so I could authorize full payment (dress+deposit)
but that one is the one that gets confirmed
Of course, I can send you snippets of my current setupIntent code
I don't understand why that's three and not two. Sorry, I'm quite lost without looking at your logs a little bit!
If I understand your business what I would do is https://stripe.com/docs/payments/save-during-payment β charge a $50 deposit and save the customers card. PaymentIntent 1.
A few days later when the dress is ready, charge the saved card (https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session) for $600 or however much the dress is. PaymentIntent 2.
That's it, no SetupIntents or 3 PaymentIntents.
https://i.imgur.com/PdqtwxE.png This is form handeling on front , This is the setup creation on init https://i.imgur.com/TZxwicc.png
and this is the code for both PI's https://i.imgur.com/sXf4pQK.png
@grave magnet yeah this is a really bad way to do this, you should never try to charge the customer's card immediately twice like that as , like you say, it's a double charge, and thus has a high chance of being declined or disputed.
My dashboard looks like this https://i.imgur.com/GztHjWl.png for the cards that require auth
If I use the 4242 card, first one is success , 2nd one is uncaptured
it seems expected that you would get incomplete PaymentIntents like that, because your code doesn't handle the case where the off-session payments require authentication.
it seems to assume they never do, which is not something you can assume
Yeah , my state is usually a requires_action on a 1st PI
When a payment attempt fails, the request also fails with a 402 HTTP status code and the status of the PaymentIntent is requires_payment_method. You need to notify your customer to return to your application (e.g., by sending an email or in-app notification) to complete the payment. Check the code of the Error raised by the Stripe API library or check the last_payment_error.decline_code on the PaymentIntent to inspect why the card issuer declined the payment.
If the payment failed due to an authentication_required decline code, use the declined PaymentIntentβs client
Learn how to save card details during a payment.
Hi Team, Facing this issue while retrieving the charges with limit 100
First error: Error while communicating with one of our backends. Sorry about that! We have been notified of the problem. If you have any questions, we can help at https://support.stripe.com/.
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.
There are about 2000 charges but facing this issue. does anyone have idea ?
yes but any PI could be requires_action, including that off-session one. The bank can require 3DS on any payment at any time
as I said your way of integrating seems quite unusual and you should never really have a flow where you create two PaymentIntents one after another like that
I'd suggest taking a step back and reading through the docs a bit and consider what I said at #dev-help message
@north ether hi! two questions β if you reduce the limit do you get the error still? (you will still get all the charges, just takes more requests to paginate) ; and do you have a request ID req_xx for the error you are seeing?
@north ether I saw you the first time so I'm going to delete that message to avoid clutter
How to get request id?
Thank you @meager hawk , I'll take a look again and ask later again if I have more questions π
@meager hawk Request Id: req_dRmTsa30XrmTan
@north ether thanks! So I think you should do what I hinted at in my first question β reduce the limit (or remove it entirely). It doesn't change the results you get since you'll paginate through the response anyway(https://stripe.com/docs/api/pagination) , but the problem is unfortunately if you use the maximum limit (100) and expand some deep nested fields as you do, sometimes the API/database layer times out unfortunately
the easiest solution is to just reduce the limit
Let me check by reducing the limit
With limit 10 we are getting
First error: Exceeded maximum time allotted for callout (120000 ms)
Is server is down?
Its working with limit 1
the server's not down, looking at our logs a bit I don't see you making a request on that account just now. Maybe that one is a networking issue instead and your request just never reached us?
Let me try
I want to send a failed payment email to users. Within that email, the 'Update billing information' link should return a url with the user's email attached as a query parameter. Is there a way to edit the email link (preferably the ui as well) through your platform or do i need to go through the apis? If through the apis, can you point me in the right direction please? Thanks, Tom
@sterile fulcrum it's configured on https://dashboard.stripe.com/settings/billing/automatic , by clicking the ποΈ next to "Send emails when card payments fail", that's where you set the URL for that
but you can't have it be dynamic and have the customer's email address as far as I know, no.
what I'd suggest instead is set it to a page on your site that authenticates the user in whatever way you normally authenticate them(maybe it checks for cookies or lets them log in to their account).
on Mobile. after adding the card number the Card Number slides left but not completely so it overlays on MM/YY filed. is there any solution for that?
@sand oracle change the layout to give the Element more horizontal space, or reduce the font size
ok thanks for above, makes sense. Is there a way to edit these emails with apis?
@sterile fulcrum can you clarify what exactly you want to edit?
want to edit the link to include a query parameter
the email address of the affected user
You can't, as I said that's not supported unfortunately.
ok no worries, thank you
hi everyone i have few payment which failed due to 3Ds authentification ( less than 5% )
@void vapor hi! I haven't. But if you have a question I can at least try to answer!
so what kind of server do i need to use for payment or just firebase i saw one using js
???
maybe there is a case which is not taken in concideration
@quasi flicker what's the question? In that case, the customer tried to authenticate and they couldn't(maybe they entered the wrong OTP with their bank or something). It happens, you're not doing anything wrong as the merchant.
@void vapor I don't really follow. You need a backend server yes. You can use Firebase for that or host one yourself on a VPS etc and use whatever backend language you're most comfortable with.
i confirm PaymentCardPayment only if the status is "required_action"
maybe add "required_action || required_payment_method"
no it's nothing to do with that.
if the customer wasn't able to authenticate they should maybe ask their bank what happened, it's not really related to you or Stripe.
there is an error which is display 'it miss 'client_secret''
of payement_method but i don't think it's the real problem
We have a subscriptions implementation with 3 fixed price tiers on a monthly interval.
When downgrading a subscription/plan, generating preview with proration displays amount due: 0 does stripe automatically keep them on the current plan until the next cycle or does it immediately downgrade them to the lower priced plan?
@fierce sigil hi! the change takes place immediately at the time you make the API request.
Is there an option to delay the change till the next cycle on a downgrade otherwise they would have downgraded but still paid the higher tier price
as for why you might see a 0 amount due ,hard to say without looking at the exact example but for example if switching from a very expensive plan to a much cheaper one early in the cycle the proration can be negative so the customer gets a credit and doesn't owe anthing
ah ok I see the 0 is just what is due I was expecting to see a negative figure that signified what would be returned to them
otherwise they would have downgraded but still paid the higher tier price
that's what the proration is for, they get a discount back for the time they paid for but didn't use.
is there somehwere on the preview response that shows the discount?
well the negative amount should be there, maybe the amount field rather than amount_due
yep it's all in the lines array
Ok thanks will take a closer look π
there would be an item like "unused time on X" which is the discount they get , and "remaining time on Y" which is the prorated amount for the new plan they changed to
as for applying the change at the end of the cycle instead, unfortunately the main way to do that is to use a SubscriptionSchedule :https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases
otherwise the change just happens at the time you make the API call
this is just automatically refunded back to their default payment method (in our case credit card) without us having to do anything?
no, it's not. It adds to their credit balance to be offset on future payments, see : https://stripe.com/docs/billing/customer/balance
I think you can refund it to their card by issuing a credit note but by default, it's more of a virtual balance to be offset on future payments if that makes sense
Ah ok, great that clears a lot up for me, thanks for the help π
#dev-help Hi! I have a wordpress connected with Stripe but, when I did the initial configuration, I made the mistake of not adding the event "ppayment_intent.succeeded" so the payments come out as "Pending". I have added in the webhook said event, is there a way to force its call so that I update the orders?
@pure horizon hi! as in, you want to send previously-generated events to the endpoint? I don't that's possible unfortunately β but check if there's a 'Retry' button on the events you're interested in that are linked from https://dashboard.stripe.com/events . I think it won't be there though unless there was a listening endpoint at the time the event was generated though.
I'd say the easiest solution is to have a one-off script to call https://stripe.com/docs/api/events/list#list_events-created (filtered to like, created[lte]=<time you activated the endpoint>) to get the events you missed and ingest them into your system that way.
Ok! Thanks! π
@meager hawk Still facing time limit exceeded issue but its working fine when I put limit 1
My connected Account have more than 1500 payments that's why I am facing issue. If connected Account have around 500 payments its working fine even with limit 100.Is there any best workaround to resolve that issue?
karllekko should have stepped away by now but I can help -- what's the lowest limit that you've set where you get an error? Do you have the request id for one where you set it to let's say 10? 5?
@sick talon 10 and some time with even 5
What's the request id of one of the limit: 5 ones?
If you're not getting a request id in the response, then it's not a timeout on our end as it's not getting to Stripe's servers. Setting the limit to 100 makes sense that it would time out, but those lower numbers sound like a network issue between you and us.
request Id : req_cXimav8WXyC3WT
Is there any way to resolve that because with limit 1 its working fine
I'm quite confused as to why you're able to get a request id with the limit set to 100 or 1, but not to 5 or 10. What is the error you see when you set it to 5 or 10?
Hi there - first post on Discord! I have a Woocommerce store, running the Stripe plugin and connected to my clients Stripe account. We have two types of products on the store - one needs the card payment captured immediately to go through to a therapy chat window, but the other type is a woo subscription for woo membership which we need the payment not to be captured until we can check the application data that is part of the order and then we want to manually authorise the payment. The Stripe plugin only allows all products to either be captured immediately or not. Can anyone help at all?
First error: Exceeded maximum time allotted for callout (120000 ms)
We can't support the WooCommerce plugin directly as it's their own integration and they control their code. As far as I know, they only support all payments being manual capture or automatic capture. My guess is that your only option would be to have them all be manual and for the ones you want to be "automatic" just capture those immediately in response.
Ok, thanks for your reply. Most appreciated. Could you direct me to where I might learn more about capturing them immediately in the response? There are 5 subscription products that need to be manually captured, and just one product that needs to be immediate.
That's an error on your side when trying to process the results. I see several successful requests in your Stripe logs with limits of 50 set. We're responding successfully and then your code appears to be timing out while processing the results.
I don't know if/how WooCommerce handles it but the Stripe API call you'd want is https://stripe.com/docs/api/payment_intents/capture and normally the Stripe way (without WooCommerce involved) would be to use a webhook endpoint to watch for payments and then capture them if they're the ones you want to do that for.
but with WooCommerce you likely need to ask their support team and see how they recommend it (they may just expect you to do it manually via the Dashboard)
No worries! I shall investigate further... I sure it's all possible π Thanks for your help.
So what you're seeing is if you set the limit to 100, Stripe times out. If you set it to 1, everything works. Setting it somewhere in the middle means Stripe responds in time but you code can't process everything before your own timeout happens.
Its failed at time of callout
You'll need to look deeper into your local logs to see what is timing out. You are getting a successful response from our side.
I see it in your logs on the Stripe side with limit: 50
Do the test card numbers only work in test mode? Is there any way to test a failure in production / live mode?
Testing in production is against the Stripe ToS. You always want to test in test mode (which is where the test cards work).
So after a production deployment we just have to hope it works?
Test mode emulates live mode almost perfectly. What specifically are you concerned about failing?
Well yes but we cannot deploy out test keys to production environments else all our customers would suddenly not work
You would never do that. What part of your integration are you concerned about that you want to use live mode for testing?
Failed payments on subscriptions
but realistically after any production deployment we would want to check basic functionality hasn't gone wrong.
You can test everything about billing and subscriptions in test mode and it will behave identically to how it would in live mode. See https://stripe.com/docs/billing/testing for a good overview.
Which we can do up until we deploy to production. Beyond that we just have to hope?
I'm not sure what you mean by "hope". If you've tested everything, it's the same in live mode.
Well it isn't as we havent tested our production environment, we've tested our stage, test and dev environments
and while you would hope they are the same, we are still deploying a brand new pod to the kubernetes cluster
We can't really help with your environment though. It is against the terms of service of both Stripe and many of the issuing banks to do any testing in production.
If your code works in test, it will work in live mode.
I mean if you are a developer you will know that isnt always the case
I am using Stripe terminal for payment in iOS, Now I updated ios verion to 14.6 and stripe terminal is not discovring.
Do anyone have solution for this?
All of the Stripe folks supporting here are engineers. We understand your concern but we also have put years into our test mode to make sure it works the same as live.
What's the error core you're seeing?
Make them the same is all well and good but that doesnt actually accomplish the same scenario
ill speak to the business and see but this may be a big problem for us
I am not getting error, Just show a alert that reader is not connected to internet
Also I have confimred that ipad and terminal have same wifi network.
Believe me, I understand.
The device itself isn't connecting to your network before the SDK is involved?
Hi there.
If the user's payment fails, when they visit their customer portal, will it prompt them to update their payment method? Also, if a user automatically updates their payment method from their customer portal, will Stripe try to take payment from this payment option?
Hello guys, I have a question regarding Stripe client-side API. As I understand, Stripe recommends the usage of PaymentMethods instead of Sources now. I want to set the default payment method for a customer for usage in future subscriptions, that is fine, I can use invoice_settings.default_payment_method from the server-side to do just this.
The issue is that the client-side API for the customer doesn't give me any indication of what the current payment method is the default one for the customer (but it gives the default source). And also the client-side API for getting all payment methods doesn't tell me which one is the customer default either.
What is the correct way to retrieve this information from the client-side?
Earlier It was working fine, It was connecting to my network before, but it is getting problem after ios version update.
You'd want to link them to the billing portal to update their payment method (we don't send them directly to the portal automatically). If they change their payment method after a failed payment attempt, we'll use the new one on any automatic retries per https://stripe.com/docs/invoicing/automatic-collection
There is no default PaymentMethod for Customers (other than the Subscriptions one you mentioned). You can either look up the invoice_settings.default_payment_method and pass that same id when you create a PaymentIntent, or you can retrieve the Customer's PaymentMethods as a list via https://stripe.com/docs/api/payment_methods/list
To clarify, are you unable to connect the reader to the internet, or unable to connect the SDK device to the reader?
Is there a way to stop the subscription being created after a failed payment?
Thanks for the reply @sick talon , I know that, but the client-side doesn't have access (as far as I know) to an API that retrieves invoice_settings.default_payment_method, and the customer's payment methods list doesn't show me that either.
Note that I'm talking about client-side here, from server-side I can retrieve this information no problem, but what I want to do is to retrieve information about the customer and its payment methods and show the current default one, all on the client-side of the app talking directly to Stripe instead of going through my backend..
If the client-side API returns the default source, why don't it returns the invoice_settings.default_payment_method too?
You have to retrieve it on the backend. The old API had default_source but there is no equivalent with the new API.
that seems like an oversight from Stripe.. but ok, if that is not an option I will retrieve it from the backend unfortunately. Thanks for the help.
Not an oversight, just a tradeoff. There are reasons it works that way that I won't get into. π
Thank you. Just to clarify. The user's payment method fails multiple times after the smart retries run through. We send them the customer portal to update their payment details. Once they update these details, stripe will attempt to take payment again?
Only if there are still retry attempts left to be made.
Fair enough π
Yes, Its succeeded ?
Yes, the response from Stripe's side is a successful one.
From the error you see on your side, I'd guess that your code is taking too long (on your own side) to loop through all the results before it times out.
Ok, if there aren't retries left to be made, how do we start the subscription again after they update their payment details? Is there a setting I should toggle?
can you please tell me any REST API that will give me the count of the total charges available ?
Hi Team
What status is the Subscription in? It's controlled by your settings on https://dashboard.stripe.com/settings/billing/automatic
That doesn't exist
Ok
Can I use stripe to have users in my app pay eachother (like venmo)
So there is no way to check count right?
Not really, you could use https://stripe.com/connect but that's not designed for person-to-person payments without a service/product involved.
You would auto-paginate and go through them all, no way to just get the count directly in a single call.
Ok
is there anything you would recommend besides paypal?
Thanks for the help @sick talon
Once the subscription is cancelled you would have to create a new one. You can set it to do something else instead of cancel which lets you restart it after successful payments, though.
hope so everyone is fine
I have some question about subscription
I want to subscribe a user but not immediately like Client want to hire freelancer on monthly bases but in future so we are charging a client today but want to start subscription next month so it's possible in subscription API
This channel is only for developers/integration help, we couldn't make any such recommendation. The support team can help with questions like that via https://support.stripe.com/contact/email
thanks for your help
so option 'mark the subscription as unpaid' would work?
exactly
SDK device to reader
Ok thanks. If we have users whose subscription has therefore been cancelled, how do we restart their subscription or just have to force them to start a completely new one?
Create a new one, yeah
ok, what model of reader is it?
thanks for your help it's will work same like subscription method?
Veriphone 400
SubscriptionSchedules will create and manage Subscriptions.
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'line_items' => [[
'price' => $price->id,
// For metered billing, do not pass quantity
'quantity' => 1,
]],
'mode' => 'subscription',
"expand" => ["latest_invoice.payment_intent"],
]);
currently i am using this method and you are saying i will use this method and both are same ?
\Stripe\SubscriptionSchedule::create([
'customer' => 'cus_GBXVvM3Lyqlb92',
'start_date' => 'now',
'end_behavior' => 'release',
'phases' => [
[
'items' => [
[
'price' => 'price_1GqNdGAJVYItwOKqEHb',
'quantity' => 1,
],
],
'iterations' => 12,
],
],
])
That's a CheckoutSession you're using right now. You can't set up a "future" Subscription using a CheckoutSession. What you can do it use a CheckoutSession in setup mode to collect a PaymentMethod, and then use that PaymentMethod with a SusbcriptionSchedule. https://stripe.com/docs/payments/save-and-reuse?platform=checkout
Ok and at what point do you run into the issue in https://stripe.com/docs/terminal/readers/connecting/verifone-p400
while checkout i will use setup mode and then i will use the SusbcriptionSchedule so for using SusbcriptionSchedule i will use the Customerid right?
Correct, Checkout in Setup mode will give you a Customer and their PaymentMethod (ids).
in setup mode we are only collecting the card details we are not deducting any amount?
How do i select a default payment method?
correct
For Subscriptions/Invoices you'd set https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method -- for PaymentIntents there isn't a default, you specify the payment_method with an id when creating a PaymentIntent
@ebon raptor hello, what context is this in ? Subscriptions? one time payments?
Sorry @sick talon where do I set payment_behavior im using .net
Monthly subscriptions, but i figured turbotime's solution should work.
@dire quarry you'd pass that on Subscription creation, https://github.com/stripe/stripe-dotnet/blob/fb5f71094a4f7d8629ef35373d2cdfc461256ca6/src/Stripe.net/Services/SubscriptionItems/SubscriptionItemCreateOptions.cs#L60
@ebon raptor you'd pass it under default_payment_method parameter on Subscription creation, to specify which PaymentMethod you want to be the default on that Subscription
@ebon raptor oh sorry just saw turbotime's answer, so yeah that
hi team! quick question: can I accept ACH payments with Stripe in an iOS app?
@somber sundial hello! yes you can, you create an ACH debit token via Plaid (or verify via microdeposits) and then charge it on your backend.
@bold basalt huge! thank you!
If we're a .net system (which Plaid doesn't accept), what would you recommend @bold basalt ?
@somber sundial what do you mean by ".net system that Plaid doesn't accept"?
no .net libraries from Plaid π¦
@somber sundial you can manually construct the requests to make to Plaid's API
cool, thank you so much!
Hello! I want know better practice.
I'm creating an application that user can host their events, and they can sell tickets for events.
Should I create a Stripe Product for each event, or it's okay to create a Checkout Session for each event?
@noble wyvern hello, yes you would create a new Product representing an event, then a Price for that event. The Product (aka event) could also have multiple Prices, say a "silver pass", a "gold pass" as two diff Prices.
Then you'd create a CheckoutSession on the Price, for the customer to pay on.
Thanks for reply!
Yes, I've confirmed I can create a CheckoutSession from StripeProduct from API.
Can I ask one more question? What is the benefits of using StripeProduct.
I think I can create CheckoutSession instead of using Product.
@noble wyvern Products help you better model your use-case, they're also required for using Stripe Checkout.
To create a CheckoutSession, you need to pass a Price under its line_items and Prices are created off Products.
@bold basalt
Thank you so much, I understand.
Hi
I processed a rfund, the funds were taken from my account and yet the notification tells me that I have insufficient funds
can I refund a lesser amount?
@dry shale hello, that question would be better answered by Stripe Support at https://support.stripe.com/contact.
For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
oh ok thanks'
hii guys
i am trying to integrate google pay with stripe
but getting error that "This merchant is not enabled for Google Pay"
any help
@nocturne cobalt hello! this is on an Android app right?
yes
@nocturne cobalt and you're testing with your live mode API keys, with your production app?
thank you so much
yes
@nocturne cobalt and you've done all the steps here: https://stripe.com/docs/google-pay#google-pay-going-live
my integration is approved
should i have to send live app for test with live stripe key ?
@nocturne cobalt the steps say to send your app to Google with both the livemode and testmode API keys. So I would go through those steps again and make sure they're all done.
Hello all, I was wondering if the URL for cancel and success pages needed to be specific or if we could use any url we create for cancel and success pages
@lyric hemlock hello, you determine what those urls would be
how can i send to google
@nocturne cobalt full disclosure, I haven't run through those steps myself as I'm not super well versed in Android development but the steps say you have to reach out to Google's Play Store support: https://stripe.com/docs/google-pay#google-pay-going-live
@nocturne cobalt I would say take a step back and make sure each of those steps is done correctly in that checklist, there's a few steps where you have to work with the Play Store support
Hello, how should one handle trial limitations by customers with stripe? For example, Stripe doesn't seem to give any option to limit the number of trials a customer or card/payment method can have, meaning that, as far as I know, if I enable trial for my application, the user can simply get the trial, cancel when the trial is ending and simply resubscribe to a new trial again never effectively paying for the subscription.
like i have done with submitting all screenshot and it's approved
what next ?
Hi all, we are using Stripe Connect integrated within our new apps (p2p) for auto payout but have noticed that there are a fair few duplicate successfully connected accounts on the Stripe dashboard. How will this affect the payouts and the token on the app?
@nocturne cobalt sorry we're talking in circles, have you seen the steps I linked out to you? Those are not the same as submitting your app to the Play Store.
@empty yarrow hello! that is something you'd have to track on your end. Like you probably want to require a login flow to correlate an email to a Customer ID, and use a cards fingerprint to determine if a Customer is a return customer who already had a trial.
That was what I suspected, thanks for confirming it, cheers!
@nocturne cobalt haha I already linked you this: https://stripe.com/docs/google-pay#google-pay-going-live
there are 8 steps there that you have to do, please read through those carefully.
I think step 2 there links you to https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access (again I'm not a 100% sure, haven't done this before)
Have folks attempted to implement (physical goods) payments in mobile apps via Stripe Checkout embedded in the mobile platforms respective WebView implementations instead of using the SDK?
Advisable? Pain in the rear? Seems like it's much easier to integrate Subscriptions via Checkout than the SDK.
@brazen igloo hello, can you explain what duplicates you're referring to? Like what is duplicated, a Customer? a payment? not clear to me
@fading sparrow hello! Stripe Checkout in a mobile webview works. are you doing this on an iOS app? Android? Both?
Yes, the customer "Connected" accounts. For example, for the same customer we have the same email address, same bank account, same details etc but is duplicated sometimes 2 or 3 times I'm guessing from the customer doing the signup more than once with Stripe.
@brazen igloo ah ok just to clarify a bit more, a "Customer" object is duplicated? like "cus_123"? and "cus_456" and both have the same cards, bank accts, email, etc?
Or multiple duplicate Connect accounts like "acct_123"
that was done
@nocturne cobalt all of those steps? like sending over your build to the Google Pay team (not for Play Store) and they checked it against the Google Pay integration checklist and ran test transactions etc and notified you its all good to go?
My team and I are trying to develop to your standard connect OAuth-like flow. Is there a test account or test credentials we can use or do we need to create our own account with our own data?
@wary spade You would create as many test accounts as you need on your end.
@wary spade There is no existing shared test account or anything like that.
i haven't found sending a build options,rather it was screenshot
and it was approved
@nocturne cobalt from what I understand, that is a different process, no?
@nocturne cobalt like that is the process to upload your screenshots to prep the Play Store app page, right?
@nocturne cobalt and these steps are different as these are for requesting production access specifically for Google Pay
not on play store,it was on google pay
@nocturne cobalt ah ok .. then I'm not sure, but what I know is that those steps have to be done. So maybe they didn't approve you properly?
I would write to Google Developer support and have them those steps for you, that we linked before
@nocturne cobalt that error (from what I know) is basically your production app not being enabled for Google Pay. So not much I can suggest beyond working with Google to get enabled for it correctly
there is no option for submitting build
Ok, just verifying I'm talking about the main processing account. In our case we're accepting payment from multiple different clients and trying to use the Platform / Marketplace account (If I'm understanding the distinction between the Platform / marketplace and Extension integrations).
What your saying is we should create one test Platform / Marketplace and then create a bunch of test accounts when faking authentications?
@wary spade Yep.
@nocturne cobalt yeah sorry not fully sure as I haven't used this process myself, is there a way to get help from Google developer support via your developer console?
Like https://developers.google.com/pay/api/android/support/how-to-get-help
Basically I would point them to the doc I linked and explain that you need to go through that process to be enabled for Google Pay in production
Really in the end we're just trying to fetch API keys so we can process our users payments with their account keys automatically and not have to ask them to manually go grab them from their Stripe portal
Can you help me make the distinction between market place and extenstion based on that?
@wary spade Not sure what you mean by distinction? Can you provide more details?
Side question: Can we authenticate already existing Stripe users with this standard connect API flow or do we need to ask them to start new accounts?
It'd be both, yeah.
I see a choice when creating a new business in the Stripe portal. I'm attempting to create a new test business that would be handling the processing of payments. (I'm assuming this will be my business' real main account when we launch this functionality) I see a choice between platform / marketplace and extension
@wary spade That depends on your platform. Have you read this? https://stripe.com/docs/connect/oauth-changes-for-standard-platforms
Hi Eveyone, I have added an external account (bank) to a connected account. When i try to create a Payout to this external account it gives me an error no such external account exists. Can anyone help me with this.
I have not let me look at that now
@wary spade If you're processing payments/moving money it's likely you would be a platform.
@wary spade In that scenario you would not connect to existing Standard accounts but instead create new ones.
Hi, so I am testing SEPA debits, and I would like to be able to get a test e-mail of the notification sent to the user before being charged... how can I do this in the testing environment? Also, does the user receive the notification e-mail always that a charge is issued or only on future charges in subscriptions?
@fading sparrow Hello! @bold basalt had to step away, but I'd be happy to help. What's your question?
@ionic agate Hello! Can you give me the request ID showing that error? Here's how you can find a request ID: https://support.stripe.com/questions/finding-the-id-for-an-api-request
I think I should rephrase that.
We're not actually going to be handling any money in our account. We're just opening up the functionality to our users and our software is going to be triggering the sale/credit/void calls.
Now that I'm saying that it sounds like I should be going for an extension?
@rigid ridge Hello! We typically don't send emails in test mode. You may be able to trigger an email from the Dashboard to your own email address, but I'm not sure about the SEPA part (I'm not very familiar with SEPA). Let me see what I can find out.
About a mobile app using Stripe Checkout in an embedded WebView as an alternative to using the SDK. Primarily because integration between Stripe Checkout and Subscriptions feels much more robust.
@rigid ridge I'm not sure about the recurring emails, I recommend you reach out to support for help with that question: https://support.stripe.com/contact/email
@mighty hill Surprisingly, The log is not being created for this request.
alright thanks!
@wary spade That does not sound like an extension to me. If your code is triggering money movement (even if it's on another account) you are likely not an extension. An extension would be something that, for example, ingests data from an existing account and produces reports.
@fading sparrow Ah, okay, what's your question about doing that?
Man you guys are busy today. Thank you for this BTW this immediate response stuff is great to work with.
@ionic agate There's no request associated with the error? Where are you seeing the error exactly?
Is it advisable, or is it a bad idea? And if advisable, are there any examples or best practices to be aware of?
@wary spade Happy to help!
@fading sparrow It depends on your use case, really. I can't say if it's a good or bad idea without knowing your business/use case/etc. It's certainly possible, and people do it. The biggest limitation would be Apple Pay and Google Pay not working on mobile when embedded in certain types of web views.
@mighty hill, I am using node js. I am seeing the error in the terminal as: UnhandledPromiseRejectionWarning: Error: No such external account: 'account_id'
@ionic agate Can you share the code that produces that error?
Google/Apple Pay would certainly be a requirement for us. What types of web views would I have to avoid? Or is it just not reliable to use Google/Apple Pay in an embedded mobile web view?
@mighty hill, Here is the code that is producing that error:
amount: amountInCents,
currency: "usd",
destination: external_account_id,
});
@fading sparrow On iOS you would need to open Checkout in Safari or a Safari View Controller. I think on newer versions of iOS WKWebView also works, but you should test to make sure. For Android I'm honestly not sure of the specifics.
@ionic agate What is external_account_id set to?
@mighty hill, It is a test external bank account with id "ba_1JAhzV2auhxl5VAdYC6V56Wu"
Iβm not really sure how this works.. but I need to get ahold of someone to help me verify my checking account to get paid.
I entered my information and itβs correct.. but it keeps popping up an error
@west herald Hello! 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
Thereβs nobody to talk to directly on there. Thereβs no phone number
Itβs just me sending an email
@ionic agate Taking a look, hang on...
@west herald Correct. You may be able to request a call here: https://support.stripe.com/contact
@west herald But there is no phone number you can call.
Ok thank you
Question: If we create an account with the .Net AccountService class and redirect the user to Stripe to fill out new account info; and the user abandons that flow. Does that newly created account hang in limbo or does it have a TTL that kills the account after some time?
@ionic agate It looks like that account exists on a Custom connected account, but it doesn't look like you're making the request on that account. You need to specify stripeAccount to create the payout on the connected account instead of on your platform. See here: https://stripe.com/docs/api/connected_accounts?lang=node
@wary spade I'm not aware of any time limits or expirations on accounts like that.
@mighty hill, But there is no such parameter in the create payout API to specify stripeAccount. How can i do that?
@ionic agate Did you have a look at the link I shared above?
@mighty hill, Yes. I believe i need to pass that in the header. Right?
@ionic agate Yeah, but did you look at the code snippet there? It shows that you specify the stripeAccount value in a new object separate from the one where you're specifying your existing parameters.
@ionic agate You need to add a second argument to the method you're calling. That second argument is an object containing the stripeAccount property.
@mighty hill So its possible if a user repeatedly fails at following through and our host account could have many bad unfilled in accounts. I guess the fix to this would be to capture the account ids and kill them if they're not in a good status?
@wary spade Generally you would want to redirect them back to complete onboarding as explained in the last section here: https://stripe.com/docs/connect/standard-accounts#handle-users
We weren't considering saving the account ID until we knew it was a success but ti sound like this will need to be done all the time.
I'll read that now
@mighty hill, Big Thanks. You saved my day. π
When a payment_intent.processing event associated to a sepa_debit payment method is emited, how can I get the mandate reference? and if that payment_intent is associated to a subscription, how can I retrieve it?
Because metadata associated with the original subscription is not passed onto the intent, right?
Hello, I try to solve a paymentintent when the satus of require_action returns me, I created an input for the user to enter his authentication code but I cannot find the function that I have to call to send the authentication code
@rigid ridge To clarify, the Payment Intent in question is associated with a Subscription? Why do you need the mandate?
@rigid ridge Metadata on one object is not generally copied to another unless you do that yourself, correct.
Question: If a user follows though and sets up an account and 'charges_enabled' is true they're good right? But if two months down the line they change their account settings and their account is invalid, will this be reflect in error/exception messages we get attempting to process payments?
Or should we be running checks for 'charges_enabled' before we do any processing?
@valid escarp Hello! That process is not handled by your integration, it would typically be handled by Stripe.js. Can you tell me more about what you're trying to do?
I need the mandate so that when I receive the processing event, I can send the notification e-mail to the user including the mandate reference... I was considering using Stripe's e-mails, but I'd rather send a custom e-mail. And yes, the payment intent is associated with a subscription in this case, but it may not
@wary spade Have a look here: https://stripe.com/docs/connect/webhooks
@rigid ridge Gotcha. That's on the Mandate object here: https://stripe.com/docs/api/mandates/object#mandate_object-payment_method_details-sepa_debit-reference
@rigid ridge You want to get back to that from just the payment_intent.processing event, right?
yes
is there is no way to expand the payment method to get the mandate? because from the docs it seems the payment method object sepa_debit doesn't have any expandable attributes
@rigid ridge The mandate is referenced on the Charge associated with the Payment Intent: https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate
Thanks for the answer, https://stripe.com/docs/payments/intents#intent-statuses on this page comes when a paymentintent needs to authenticate with 3D Secure (requires_action), but it does not mention where I have to send this code, https: //stripe.com/docs/api/payment_intents/object here comes the function I'm using (API)
oh, nice, thanks!
@valid escarp We have a guide for handling 3D Secure and authentication in general here: https://stripe.com/docs/payments/3d-secure
Thank you very much, I had already seen this page, but I will read it in more detail, I am sorry for my English is not good
@valid escarp No problem! To clarify, Stripe.js handles the actual authentication process for you (the part where the card holder gets the code from their bank); that's not something you build.
thanks for your help
Are the users API keys returned in the account object returned from the account get?
@wary spade During the OAuth flow we generate a secret and publishable key pair unique to your connection to the account, but we strongly recommend against using them. You should use the account's ID with the Stripe-Account header instead: https://stripe.com/docs/connect/authentication
regarding this, how could I retrieve metadata from the original subscription? I'd like to be able to differentiate between subscriptions and one-time payments, because the latter are handled by the user on the website but the former require a notification to the user so they can take action...
Ok, thank you
@rigid ridge Payment Intents have an invoice property, and Invoices have a subscription property, so you can get back to the Subscription that way (or determine that no Subscription exists).
Using .Net the account id should be parked in the 'request options' payment intent, customer, and ect?
okay, so as I am also using schedules, could I expand the invoice by subscription.schedule or would I get an error if the subscription doesn't belong to a schedule?
@wary spade I'm honestly not that familiar with .NET, but if you share the code you're trying to write I can usually figure it out. π
@rigid ridge Subscriptions have a schedule property that leads you to the Subscription Schedule that's currently attached to them: https://stripe.com/docs/api/subscriptions/object#subscription_object-schedule
yes, I did see that, but what I am wondering is if when expanding by any attribute if it doesn't exist, what does the API do, does it throw an error or just returns a null on such attribute?
@rigid ridge It would return null.
Ok, thanks a lot!
When specifying PaymentMethodOptions we're currently testing with a type = "card" which simulates a credit card nicely, how can we simulate an ACH / E-check?
Using which API?
The Charge API? Sorry I forgot the exact name, this is the API exposed in the NuGet package for .Net, Where the payment is actually being sent with a payment intent object.
I think it's actually the Payment Intents API*
You're likely using PaymentIntents, but regardless, PaymentMethods don't support ACH yet. You have to use the older Sources API https://stripe.com/docs/ach
Ok
Hi
It looks like this avenue is going to bring us to a similar issue we had to find a way around before. We're consuming the Stripe API headlessly and cannot submit any javascript to the user. We're currently using a PaymentMethodCreateOptions object that take a type "card". We'd need something similar like that. I think it was actually you, @sick talon , that was able to point us to that option. You can't think of a similar approach for ACH, can you?
We see an AsccDebit, and a BacsDebit object where I would expect to see something able to ship ACH data over to Stripe.
Since ACH isn't on PaymentMethods yet, you can't use it with PaymentMethodOptions. I know it's something we're working on so while I can't guarantee anything, wouldn't hurt to ask the support team via https://support.stripe.com/contact/email in case there's a spot if/when it goes into beta.
Thank you. Sorry for the redundant question. I'll follow up there.
No worries! Hopefully they can get you into whatever might be available.
Hi all. I want to avoid to do my payment with the Blue card network. I only want to use Visa and Mastercard network. I have no problem to manage it with the payment intent and by checking the network. But, I would like to do the same for the subscription. Is it possible?
What is a blue card network? Never heard of it.
But otherwise it depends a bit on your integration and how you create subscriptions and how you collect cad details
I don't know how to say that. It's a french translation. Maybe it' better to say that I want only use the Visa and Mastercard network. I can do it for payment. But I would like to do it for subscription created on Stripe
The easiest is to use a Radar rule to block cards of a specific brand.
And yeah okay you mean a CB, why would you want to block those cards? They are co-branded Visa/Mastercard and "just work"
Hi. I'm trying to understand the PaymentMethodUpdateOptions (im trying to update a payment method). There's a variable there called order_id that has a value of 6735. What does order_id do? Does 6735 change or can i keep it like that forever?
@ebon raptor it's just a basic example of how to set metadata. order_id has no specific meaning beyond that, it could be kriss_1234 too. https://stripe.com/docs/api/metadata
Ah, thank you! I'll just get rid of it then.
Hi there! I'm looking for an answer to a question I haven't been able to find online regarding future payments with the Payment Request Button. I was wondering if it's possible to instead of creating a payment intent, to setup a payment intent, and associate the payment_method_id of the card returned from Google Pay to that customer record to be charged in the future. Does anyone know if this is possible?
Hello! Yes, you can definitely use the payment request button to save the payment method for future usage. If you don't want to accept any payment upfront, you would use a SetupIntent instead of a Payment Intent at this step (https://stripe.com/docs/stripe-js/elements/payment-request-button?html-or-react=html#html-js-create-payment) and use stripe.confirmCardSetup instead of stripe.confirmCardPayment. If you want to accept payment when the card at the same time, you would still use a PaymentIntent but make sure to set setup_future_usage (see https://stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage) so it can be attached to a customer for future use
Collect payment and address information from customers who use Apple Pay, Google Pay, and browser-saved cards with Payment Request APIs such as Microsoft Pay on Edge.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Amazing! Thanks for the quick reply, really appreciate it. I'll take this back to the team and we'll get working on it π Thanks again.
Hi, is it possible to set up a test user with a default payment method that uses an invalid card or expired card? The CLI won't allow me to attach an invalid card payments_method to a user. I'm trying to test a subscription plan where the default_payment_method is expired or insufficient funds
You can check out https://stripe.com/docs/testing. There is a section there to test for specific errors.
Yup, that's definitely possible! When attaching the card to the customer you can pass the undocumented parameter validate: false , allowing you to attach a card that will fail for a specific reason. You can also use the test card 4000000000000341 w/o passing validate: false. That test card can be successfully attached to customers, but any charges made with it will be declined
I'm trying to update a payment method, essentially modifying it and saving the changes. I have this code, but i keep getting the error message:
Received unknown parameters: cvc, number. This code should work, right?
// Update card details
var options = new PaymentMethodUpdateOptions
{
Card = new PaymentMethodCardOptions
{
Number = txtCardNumber.Text,
ExpMonth = Convert.ToInt32(txtExpMonth.Text),
ExpYear = Convert.ToInt32(txtExpYear.Text),
Cvc = txtCVC.Text
},
};
var service = new PaymentMethodService();
var cardCreated = service.Update(Properties.Settings.Default.stripeSelectedCard, options);
Ah thanks, perfect
No, that won't work. You can't update the cvc and number after creation, only the expiration month/year. If you look at our API ref (https://stripe.com/docs/api/payment_methods/update#update_payment_method-card) you can see that expiration month and year are the only two parameters nested under card
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
aah, so they're basically not ever gonna get modified after creation?
They could get modified after creation as part of automatic card updates (https://stripe.com/docs/saving-cards#automatic-card-updates), but this information wouldn't be updated as part of an API request
Learn how to save and update card details to charge customers later.
Fair enough, well thank you for your response. You saved me some time. You better be getting paid by the hour for sitting here all day answering questions
Is it possible to add a note on receipts saying "Total includes GST"?
I don't know of one off the top of my head, but let me look into some possible options. Can you give me some more details about your integration? Are you working with invoices? payment intents? These are the receipts that stripe sends automatically for successful payments, correct?
Yes the receipts sent via email upon successful payments, I just want to include a note saying it is tax inclusive
W
w
w
i got a question though
on stripe do people in the UK
have to wait 7 days after their first payment?
Or is it like instantly or 1 - 2 days ?
what is this spam lol
I believe the only way to get this information into your receipt would be to make sure that you set the description of the payment intent.
On stripe do you have to wait 7 days with all payments if you live in the UK, or is it like instantly?
or 1-2 days
I believe the UK has a 7 calendar day payout timing - but it also depends on what industry you're in.
Oh alright thanks
Fr .
How much rev do u think u should have to get faster payouts @dim hearth
Im new to stripe
In my integration with Stripe I plan to have two accounts (US and Mexico); I intend to have the
deliveries of the product in each of the countries associated with the account.
My Doubt is:
It means that in my integration with Stripe, I must make sure that my clients and their bank details are corresponding
to the country associated with the account.
That's really a better question for support (https://support.stripe.com/contact). This channel is good for integration/developer questions, but we don't know very much about account-specifics and anything that has to do with regulations
Yeah, @vocal wagon I was thinking and I figured It is better for support, you should DM them right away.
I was thinking around 100K$ Revenue.
Is there another stripe discord server @dim hearth
Where u can get support for any topic
The link I sent you (https://support.stripe.com/contact) has all the ways you can contact them (chat, phone callback, email). If you want to skip straight to an email form you can go to 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.
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 my integration with Stripe I plan to have two accounts (US and Mexico); I intend to have the
deliveries of the product in each of the countries associated with the account.
My Doubt is:
It means that in my integration with Stripe, I must make sure that my clients and their bank details are corresponding
to the country associated with the account.
thankss
Was just about to respond to your earlier message! Yes, you would just need to ask your customer for their billing/shipping address and then process the payment on the correct account based on that info
@dim hearth This week my US account was canceled because a customer from Mexico processed a payment to my US account, should I create a rule in my account to only accept US payments?
have you written into support about this? I don't know the specifics about why your account was cancelled, and support should be able to look into your account and give you more details on how to prevent it
@dim hearth that's how it is,
this was his answer.
We are very sorry to inform you of this, but as indicated above, although the business data is related to a company in the United States, it is best to have the account in the country from which the purchases of your product are made, in this case Mexico. For which, you should register for an account in that country with a business address in Mexico.
That is why I was commenting if I should validate the rule, I will speak by phone to see if I can reestablish that account since the payment processed was from the development area in Mexico.
@dim hearth thanks
Yeah, support would be the best people to ask about this (this is a restriction that I haven't heard of) - I'd specifically ask if they would suggest using radar to block charges from Mexico on your US account.
Hey, how do you speak with stripe support?
Hello! If you have a developer/integration question you can ask here. If you have a non-technical question or need account support you should go to 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.
I wanted to know if my account is set up correctly to receive event payments from my humanitix event
Is humanitix a third-party plugin/extension you're using? If so, you should be asking them since we don't have any insight into what each plugin needs to be properly set up
its connected on their end. I am unsure if i put in bank details with stripe when setting up the account?
I'm getting an error saying Cannot convert type 'string' to 'stripe.PaymentMethod' when trying to update a customer and change their default payment method. How can i set this up properly?
var optionss = new CustomerUpdateOptions
{
InvoiceSettings = new CustomerInvoiceSettings
{
DefaultPaymentMethod = Properties.Settings.Default.stripeSelectedCard
}
};
var services = new CustomerService();
services.Update(Properties.Settings.Default.stripeUserID, optionss);
If you're accumulating funds in a stripe account, then yes, you would need to add bank account details in order to eventually payout.
Hm... Is Properties.Settings.Default.stripeSelectedCard a String?
That string is the id of the payment method
pm_15316361 etc
Ah! I see it now - try using CustomerInvoiceSettingsOptions instead of CustomerInvoiceSettings
ah man, are u kidding me lmao
The error went away atleast, well lesson learn i suppose. Thank you.
no worries! Happy to help π
Does anyone know how to change the API ID of a Price? I used to be able to do this (green arrow) and now I don't see a way to change it (red arrow)
You can only do this when creating a Price via the dashboard, after it's created you can't rename it
Hi, I have a question regarding the fixed-price subscription example from https://github.com/stripe-samples/subscription-use-cases. I got everything to work but I noticed that my billing details from https://github.com/stripe-samples/subscription-use-cases/blob/master/fixed-price-subscriptions/client/react/src/Subscribe.js#L53 are not showing up in my Stripe invoices. Is this expected?
It is because those billing details are on the PaymentMethod level instead of the Customer level. You'd want to set the Customer's address for it to show up on the invoice: https://stripe.com/docs/api/customers/update#update_customer-address
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 see. Can I view the PaymentMethod billing_details from my Stripe dashboard?
Yup, should be able to
Ah, found it on the Payments > Payment method. Thanks!
Hello, Is there anyway we can create shipping id programatically?
What shipping ID are you referring to here?
Sorry, shipping rate π something like shr_1Ia7XTKi4uKc5BBeDA1234
I could not find to create it with SDK
I believe it's a dashboard only feature
I see
Hi! Question for you on the Checkout API and exporting transactions from the Dashboard. Is there a way to get the client_reference_id or any other identifier assigned by the merchant (eg, invoice number) in the transaction export to CSV? There seems to be a description column in the export, but not sure how to write to it from the Checkout session. There doesn't seem to be a description property on the session object. Thanks!
Reporting isn't something we know a ton about here. You could definitely build a reporting tool with the API to get this info, but I'm not sure if it's part of the Dashboard export or if it's planned to be included. Maybe check in with Support? https://support.stripe.com/contact/email
Thanks I'll ask there
You're welcome. π
Hello, please i would like someone to explain me what they are calling VERSION and how Can i get it.
Does anyone know where I can find bug fixes for https://github.com/stripe-samples/subscription-use-cases/tree/master/usage-based-subscriptions
It's the version of stripe-java you want to use: https://github.com/stripe/stripe-java/releases
Can you elaborate what you mean? You want to submit a bug fix or report a bug?
@grim bison Please could you help me to setup the P24 payement Option on my Shopify Store ?
You can find a P24 guide here: https://stripe.com/docs/payments/p24/accept-a-payment?platform=web
Learn how to accept Przelewy24 (P24), the most popular payment method in Poland.
@teal phoenix If you're using Shopify then you should reach out to Shopify support directly for help with getting P24 on your store
Hi there. Need some help in integrating proration in my application
https://stripe.com/docs/billing/subscriptions/prorations I undertstand to get the new total after proration I should be looking at "subtotal" in the response
However in my test it seems to be giving a different value
it returns the sum of the current plan + new plan
Am I missing anything?
Learn about prorations.
I've read it several times already and have been trying for 3 days already, but can't seem to do so. Help me please..
Ok
Are you looking at a previously created Invoice after updated prorations? If so prorations won't be retroactively applied, only for new invoices. You can preview what that would look like by using the upcoming invoice API: https://stripe.com/docs/api/invoices/upcoming#upcoming_invoice-subscription_proration_behavior
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Here is my problem with the integration when I get to the last page to enter the card number. It does not work https://v2uploads.zopim.io/R/m/R/RmREdxtJY6wntrxzsaDPMTQeaAlLN7H0/9707d2ea7273918fb9020c870f99f6c0fe610db6.png
On the left is my application on the right is the demo site
hi, sorry and please, help if you know
cant find how I can integrate Stripe with SendGrid or, if cant, how I can send Welcome email to subscribe users ?
I am looking for what is causing this error message
That error means you're getting back an error from your server. I'd check your server logs or the network tab in your browser console to see what the error message is
You can configure Stripe to send invoices for subscriptions via the dashboard: https://dashboard.stripe.com/settings/billing/automatic
@bleak breach There is nothing in the server error log
@inland coral If you're looking to send a custom email then you'd look into using a service like sendgrid. There's no out of the box Stripe integration, but you could use a service like zapier: https://zapier.com/apps/stripe/integrations/sendgrid
That error means that the response you got from your server wasn't valid JSON so the parsing failed. I'd log out exactly what you're getting back from the server.
@bleak breach I think I have found the issue being a call to the config file and the json is not coming back correctly
@bleak breach Something is not right about the config
@bleak breach the config file starts with if (PHP_SAPI == 'cli-server') {. It is not configured to return anything
Okay, perhaps you should change that?
@bleak breach ok, I will change it so that it gets the publishable key
that is the ultimate information that line 578 of the script.js is suppose to return
Thanks @bleak breach
Hi guys, Iam just struggling little bit with serving apple-developer-merchantid-domain-association file in react app. What is the best way to do it for local development? I was trying to add this to index.html, but it doesnt seems to work.
<link rel="apple-developer-merchantid-domain-association.txt file" href="%PUBLIC_URL%/.well-known/apple-developer-merchantid-domain-association.txt" />
Thanks!
You'd want to serve the file as a static file via your web server. For instance if you're using an express backend you'd use this: https://expressjs.com/en/starter/static-files.html
Great idea, I will try this. Thanks!
Watched Josh Ackerman appear as guest on Automate All The Things https://www.youtube.com/watch?v=beE5w45N4Vs&t=2795s and he mentioned if we needed help with Payment Links and Api calls to contact Support. The help I need is to send the customer's Airtable record id to Stripe and when the Airtable webhook checkout session completed is received back to Airtable the data includes the customer Airtable recordid along with the pennies product price and customer email address. I've got the latter two functioning correctly, however not sure how to supply Stripe the customer recordid and receive it during the checkout session completed webhook.
In this stream, Josh Ackerman, PM @ Stripe is showing us how to use Stripe payment links. Stripe Payment Links lets you sell a product or subscription by sharing a link to a payment pageβno code required: https://stripe.com/payments/payment-links
Get the base: https://airtable.com/shrJ1nzfaRWVQsRf7
Agenda:
- Intro with Joshua Ackerman of Strip...
Well, seems like its working. ( When I go to http://localhost:4242/.well-known/apple-developer-merchantid-domain-association) its download the file. Should work like this right? But if our website is for example www.page.com and our server is at www.server.com. To get a file I need to go to www.server.com/.well-known/apple-developer-merchantid-domain-association but well I need this file at www.page.com right?
If that link prompts the browser to download the file then it's working correctly! You'll need the file to be on the same domain that you registered in your Stripe dashboard settings: https://dashboard.stripe.com/settings/payments/apple_pay
To be super duper safe you could just host the same file on both domains. The file is the same for all Stripe accounts π€«
So this might not work right now if you're using just Payment Links. If you want extra data to be included with your Checkout Session you'd have to create it yourself and provide metadata: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-metadata. Payment Links will eventually be supported via the API where you'll be able to add metadata, but for now you'd have to create the Session yourself
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ou thanks for answers. But than is it even possible to test it localy? If I start my client at localhost:3000 and server at localhost:4242 or whatever... Than I see no way how to do it. At least in React
You'll need to expose your local environment to the wider internet for this to work anyway. You can use a service like ngrok for that.
Once you have ngrok set up it'll create a domain like <id>.ngrok.io. You then add that URL to your Apple Pay settings in the Stripe dashboard as <id-goes-here>.ngrok.io. Apple will then be able to "see" the file and the Apple Pay button will be able to be rendered
You'd test this yourself by making sure that <id>.ngrok.io/.well-known/apple-developer-merchantid-domain-association prompts you to download the file
Ok, sorry this my first project where Iam also working on backend so its quite new to me. Iam using ngrok in my work so I got some idea how this works. But still if I made tunnel like ngrok http 3000 and I will get URL for example (https://c8d33c3b94d.ngrok.io/) and I will go to https://c8d33c3b94d.ngrok.io/.well-known/apple-developer-merchantid-domain-association it wont work because this association file is served by server which is at different domain
or is there any way how to run server and client at same port?
Yes I believe so, have a look here: https://stackoverflow.com/questions/25522360/ngrok-configure-multiple-port-in-same-domain
Is it possible to open multiples ports in ngrok in same domain?
Something like:
Fowarding http://example.ngrok.com:50001 -> 127.0.0.1:50001
Fowarding http://example.ngrok.com:50002 -> 127.0.0.1:...
You could configure your apple pay settings to for instance look at https://c8d33c3b94d.ngrok.io:4242/.well-known/apple-developer-merchantid-domain-association , assuming that port 4242 is where your server is
This is awesome, I will look into this thank you very much!
Hello everyone ! @meager hawk Yesterday , I asked for help regarding my payment and transitioning from Charges to PI APIs . Your advice helped me , now I have a PI (in init) that's charging the dress, on the front part I have confirmCardPayment ,and later on I have a PI for the deposit of the dress , that needs to be captured . So far , so good, but the only problem I have left is that my deposit payment ends up incomplete... so, so far it was failed, so I guess this is a progress haha . I can share my snippets of the code if needed .
@grave magnet do you handle 3D Secure on the second payment (what you call the deposit) if it's required? You do still need that part, as I said yesterday, you can't assume the payment doesn't require it, and you need a way to contact the customer to authenticate it.
https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session
You need to notify your customer to return to your application (e.g., by sending an email or in-app notification) to complete the payment. Check the code of the Error raised by the Stripe API library or check the last_payment_error.decline_code on the PaymentIntent to inspect why the card issuer declined the payment.
If the payment failed due to an authentication_required decline code, use the declined PaymentIntentβs client secret and payment method with confirmCardPayment to allow the customer to authenticate the payment
Hey! A quick question π β¨ I am creating a webhook for the connected accounts feature I am coding, should I create the endpoint under βendpoints receiving events from your accountβ or βendpoints receiving events from Connect applicationsβ. Iβm not sure if the βConnectβ in the second option is a reference to stripe connect π
@vocal wagon it does refer to Connect , see https://stripe.com/docs/connect/webhooks#connect-webhooks . As for which section the endpoint you add should be, it depends a little. For example if you use Direct Charges then events like charge.succeeded and such, happen on the connected account so you need a Connect endpoint to listen to events created there if that's the goal.
thank you so much! π
No, I don't handle it, how am I supposed to handle it if it's off-session ? I just want the deposit amount to be captured, if the first PI is already authorized and successful , I don't understand why I need 3D again ? My confirmCardPayment is done after form submit, so is creating deposit PI. That means that another confirmCardPayment must be done after the form is already submitted
Which is basically impossible, cause after successful or failed payment, coresponding URL's show
ok! are you sure you need a second off-session PI then?
like maybe you just need to capture the first one? https://stripe.com/docs/payments/capture-later#capture-funds
it depends really!
but if you charge the customer's card twice, that 's two separate payments, and any payment attempt can require 3D Secure at any time, regardless of past activity.
I've tried capturing but the deposit is much more amount than the dress
I can try again to tweak my code
then you either : a) authorise a larger amount on the first payment upfront
or b) charge the customer again for the excess amount(so the amount of the deposit needed) off-session
if you do b) then you need to implement a recovery flow for declines and 3D Secure as I quoted above.
The problem with a) case is that after form submit it does a confirmCardPayment and I can't capture the amount anymore ....
you can, confirmCardPayment is not related
sounds like you are not passing capture_method=manual when creating the PaymentIntent ? https://stripe.com/docs/payments/capture-later#authorize-only
Separate authorization and capture to create a charge now, but capture funds later.
if you did, then all confirmCardPayment does is handle 3D Secure, and authorise(hold) the funds on the customer's card. Then you can capture them later at your leisure.
Okay, let me try tweak a code a bit then
Hey guys when I am putting a payment through for installments, the invoice is being created but when the payment fails it is still creating a subscription and attempting the payment again for the 2nd installment, any ideas?
On the test it creates the customer then shows the payment failed and nothing else is created.
@dire quarry hi! not sure I entirely follow, is there a specific guide you're following about creating installments on Stripe? Can you share the sub_xxx subscription ID so I can have a look?
Ofcourse the ID is sub_Jlmiyd0n1PXzbE thank you
ok, I'm looking but I'm have a really hard time understanding the issue, could you explain it another way or what you expected to see versus what you actually see?
I suppose you are following https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#installment-plans ?
For that transaction the card was declined due to insufficient funds but it has still created the subscription for the remaining payments
When I use the same code in test mode it creates customer and that's it
yep! That's intended when using subscription schedules
does your test maybe directly call SubscriptionService.create instead?
when you use Schedules it works a bit different, it always creates the Subscription and the first invoice works like a "recurring" one so it goes through the process of trying to recover a failed payment
@meager hawk I managed to get this https://i.imgur.com/1IAw2rb.png.. The only thing I don't like is the refund for the amount of dress... It should be charged :/ this is my dump of the completed charge https://i.imgur.com/Eql8t2w.png
Yeah I am using subscriptionschedulecreate, should I do it another way or is there a way to handle if the payment fails not to try and recover the failed payment
@grave magnet not sure I follow, can you elaborate? It's a partial refund because you charged(authorised) CHF 280 and captured 200, so the remaining 80 is returned to the customer. And your second image looks like a different payment entirely(different amounts)
@dire quarry I think the easiest way is to listen for the invoice.payment_failed webhook event and if it's this case of the first payment failing, you can call the AP to cancel the subscription
are you sure you want to though? Does it not make sense to let the payment retry a few times and then have the subscription get automatically cancelled?
it's controlled by your settings at https://dashboard.stripe.com/settings/billing/automatic e.g.
That was my thought unfortunately the that's not how they want it to work. I think I will have to go with if the invoice.payment_failed event is sent then cancel the sub
The only issue I seen was that even if I cancel the subscription it says that pending invoices will still be charged unless manually deleted?
makes sense! Unfortunately yeah, SubscriptionSchedules are a little weird here, since they process the first payment as a recurring payment and thus are meant to work that way, where the first payment gets retried automatically and follows your settings.
The pending invoices shouldn't get charged : https://stripe.com/docs/api/subscriptions/cancel "By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription."
Thank you very much for your help Karl, I'll go back and show them the smart retries settings hopefully they understand it better and go with that lol again thanks for the help mate, have a great weekend!
Morning, I was hoping to get some advice on fixing a problem I am having with the @idle cloud/stripe-react-native library
I am running in to this issue:
But I am not using expo
so I was wondering if there was any recommendation for those with the same issue in a bare react native app?
@atomic leaf I'm not sure unfortunately, I'd suggest opening an issue on the Github repo with the full context and we can try to help!
ok, thanks
I'll continue looking into it for a bit
I'll come back if I find anything
Yes, I'm sorry , wrong screenshot of the dashboard https://i.imgur.com/Yx9NKDd.png -> this is the correct one ... I don't want it to be refunded to the customer, I want it to be charged , I want to keep the 30 and later refund the 80 if the dress is fine
hmm
then I think you want to capture the full 110 in your example(so not a partial capture), and then if you need to later, you can issue a partial refund.
But that's really awkward and it's a poor customer experience because doing a separate refund might take a while to land back in their account.
It takes 5 to 10 days which is a terrible customer experience..
I'm a little lost unfortunately. Usually what you would do is authorise the 110. That guarantees you those funds, and you can authorise a little more than you need(like say it's $30 with a $80 refundable deposit, so you authorise $110). When you can fulfill the customer's order, you capture as much as you need from it($30) and the customer gets back the rest.
yep but releasing an authorisation/held funds is usually much faster which is why you usually do it the way I'm describing above, you capture what you need and rest gets released back to them, you don't capture the full amount and then refund later.
So, I want to autorize a total amount (30 - dress + 80-deposit) and I want to take 30 from them, they are paying the dress, so I need to take money, and I need to capture so I could take OR refund later (if fe - order is canceled after I already sent out a dress)
So far, I am authorizing everything but it's refundind the dress, I want to charge it
Thats why I was creating 2 PI's ...One for the dress and second one for the deposit
I see. So sure, you can absolutely do that too(the b) option I mentioned), it works too since it seems like maybe the "one auth, one capture" model doesn't fit here.
like all payments attempts you need a recovery flow for if charging the second payment fails(it could be declined for any reason or require 3D Secure) so you e.g. would email the customer to get them to come back and enter a new card or retry the payment.
the reason I'm suggesting the "one auth, one capture" model is because it's a little easier, since the capture can never fail or be declined so it's more simple if things can be modelled that way, but it won't work for all business needs of course, which is fine and you'd do two authorisations/charges instead.
But I don't have that kind of a flow, I don't have pages, I don't have design for returning urls ... That's a lot of work and money for such a simple business flow.. I don't understand , I can't find examples of a similar code like mine, I mean , hotels work in a similar way also ...
I've been strugling with this since the June 30
First I had no response from support, than I had to come here and ask for a help from developers, like myself
I'm afraid that's just what's involved in building something like this!
If you want an easier option you could maybe send the customer an invoice for the deposit amount : https://stripe.com/docs/invoicing/integration so they can pay it on a hosted page that manages the payment without you having to build a separate page; there's a few ways of doing this and it depends on your needs/resources.
Hello. Which version Java API on https://mvnrepository.com/artifact/com.stripe/stripe-java corresponds to https://stripe.com/docs/upgrades#2020-08-27 please?
Keep track of changes and upgrades to the Stripe API.
@cosmic galleon anything after v20.0.0 is pinned to that API version : https://github.com/stripe/stripe-java/blob/master/CHANGELOG.md#2000---2020-08-31
to be clear each release of stripe-java makes API requests using a specific, pinned API version(because it's the only way to consistently be able to parse responses with a typed language) and the pinned version can change in major(https://semver.org/) X.y.y releases of the library, for context(not sure what your higher-level question here is about but happy to try to help!)
I've been using 20.41.0 and getting empty optional in event.getDataObjectDeserializer().getObject(). Somewhere in an example in stripe docs It mentions that this could be because of API version mismatch.
yep!
Hello, me again π
I have been setting up a test connect endpoint on the dashboard (www.our_company_website.com/connect_webhooks) and have being trying to listen to this in the terminal, forwarding to the above endpoint, however the signing in secret is the original /webhooks one that we already have for something else, and I canβt seem to get it to be the new connect signing in secret, code snippet from the ConnectWebhooksController:
event = Stripe::Webhook.construct_event(
payload, sig_header, Rails.application.credentials.stripe[:connect_webhook_secret] )
routes:
resources :connect_webhooks
get '/connect_webhooks/create'
Any advice on where I might of gone wrong would be great π
@cosmic galleon if you use that version it can only deserialise events that use that 2020-08-27 API version(because of the consistency in a typed language thing I referred to). The version that events are sent in is usually your account's default version : (as seen on https://dashboard.stripe.com/test/developers )
the easiest fix here usually is to delete your endpoint and create a new one pinned to the latest version when you update to the latest stripe-java release
Ok I'll try that. Note im also using the CLI to forward webhooks to local machine
then you can use https://stripe.com/docs/cli/listen#listen-latest as a quick fix
@vocal wagon you want to do stripe listen --forward-connect-to localhost I think https://stripe.com/docs/cli/listen#listen-forward-connect-to
but to be clear the secret that CLI uses is unique to CLI
it won't be the one for the endpoints on the dashboard, it's always the one it prints in the terminal and that's what you'd configure your test endpoint's application code to use
so I think that's the confusion there
I think it's a little clearer now π I see what you mean, the signing in secret that keeps appearing in the terminal matches what's been configured in an encrypted file, but doesn't match the dashboard. I also have connect_webhook_secret added to the encrypted file, but was using what's on the dashboard, so I was confused indeed! Thanks again for the help! π
Still getting an empty optional. I was using existing webhook flag ( -a ) but removed that and forwarded with stripe listen --forward-to localhost:8080/api/PSPListener --latest
That still give me the empty optional on Stripe java API version 20.41.0
@vocal wagon no worries. Basically when stripe listen forwards the event to your local server, it signs the contents using that secret it prints specifically.
@cosmic galleon could you share the evt_xxx event where that's happening?
evt_1JBHMtBB4DVfNPpt5OR6meak
hmm. That feels like it should be working, all looks normal enough . Which I know is not very helpful so let me dig a little bit
for now maybe just try unsafely deserializing it and see if any downstream code complains?
Optional<StripeObject> obj = event.getDataObjectDeserializer().getObject();
if(!obj.isPresent()){
try {
// this might fail if the the event is sufficiently different
// in this API version from the model used in stripe-java for that object.
// see https://github.com/stripe/stripe-java/wiki/Migration-guide-for-v9#event-deserialization
session = (Session) event.getDataObjectDeserializer().deserializeUnsafe();
} catch (EventDataObjectDeserializationException e) {
logger.error("failed to unsafely deserialise event : " +e.getMessage());
response.status(400);
return "";
}
in your case you want to cast to SubscriptionSchedule instead(and I'm assuming you have like SubscriptionSchedule sched = null; just above that snippet, sorry, should be clearer
Hi everyone,
is it possible we can charge commission without on_behalf
@dreamy karma hmm, yes, you can always collect a fee in all models of Connect, the docs for the specific funds flow you're integrating will describe how.
@meager hawk deserializeUnsafe(0 throws a java.lang.NullPointerException
at com.stripe.model.EventDataDeserializer.deserializeStripeObject(EventDataDeserializer.java:55)
at com.stripe.model.EventDataObjectDeserializer.deserializeUnsafe(EventDataObjectDeserializer.java:142)
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'payment_intent_data'=>[
'transfer_group'=>mt_rand(000000000,999999999),
],
'application_fee_amount' => 31200,
'line_items' => [[
'price_data' => [
'currency' => 'gbp',
'product_data' => [
'name' => $brief->title,
],
'unit_amount' => $invite->budget*100,
],
'quantity' => 1,
'tax_rates' => [$user->tax_id_stripe],
]],
'mode' => 'payment',
'success_url' => 'http://127.0.0.1:8000/order/success?session_id={CHECKOUT_SESSION_ID}&invite_id='.$value.'&brief_id='.$invite->brief_id.'&pr_id='.$invite->pr_id.'&title='.$brief->title,
'cancel_url' => 'https://example.com/cancel',
]);