#dev-help
1 messages · Page 115 of 1
Hi
Hey there, I am a Stripe user with the GAA Foireann system and I think I set my account up the wrong way. Would I be able to get some assistance on it? I am conscious we have registration deadlines/insurance deadline and would appreciate some assistance on it.
@acoustic saddle hello there
@warped plume https://support.stripe.com/email can help.
I've sent an email here 3 times and I have received no reply, this seems like a last resort.
This is a chat for developers with technical questions about writing code about using the API, I'm unable to help you, sorry.
Hi again Karllekko,
I've been thinking about it. You are instructing me to generate a token, and then using this token - to generate a paymentMethod. And then run the PI request with that pm_id.
As I am PCI level1, Can I pass from the beginning in the PI request as such, and hence avoid creating a token and a pm_id (2 additional API requests)
This is inside my PI request creation today:
var options = new PaymentIntentCreateOptions{ //setting Amount, and etc.. }; options.AddExtraParam("payment_method_data[card][number]", "4580442620514608"); options.AddExtraParam("payment_method_data[card][exp_month]", "12"); options.AddExtraParam("payment_method_data[card][exp_year]", "2023");
So, to that, I'll simply add the additoinal ApplePay related fields, as such:
options.AddExtraParam("payment_method_data[card][cryptogram]", "{base64cryptogram}"); options.AddExtraParam("payment_method_data[card][eci]", "05"); options.AddExtraParam("payment_method_data[card][tokenization_method]", "apple_pay");
effect should be the same, right?
it should be but that won't work
those extra fields like cryptogram and tokenization_method don't exist inside payment_method_data , they're only part of the Tokens API at the moment and we didn't port them over.
You can try it but I think you'll find the API will reject the request and you have to use the approach I described.
I am trying to edit capabilities from the dashboard for the following test account acct_1J6O4W2XeRtNInC6 and I am getting errors now "Couldn't load page"
this starts happening when I disable some of the capabilties
Are you guys able to edit it for any account which has this combination of capabilties?
hmm that looks like a bug more than anything
maybe, But I was able to edit it just a second ago but as soon as i had this combination. it stop working
yep, as I say it's likely a bug.
I'm trying to understand what you did, you removed both the Transfers and Card Payments capabilities?
yeah I was able to reproduce it at least, by having an account with Transfers+Card Payments + SEPA Payments, and then removing the first two. If you refresh though the page seems fine, so hopefully you're not completely blocked
will raise the issue
The bug is in Transfer. I added back via API and it worked
is it possible to check a SubscriptionSchedule from the dashboard?
if there is no transfer, then you can't edit it
stripe.error.InvalidRequestError: Request req_OE7ZQrm2WuhLYn: Accounts do not currently support `card_payments` without `transfers`. Please visit https://stripe.com/docs/connect/account-capabilities#card-payments for more details.
seems like transfers must be enabled before adding more or editing.
@rigid ridge should be! Can you expand on what you're tying to do/check exactly?
Yep, but on the dashboard I can only see the current price and the next charge, no further charges
@upbeat grove yeah it's related to https://stripe.com/docs/upgrades#2019-08-14 The card_payments capability has been updated to no longer imply transfers. You’ll now need to additionally request the transfers capability when creating an account. , the dashboard shouldn't let you do this and only add Transfers without Card Payments. As I said it's a bug on our side we'll need to fix(probably an old code path getting hit) and I'll raise it internally, the request ID is helpful, thank you!
@rigid ridge ah ok. You can click the "update scheduled" bubble to get some more information at least, see this screenshot for an example :
but yeah I don't think there's a direct preview of "this invoice will be on date X for amount Y, then the next is date X2 for Y2, then the next...." per se.
that's what I was looking for, I only saw the next invoice info below the subscriber e-mail, thanks!
I am trying to get the payment intent of the subscription schedule by expanding subscription.latest_invoice.payment_intent but I get nothing even though I set "collection_method": "charge_automatically" and "default_payment_method": payment_method,
@rigid ridge does that invoice have an amount or is it $0?
yes, it says "amount_due": 35450 and "amount_remaining": 35450
but it shows "attempted": false
Has the invoice been finalized already? SubscriptionSchedules don't charge immediately so you might need to finalize the invoice
hmmm and how could I do that when creating the schedule?
:question: Have a question about your account @junior terrace?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
@rigid ridge you don't do it on schedule creation. You do it after the schedule is created
hmm okay, but by setting "charge_automatically" the next charges will be charged on the scheduled date, right?
yes, it's just that we don't automatically charge upfront
Hi there,
I have a crazy issue occuring on the validation payment process.
it shows $0 after the user clicks on the purchase button while processing the order.
it is really confusing for the user experience.
do you mind helping ?
HI
@vocal wagon Are you the developer? Or do you use a third-party plugin for accepting payments?
I integrate stripe with clickfunnels to process payment
@vocal wagon then its a quirk of their integration and you should talk to them directly!
I understood the validation process was handled on Stripe side
@oblique trout What's your question exactly, it's just a screenshot
Keep clicking start but no response
and can't fing issuing in settings now
i got stuck on issuing application before 30 minutes
@oblique trout you should talk to our support team directly https://support.stripe.com/contact/email
Hey all
I'm trying to login to stripe but dont know my password, when i click forogtten password it says 'unable to reset password because this account does not use a password to sign in'
Then when I try to create a new stripe account with the same email im told i already have an account. really stuck, any ideas please?
You want to use the "can't login or don't have a Stripe account" link on https://support.stripe.com/contact
That'll get you to the support team
if you don't see the link, try https://support.stripe.com/contact/email directly
Hi. We are setting up an express account. If we wanted to, would it be possible to: A, not allow the usage of AMEX cards, B, allow AMEX but charge an additional fee to the client for this, or C, offer the client a choice of A or B.
I would suggest reaching out to the support team about that as while technically possible, the networks don't always like it when you block specific brands. https://support.stripe.com/contact
General question: I know that Stripe stores all times as UTC but what is the customer experience in regards to subscriptions with fixed billing anchors for someone in australia (UTC+10) or some other timezone.
What specifically do you mean by the experience? The end customer would never see the API object's timestamp directly.
When they sign up it says we're going to bill your first payment on the Xth day of the month. Could they because of the timezone be billed on say the day before or after from their perspective?
If they're viewing an Invoice, etc. on Stripe directly via the browser, it will localize to their time zone settings on their device.
You can see it in action in test mode if you change your time zone on the computer you're using.
Yep I'm aware that any browser interactions are localised, but what about the actual charge they see on their statement?
We have no way of controlling what the issuing bank displays on a statement. I'd guess it will be the local date of wherever the bank is.
Yes, of course, that's what I'm trying to understand. So it would be possible for someone to be billed on an incorrect day from their perspective?
hey all, i'm working on a magento 2 site that has the stripe payments extension installed, we're currently testing google pay however the transactions always fail because the telephone field is marked as required during checkout - is there any way to get gpay/stripe to send a phone number in these cases?
I'm sorry if I'm in the wrong place but I've looked elsewhere to figure this out with no luck. Does anyone know if it's possible to create a customer input form that collects only their payment info and email, without collecting a payment? If so can you please point me in the direction to set this up?
We'll attempt to process the charge on or after the next billing timestamp (UTC) in https://stripe.com/docs/api/subscriptions/object#subscription_object-current_period_end and no earlier. It won't be earlier than that. If they're viewing the Invoice on Stripe, it'll show the date local to their browser.
We don't support Magento directly here as it's a third party plugin, but the support team can get you directly in contact with the maintainer via https://support.stripe.com/contact
thanks im in
Thank you when I contacted support they told me this wasn't possible through checkout
Im integrating stripe with pabau, when i logged into stripe I could see an account/profile with glowday (another site we integrate with), So I clicked create new account and have done that - can I still access my glowday one too, or have i now removed that 😦 ?
I don't know what Glowday is, you'd want to reach out to their support if they have it, as it's not related to Stripe in any way
Odds are they set up a Custom/Express account if they're a platform that uses Stripe for payments
in which case they control the account
Thanks, my point is, when you login to stripe it gives the option to click into one 'retailer' or one of my stripe profiles, but now I'm not sureif i CAN SEE it, I thought i could have multuple stripe profiles under one email.. if that makes sense?
Is this at https://dashboard.stripe.com ?
ignore me - i can see glowday (aka the original profile) so have not removed it, phew
Sorry for poor wording lol and thanks for your help
Gotcha so in theory if the current period end for a subscription is 5:00 AM UTC Wednesday, they would be billed 21:00 Tuesday in Alaska for example. What's the recommended advice here to effectively communicate this to an end user. Who from their perspective is being billed a day earlier than "originally agreed".
Depends on how you're communicating it. If it's in a browser, read their time zone settings and format the timestamp to localize it.
or just specify the time zone that you're formatting to as a default
Hi I'm wondering to understand how Stripe account to Stripe account transfer works in DB level so it could help me to write queries correctly. Let's say A account transfers $100 to B account. Which tables are involved and what records are written in this scenario? Thanks.
If you mean in Sigma, the support team can help with any query questions via https://support.stripe.com/contact
Ah, gotcha, so localise the billing anchor before they checkout or specify the timezone of the billing anchor. Thanks for being patient with me!
Essentially, yeah. Timezones are tricky so if all else fails, subtract a day and say "on or after X" but really you can localize it.
hey! does anyone have experience with dj-stripe? do you think it is a good solution for django + stripe integrations?
Greetings, is it possible to change a user's default card?
We would like to change the default payment card for a customer via an API, for instance if a user has 3 cards , we would like to change default
For PaymentMethods you can have Subscriptions/Invoices use https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method but you have to specify payment_method when you are creating PaymentIntents directly.
hey we integrate stripe connect custom for our non profits, we collect all the required info / documents in order for the account to be valid. I was wondering how from the stripe api can i retrieve the uploaded files. By retrieve a file i mean, where from the account / representative or bank account can i find the document IDs
We don't support it directly here since it's a third party library but plenty of folks use it, sure.
ok so basically from the populated account i can get both account and rep info + documents IDs right ? is there the bank account infos / document ID too by any chance?
Hey, curious if anyone has suggestions. I have an ecomm site, wordpress, using woocomm and paid membership pro. I have the CVV and zip code required. WHat else can i do to increase security to prevent fraudsters from doing things like testing stolen cards?
No idea what WooCommerce may have baked in, but the general advice we have from the Stripe side is on https://stripe.com/docs/card-testing
sheesh, i stored every id in my DB when only account id would have been enough
ty turbo
@sick talon thanks for sending that page
turbo, as i said we are a donation platform, we onboard non profits using stripe connect custom.
Upon validation of their document we allow them to create raising funds campaigns. On the other end of the siteweb, donors can go through campaigns and decide to donate.
We have 2 campaign types, the first one is not time limited, we know the application fee % depending on the account, and the money gets in the connected account as soon as its available. Now, I am wondering which payment flow i should go to, considering the stripe transaction fee has to be paid by the connected account, we dont want the platform to pay for that fee since we are only providing a service for the non profit.
The thing is that if i use direct charges, accountants / managers wont be able to see the payment through the platform dashobard.
So i thought i would do a destination charge by adding the stripe fee to the application fee so it kinda evens it out, but here again im not sure if i can safely calculate the stripe fee cause of international cards and all the logic i need to go through on my own to evaluate if the payment method country is international or not. Any suggestions boss ?
I'd suggest talking to the support team about what the best flow is for your business, as they are experts at that sort of advice https://support.stripe.com/contact
Specific to checking if a card is international, that's in https://stripe.com/docs/api/payment_methods/object#payment_method_object-card-country
Hello All, I'm having issues uploading the front of my ID, it says it it not valid, but it is.
:question: Have a question about your account @patent violet?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
i would need to define which country is EU or not, make an eu iso array and check if the pm country is in that eu iso array ? or am i missing sth
Not sure, I'm not super familiar with the EU's internal border policies. You probably want to read up on something like https://en.wikipedia.org/wiki/European_Economic_Area
yeah thats what i thought, i gotta to do my homework about all these EU regulations, I cant simply rely on stripe to tell me if the card is international or not ?
We expose the country for that purpose, but we don't elaborate on the many different things you can infer from that.
Hello Devs
I have a problem with my account. I want to add funds but I can't. Why? I live in Italy. I want to close my account because I didn't used stripe. I was testing the app. You can check the transaction, it's only one with my card but now I'm in negative
:question: Have a question about your account @vocal wagon?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
hello.. i can't find my live key to go live
but i see test key...
pk_test_....
pk_test_ ....
as the platform, if i get out of test mode and go live, can I still have the connected account mode view ? to check which payments have been made to the connected account if payments are direct charges
Have you toggled off the view test data switch on the left sidebar?
You can still see your connected accounts for Express and Custom, sure
i can't.. i have to activate the account
for that i need to put IBAN
of my company.. i did everything else.. but these days i will go to the bank and do that too ...
without iban, my bank account is not active ?
Yep, the support team can help if you're having any issues activating it (beyond just needing the numbers) https://support.stripe.com/contact -- once i't activated, you'll have access to live mode
could u explain me rq what setting on_behalf_of does when i do a separate charge ? cause the money gets into the platform account right ?
this is a 100% required ? i cannot have active account if i don't have iban ?
Any Devs online?
yep
yes
but if you think it isn't required, the support team can confirm
I have a problem with my account. I want to add funds but I can't. Why? I live in Italy. I want to close my account because I didn't used stripe. I was testing the app. You can check the transaction, it's only one with my card but now I'm in negative
:question: Have a question about your account @vocal wagon?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
I tried to contact them but got no reply
We can't help with that here
Okay, thanks
Hey @meager hawk
hope you remember me
I've managed to:
- Decrypted ApplePay metadata
- creating a new stripe token
- creating a new stripe paymentMethodID (with that same token from #2)
- running a PI request without CC direct info, only setting the options.PaymentMethod = paymentMethodID;
this fails with no specific error (maybe I've sent some irrelative values which are needed for cc but not for paymentMethod?!?!)
See Request-Id=req_3hiZxZVJrtap1F
@strong gazelle it's a really really low level error that I haven't seen before, I think it means there's a problem with the cryptogram you submitted
Is there any way to configure lookup_keys on prices through the dashboard or this is API only?
@meager hawk hmmm , same cryptogram and same details did work on other Gateway integration (actually, 2 other gateways I'm working on), so I am pretty sure it is correct. How can we check further? I am familiar with Stripe but not that deep 🙂
API-only currently
Hi How to charge a customer on his saved payment method ? I splitted initial payment in 3 settlement (1 per month) and the customer agreed and save his payment method so how to do using Payment Intent Api
Hi, is it possible to create a customer in stripe with a different residence country? For example an Argentinian create an account in Spain or Mexico.
Are you talking about creating Customers, or creating Stripe Accounts?
Thx
this https://stripe.com/docs/api/accounts/create#create_account-country
I need to create an account for a person in Argentina, but I cant not set Argentina in the country right? But can I put another country? For example Spain
Yep, the list of supported countries is on https://stripe.com/global
Hi, can you help me with this? I prepared a file that receives the webhook information in php. It receives... but the receipt_number is null, how do I get it?
@strong gazelle you'd have to contact https://support.stripe.com/email or your direct Stripe contact(looks like you have one)this is a highly advanced integration and a low-level error and not something we can help with on a public channel like this
What type of Stripe object are you looking at in that payload?
I am not familiar, who is it just gimme a private name and I'll find in previous emails?
the json content response
I can't share that here so I'd suggest asking your colleagues. Or just write to https://support.stripe.com/email and it will go to the right place!
So for someone in Argentina I can create a Spain account ?
Sorry, that doesn't really help. What type of object in the API is it? e.g. a PaymentIntent, an Account, etc.?
I can't really comment on the legality of doing that, the support team could via https://support.stripe.com/contact but my guess would be you have to be honest about the country they reside in
the important part is that the user can do the payout. For the payout Stripe requires extra documentation, I want to. make sure that user will can do the payout
Wondering if anyone knows whether its possible to create a one-time item - on an invoice specifically, rather than a subscription - via the API, the same as you can when you're creating an invoice via the Dashboard. Looked high and low but can't spot any useful answers!
I'm not using API because for me there is no need for this simple thing. But when it comes to the webhook, this is it: charge.succeeded
Yep, the support team can help with that, we can't address it in this channel
@strong gazelle I think your cryptogram parameter might not be Base64-encoded. That's my best guess, but I've never actually used this part of the API unfortunately or used Apple's SDKs at that level to work with the PKToken so I don't have any example code I could share. But what you passed looks different to what I see other users of that API passing
@meager hawk an interesting case.. actually I do encode it:
options.AddExtraParam("card[cryptogram]", Convert.ToBase64String(Encoding.UTF8.GetBytes("......")));\
ok so it's a Charge then -- see the note about null values in https://stripe.com/docs/api/charges/object#charge_object-receipt_number
Is there a possibility to "hide" quantity label on checkout? Or change the label value
Not really. You can use the deprecated amount param which doesn't have a quantity https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-amount
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ok thanks, I'll try amount
So I'm using line_items, can I mix with amount?
stripe.error.InvalidRequestError: Request req_wRGnGx7gyZy3Kv: You must provide either price or price_data for each line item when using prices.
😦
Hi, guys. I'm just new to this channel. Hope everyone is having a great day! I'd like to ask if has someone used stripe to collect tips / gratuity on their mobile app? If yes, does stripe collect fees for that as well? Thank you! 🙂
[HttpPost("create-customer-portal-session")]
public async Task<IActionResult> CustomerPortal()
{
// Authenticate your user.
var options = new SessionCreateOptions
{
Customer = "{{ CUSTOMER_ID }}",
ReturnUrl = "https://example.com/account",
};
var service = new SessionService();
var session = service.Create(options);
return Response.Redirect(session.Url); //Error here!!!
}
Not sure if this is the best place to ask, but is there a timeline for Stripe tax features to come out of "invite-only"? We're evaluating third party vendors for this and would really prefer to use Stripe for this.
I don't believe there's a specific timeline right now
[{'price_data': {'currency': 'eur', 'unit_amount': 545, 'product_data': {'name': 'Seaman Beer', 'images': ['']}}, 'quantity': 2}, {'name': 'Entrega', 'currency': 'eur', 'amount': 500}]
I guess I can't mix those right? This is my payload
If you're looking to find others that have used stripe to collect tips/gratuity in a mobile app #841573134531821615 may be a better place to ask, but I can say that yes, stripe would probably collect fees on this
Hello! Do you have a question?
Hi, thanks for the confirmation. Perhaps I'll check into general-chat then to see what they are using for this feature. 
Hi Karbi, yes, return Response is not working, i got the Code direct from the Stripe Page
What kind of error are you seeing?
in Visual Studio 2019 is red lined
Session.Url is not working like this kind of integration
Are there any specifics? (Like if you scroll over the red line does it give any details?)
Hi, How can I know if when a subscription/schedule requires an action from the user side, the process fails? I was expecting to get an error when getting the payment intent secret, but it just returns a normal response...
can not convert void in System.Threading.Tasks.Task Microsoft.AspNetCore.Mvc.IActionResult
Hello! Are you asking how to tell when the first payment of a subscription (during creation) needs additional action from the user? Do you have a payment intent I can take a look at?
Hmm not exactly. I want to know if the payment intent confirmation fails after asking the user to confirm it, so that I can ask them to change their payment method or try again
@analog marsh yes, you can't mix the approaches unfortunately(we consider amount in line_item legacy so it works just for allowing existing integrations to keep using it, but in general you would use the price_data approach)
Oh, and the payment intent is the one in the request req_rERX6qVPHYwUjp in test env
Gotcha, let me see what I can find!
ok many thanks
@rigid ridge Do you mind putting the response you get got back from that request in a pastebin? We're not able to see the response you get back from get requests on our end
You can actually see the error reflected in latest_invoice.payment_intent.last_payment_error, and the payment intent also has a status of requires_payment_method indicating that the user needs to provide new payment info
My bad, sorry, didn't see that... :/ thanks!
I guess I'm stuck then, using the workaround for shipping as an item
oh so this is the thing you were talking about yesterday where you want to not use our shipping address collection/ShippingRates because it can't be prefilled.
unfortunately Checkout does have some limitations and there's only so much you can workaround so you'll unfortunately have to accept some level of non-ideal display or behaviour and balance that against your requirements or how much bandwidth you have to build your own entirely custom page. Checkout's always being improved (and prefilling shipping for example is a feature request we're aware of) so you could go with something not perfect for now(like Shipping x1 as an item instead of Shipping ) and then in future you could revisit this and make use of new functionality.
how long does it take for all the webhooks to be sent when a payment is completed? I have webhook setup for payment_intent.succeeded and checkout.session.completed. I received the payment_intent.succeeded webhook event immediately, but haven't received the webhook event for checkout.session.completed for over 10-15 mins since completing checkout
Hello! Do you have a payment intent ID I can take a look at?
@dim hearth is it ok if its the test environment?
pi_1J86Ay25zCqxTDInkyr94m9w
Yup! Test environment is totally fine, taking a look now!
Thank you
From what I can see, we did send a payment_intent.succeeded event (evt_1J86Bw25zCqxTDInZpKtGNYJ) already and it was received and responded to by one of your webhook endpoints
yes, payment_intent.succeeded was received, but not checkout.session.completed never received it
Ah sorry about that! The reason you're not getting a checkout.session.completed event is because that payment intent was not created as part of a checkout session - it's just a plain old payment intent
@rugged coyote the docs are wrong there unfortunately. It should just be return Redirect(session.Url); , not return Response.Redirect(session.Url); , can you try that instead?
Yeah that's what I will do for now! Thanks.
Hey folks 👋 Hope everyone is having a great day! I cannot make basic CVC validation working. I’ve been investigating it for a while and cannot find any solution. Hope you can help. Due to the message size limitation, posting this in two parts.
We use Stripe Connect. To our main account we connect Express Accounts. We follow the use case of Charge on behalf of a connected account and on creating a payment intent we attach the connected account in stripePaymentIntent.transfer_data.destination.
On the front-end we use React Stripe.js. We submit the payment like the following
```
const result = await stripe.confirmCardPayment(stripeSecret, {
payment_method: {
card: cardElement,
},
});
When we test this with card `4000000000000101` from [here](https://stripe.com/docs/testing) that is supposed to fail CVC verification, but the payment goes through with no errors. In the [Radar Rules Docs](https://stripe.com/docs/radar/rules/reference) I found this line
```
If you’re a Connect platform, any rules you create only apply to payments created on the platform account. Payments created directly on the Connected account are subject to that account’s rules.
```
I checked the radar rules of the connected account and the rule `Block if
CVC verification fails` is disabled there with no way to enabled it. The owner of the connected account cannot enable this rule either. But according to [this page](https://support.stripe.com/questions/cannot-access-radar-reviews-and-rules-as-a-connected-account) there should be a way to control connected accounts radar rules.
We also tried submitting the payment like the following
const result = await stripe.confirmCardPayment(stripeSecret, {
payment_method: {
card: cardElement,
},
payment_method_options: {
card: {
cvc: cvcElement
}
}
});
But this results in an error CVC values can only be provided for card PaymentMethods that are attached to a Customer. We implemented Customer creation/retrieval into the Platform's Connect account to associate it with the payment intent, at payment intent creation time. We also tried to link the Platform’s Customer to the Connected account receiving the payments, but it fails with "The customer must have an active payment source attached”.
Can anyone shed some light on this? What's the easiest way to enable CVC verification?
But payment_intent.succeeded is called irrespective of whether it used a checkout session or payment form. Is that correct?
What kind of connect account are you working with (standard, express, or connect)?
Correct! payment_intent.succeeded will be triggered whenever a payment intent succeeds. checkout.session.completed is only triggered when a Checkout Session is involved
Thank you. Appreciate the help.
express
Gotcha - So to start, can you try updating the express account and set settings.card_payments.decline_on.cvc_failure: true (https://stripe.com/docs/api/accounts/update#update_account-settings-card_payments-decline_on-cvc_failure) through the API.
For more context, we don't really recommend direct charges (which is what you're using) with express or custom accounts. One of the big reasons that is relevant to what you're seeing is that express/custom account cannot set their own Radar rules. If you're in the early stages of your integration I'd really suggest you move to Standard accounts or switch to using destination charges
Thank you for your response @dim hearth ! Will try that. Does it mean that I don't need to put a cvcelement in the confirmCardPayment ?
[lurk: actually you mention "we attach the connected account in stripePaymentIntent.transfer_data.destination" so maybe you are using Destination charges? it's probably easier to share an example of a PaymentIntent pi_xxx you're having the difficulty with(it succeeds when you expected it to fail) so we can make sure we're on the same page]
Ahhhh that's a good point, I'm reading too fast this morning
@long ermine Do you have a payment intent ID we can take a look at?
pi_1J5ZNYRHS7FNwXIEgkmbXV2s
that is the original one
here's where we tried putting cvc in explicitly pi_1J5ZNYRHS7FNwXIEgkmbXV2s
and we also tried to add a customer in this one
https://dashboard.stripe.com/acct_1IlbKXRHS7FNwXIE/test/logs/req_UNyeGFuWe6cqvD
but it failed with The customer must have an active payment source attached.
You mentioned earlier that you were setting stripePaymentIntent.transfer_data.destination , but I don't see that reflected anywhere on my end. Are you sure you're setting that?
i'm double checking
To clarify, we used to have :tax_percentage and now you have :tax_rate and Stripe Tax. You only need to have Stripe Billing for Stripe Tax but not for :tax_rate, is that correct?
@viscid burrow the old param is tax_percent and we replaced it with TaxRate so that you can have multiple tax rates per subs and report on them
The Tax product is here to handle calculating tax automatically for you (and uses TaxRates)
You're right we currently don't do transfer_data.destination There's a capability in the code but it's not currently being used. Here I generate another test payment with the cvc that was supposed to fail pi_1J87NS2YlxRaa05J7nJPkoQL So what would be the recommendation in this case? Switch to standard connected account? Do we also need to submit the cvcElement in pi_1J87NS2YlxRaa05J7nJPkoQL?
@long ermine no you don't need a CVC element or anything. The request is already passing the CVC. The issue here is that the connected account does not block charges with an invalid CVC. So it works
https://stripe.com/docs/api/accounts/object#account_object-settings-card_payments-decline_on-cvc_failure you want to flip this on that connected account to true and then it should work
thank you @crimson needle and @dim hearth , i think you saved my day ❤️ very much wish you to enjoy yours!
yay! Let us know if you still see an issue after that!
And how would I update the payment method then, can I just change the subscription's default payment method or should I update the payment intent's first and then the subscription's?
Hi when checking out with a card, is it possible to detect card type and adjust the application fees prior to creating intent? Hope this makes sense
@rigid ridge you can update the subscription directly
@shadow cobalt what do you call card type? The brand like visa/amex? If so you can use the change event with Elements to detect the card brand in real time
yes slightly more fine tuned than brand, is it possible to know any other details about the card e.g. debit/credit/business debit/business credit
Or even update the application_fees post charge depending on card type
yeah that's not possible in the API publicly, you need a custom setting for it, but if you do, then you would create a PaymentMethod upfront client-side, and then retrieve it server-side to get the extra info you need
hi, any body knows a plug in for integrate stripe with sylius ??
That's probably a better question for sylius - I don't know of any off the top of my head
Any pointers to get me started?
@crimson needle had to head out, but I think funding is actually public and you can see that on the payment method w/o a custom setting (https://stripe.com/docs/api/cards/object#card_object-funding). Do you also need some pointers for the creating the payment method client-side?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
how can i keep the commission before the payouts?
let's say our platform charge 5% on top of stripe commission. how can this be deducted from the payouts
Am I right in thinking that I will not be able use the regular create intents and using elements to do this, instead require a slightly different flow? Just unclear on the flow of making a payment at the moment
So I'd start by taking a look at this: https://stripe.com/docs/js/payment_methods/create_payment_method and you can see an example of it being used here (https://stripe.com/docs/payments/accept-a-payment-synchronously?platform=web#create-a-paymentmethod). Yes, you are correct in thinking that this would be different from our typical payment intents + elements flow where you collect card details and pass it in when you confirm the card payment (using Stripe.js). Your flow would need to create the payment method client-side, send it to your server, and then create your payment intent based on the funding/brand
Complete reference documentation for the Stripe JavaScript SDK.
Learn how to confirm a payment on your server and handle card authentication requests.
Thank you @dim hearth
@dim hearth amazing as usual! Thank you! Have a great evening.
Hello! Can you clarify - are you trying to take the 5% commission when the funds are being paid out from the platform account's balance to their bank account? Or are the funds in the connected accounts balance?
@upbeat grove hello! I've stepped in, catching up
You don't want to deduct from the payout, you want to deduct from the funds before they reach the connected account's balance. If you charge your customer $10, that's $0.50 for you, $0.59 for Stripe. If you're using direct charges, you'll apply an application fee to take your $0.50 before it reaches the account's balance; there's no easy control to take that fee at the time of payout
We just want to earn on every transaction.
Which is to say, the connected account's balance would see $8.91, not $9.41
I got it, so how can i deduct before reaching their connected account's balance
Right, you'll want to look at application fees
https://stripe.com/docs/connect/destination-charges
This has some information; look at the bits about application_fee_amount
With Connect, you can create charges on your platform account, take fees, and then transfer remaining funds to your connected accounts.
(or transfer_data[amount])
I am not using payment intent but a checkout session, So i should add this fee there?
application_fee_amount
Hello can someone help with logging into my account the two step authentication isn't working. As in Its not being set to me.
@still prism Hello! login related questions are answered by Stripe Support at https://support.stripe.com/contact , please write in to them. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
@upbeat grove are you using Direct Charges? Or Destination Charges? (with CheckoutSessions)
Right now, I only have a checkout and it is collecting funds
and have stripe_account connected. So the funds are counted for that business
@upbeat grove sure but which fund flow are you using though? You're using CheckoutSessions, I get that part. But you would either be using Destination Charges or Direct Charges (these are two different fund flows)
i should use destination charges i think because I am building a marketplace
@upbeat grove would first recommend going through this doc to understand which fundflow works for your scenario and why to go for one: https://stripe.com/docs/connect/charges
But ultimately yes you can collect application_fee using a CheckoutSession too
Accept payments and specify how these funds should be split between your platform and your connected account by creating charges.
@upbeat grove with this param: https://stripe.com/docs/api/checkout/sessions/create?lang=curl#create_checkout_session-payment_intent_data-application_fee_amount
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
How can I retry a charge using the same payment method when the status is 'requires_payment_method'?
@rigid ridge hello, you just re-confirm the PaymentIntent and pass the same PaymentMethod ID as you had on it before.
so there's no possibility of setting the payment method server side and just pass the secret to the client, right?
@rigid ridge that does work yes
@rigid ridge like you can update the PaymentIntent and pass payment_method: pm_123 and then confirm that PaymentIntent using the client-secret on the client-side
okay, thanks!
Does an unpaid status on the Checkout Session Completed webhook indicate an async payment type?
@robust relic hello, yes that is correct.
Is there any other way to determine that the payment is async?
@robust relic retrieve and look at the PaymentIntent on the CheckoutSession. It would have status processing on it. A status: succeeded means funds have successfully moved to your account.
Hi All, is there a way to add taxes to product from dashboard? I'm not seeing the option on the product details from.
@true stag hello, not sure, let me look
@bold basalt hello! thank you
@true stag I don't think taxes can be limited to products so don't think that is supported.
@bold basalt interesting. any idea how to add taxes to a product? I dug into the docs but got a bit confused to be honest.
@true stag you typically don't add taxes to a product. Let's take a step back, what are you integrating and trying to do?
@bold basalt I've got a php api client setup to create subscriptions after saving payment method with elements. we need to add tax to each of the 16 subscriptions.
you need to add tax Id in the checkout session and then it will be applied everywhere
@true stag so you add tax_rates to the Subscriptions in that case, not the Products: https://stripe.com/docs/api/subscriptions/create?lang=curl#create_subscription-default_tax_rates
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
appreciate the help Talon! in this case, they aren't using CheckoutSessions but Elements instead (and hitting the /v1/subscriptions endpoint after creating a PaymentMethod)
that should do it! thanks much!
When you say you have stripe_account connected, do you mean you're passing a stripe_account parameter to the Checkout Session creation API? If so, that sounds like a direct charge, and you can use this: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-application_fee_amount
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 added stripe_account in the checkout session
The link that I sent should help, then
but this parameter is not in api docs https://stripe.com/docs/api/checkout/sessions/create?lang=python
It is, it's nested under payment_intent_data
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=[{
'name': 'Stainless Steel Water Bottle',
'amount': 1000,
'currency': 'pln',
'quantity': 1,
}],
payment_intent_data={
'application_fee_amount': 500,
},
mode='payment',
success_url='https://example.com/success',
cancel_url='https://example.com/cancel',
stripe_account="acct_1J6O4W2XeRtNInC6",
)
This works perfectly for us i think
Hello, this Discord idea is neat! I'm wondering how long it takes to verify ID. It's been more than a few minutes and I'm a little worried.
but stripe_account is not inside payment_intent_data
No, you're right how you have it. stripe_account is passed to the create method, not in payment_intent_data
It can take some time—we often need to contact third parties or government systems, which can take an hour or more in some cases. Stripe Support would be able to help if your verification gets stuck
Then we should updated the docs, cause this parameter is not to be found anywhere 🙂
Okay thank you Basta, I'm trying to reset my pw. Should I leave the window open and will I get an email notification?
The stripe_account param is for all methods; we document it here: https://stripe.com/docs/api/connected_accounts
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I'm not sure how the support chat works, but if you've given them your email I'd expect them to follow up.
that's the problem, I can't find a way to reach a real person without signing in. Do you know if there's a link to a support chat?
You can reach out via email 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.
Hi! someone knows if with stripe we can add a card to a customer, no matters if the card has balance?, I mean, not always the user will have balance in their debit card
Hey,
I did a test payment on the live account of £1,
The payments didn't get paid out
Just wondering if you guys have a minimum balance to make payouts?
okay thank you Basta!
Or if there's something wrong with my set up
so if I am building a platform like airbnb, where the money only goes to house owner. then I should be using direct charges i think?
and If I am building ubereat, where the funds are split between driver and restaurant. I should use destination charges
@upbeat grove a home owner would technically not be its own company or business (in the Airbnb model) so you could also use Separate Charges and Transfers, or Destination Charges there. But ultimately, I'm not best equipped to talk about what fund flow you should use, so would recommend using the link I shared earlier on fund flows and working with Stripe Support on this.
@flat yoke hello, when did you make the payment?
I tried creating a subscription with this line in the api call 'default_tax_rates' => 'txr_1I3umkLCs453BFHJ1EjjoHfw', and got api log error 'invalid array'.
@true stag the error message tells you what the issue is
@faint geyser there might be a card validation when you attach a card to a Customer, so in that case, so it could be that a card is declined if it doesn't have funds hence doesn't pass the card validation/authorization when attached to a Customer
@bold basalt yes sorry, I don't see in the docs what it is expecting.
@true stag the error message says it is expecting an array right? you're passing a string. That is what I meant.
@true stag that param accepts an array of strings basically so just pass an array with one string in it, that tax rate^
may 31st
@bold basalt gotcha, thought it might want a key value pair.
@flat yoke gotcha, would recommend you talk to Stripe Support about that, they can speak to Balance/Account/Payout timing questions then: https://support.stripe.com/contact, share the charge ID with them when you write in
How the funds are split isn't going to be the deciding factor, I think. Direct charges make the account holder the merchant of record, which you don't really want: in the Airbnb example, Airbnb wants to be the merchant of record, not the account holder. I'd expect something like an ecommerce site to use direct charges: direct charges work best when the customer is interacting with the connected account directly, rather than interacting with your platform (e.g., customers interact with Airbnb directly, not with the home owner)
Shopify, for instance, would use direct charges, since you're buying from the connected account (rather than buying from Shopify)
okay cheers
When adding payment method with stripe elements, is there a way to set it as default source?
Hello stripe: I'm facing issues while verifying my account. I have provided my passport and driving license but still not verify my home address. Please suggest me what should I do to verify home account. Thank You
@true stag there isn't, PaymentMethods don't have a concept of a default. But if you're creating a Subscription, you can pass default_payment_mehtod to specify which PaymentMethod you want to continually charge on the Subscription
@daring hill hello, account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.
@bold basalt I thought I had remembered that from a different project. Thank you
actually in my driving license, its not write up mailing code. I think that's why its decline verification.
@daring hill yeah I cannot answer account related questions in this channel, this is a public developer chat forum so there isn't account specific support here, you should reach out to Stripe Support for details on your account verification
Is there any way to change the text color on a checkout page
Like this portion here
Is there a way to make that white? because that black on orange looks eeugh
There isn't currently, unfortunately. The page uses an algorithm that maximizes visual contrast between the background and the text
The designer who helped me do our brand identity wants to beat me over the skull for it
DANG IT
@meager oasis not sure the font color alone is configurable, I think the font color changes based on the background
Can one of y'all open an issue for that please? It'd be a HUGELY appreciated feature
(Also, the branding page seems to make firefox hang on an M1 Mac Mini)
Just messaged the Checkout team's PM. They said it's something they're looking at, but it's likely not going to happen this year.
But your feedback is noted!
You guys friggin rock!
I stg, no other processor has support this good
My last one was "Please hold while i connect you to the next available rep" followed by "we don't plan on changing anything about our APIs, have a nice day, enjoy the bad documentation!"
They also only support Java
which is
uh
eugh
How can I invite a developer so that they have access to the API?
@glad trench hello, that would be a great question for the Support team at https://support.stripe.com/contact , please write in to them and they should be able to help you!
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
If you go to https://dashboard.stripe.com/settings/team, you can add authorized users there @glad trench
All you have to do is click "New Member", Select their Role (In this case, it'd be a developer), and enter their e-mail address.
Great. Thank you
Take note of the Permissions each role has, And evaluate carefully what access you want to give that user.
Hello! Does anyone know how it may be possible to 'double-vault' payment methods? I'm currently using the js-sdk to save payment methods (credit, ach...) to one of our stripe accounts, and for various reasons, we have another stripe account that we want to send the same payment information to (i.e. double vaulting). Is the API flexible enough to handle this kind of scenario?
Is there a webhook that fires when a Receipt is generated?
@dawn sparrow hello! these are two separate Stripe accounts right, not involving Connect right?
@warm nimbus hello, there isn't, but which receipt are you referring to? a payment receipt?
That!
@bold basalt correct
I've already made a webook that sends out after a change is accepted. but what I need is to save the Receipt number
@warm nimbus you would use the same webhook event for charge.succeeded to get the receipt number from
@dawn sparrow got it, so it isn't supported by default but what you can do is, actually use Stripe Connect and connect both your acct_a to acct_b, and vice versa.
That would allow you to tokenize a card on acct_a, then "clone" the card to acct_b, and vice versa, meaning you create a PaymentMethod once but copy it to the other account.
that's what i'm doing, and it's coming empty
@bold basalt great! is there a guide or guides that you think would help guide me to clone the payment method to acct_b?
@dawn sparrow you use OAuth to connect both accounts to each other: https://stripe.com/docs/connect/oauth-standard-accounts
Then once connected, you create a PaymentMethod with Elements, attach to Customer on same account then clone it to the other account with https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods
Use the OAuth connection flow to allow a Standard user to connect to your platform.
Considerations for Stripe Connect platforms adding support for new payment methods using the Payment Methods API.
@warm nimbus what comes up empty? can you share just the event ID for one such charge so I can look it up on my end?
ok @bold basalt i'll take a look at these docs. Thanks!
@bold basalt looks like it only supports card-types at the moment. How about for other payment methods? ACH, Plaid, etc.
@dawn sparrow those can be cloned too
ok, maybe docs are out of date?
You can also create PaymentMethods on your platform and clone them to a connected account to create direct charges there. Cloning supports PaymentMethods of card type only.
@dawn sparrow ah sorry the PaymentMethods API only supports card cloning, but you can clone Tokens (like /v1/tokens) for ACH Debit/Plaid as those are created as Tokens and not supported on PaymentMethods. So yes cloning works for ACH Debit, just with Tokens not PaymentMethods.
Hi all, I have one question for you
It is possible to create a checkout session with X prices and send an amount of money in percentage of a single price to a Connected Account or the percentage can refer only the total of checkout session?
@mint shoal hello! you can specify a transfer_data[amount] for a particular amount you want to transfer to the Connect acct as part of the CheckoutSession, so you would have to calculate that on your end for what that real amount shoul dbe
@mint shoal just trying to understand better, you're creating CheckoutSession with 'n' Prices. What do you want the amount transferred to the Connect account? A percentage of "one" of the Prices' amount, right? (not all 'n')
Yes
@mint shoal gotcha, so the amount you transfer to a Connect account is determined by transfer_data[amount]
so you have to calculate that amount on your end before you create the CheckoutSession.
Ok thank you!
How do I search for a "charge" or a "payment intent" by providing only the receipt number?
@warm nimbus you don't search that way, you search via the Charge or PaymentIntent ID, receipt number param isn't supported to list/fetch a Charge.
If you store the ID <> receipt number on your end, then you can correlate a receipt number to a Charge ID and then retrieve the Charge from the API.
Last question
It is possible to transfer to a 'n' Connect account?
@mint shoal can you clarify? you're saying one payment but transfer to 'n' different Connect accts?
@bold basalt just want to clarify. I have two different Platform accounts, so cannot use Connect
@dawn sparrow oh I thought you said earlier you weren't using Connect and that these were two regular Stripe accts
I'm trying to correlate, but it returns null after payment, but until the receipt sends, the webhook already sends it as null, as it fires when a change has been completed, not when the receipt is sent, so it will always store null
@warm nimbus can you share an event ID where it was null ? just the ID like evt_123, I can look it up on my end
see, like this https://pastebin.com/bLAwsVwa
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.
@bold basalt how my accounts appear in stripe.
brand new to using Stripe, so not familiar with terminology of different types of accounts. I was told we have 'Platform' accounts, highest level of account type.
@dawn sparrow yeah that dropdown isn't about Platform or not.
Are you creating Custom/Express/Standard Stripe accounts and creating Direct/Destination Charges on them? If no, then you are not using Connect
i see. I'll have to look into that and see.
what's the easiest way to tell what type of account we have?
seems like we're custom account type based on the description.
@warm nimbus ah I see, so in test mode that will be null because receipts are not auto-sent. But you're right it might still be null for some little time in livemode too until the receipt is sent. thinking ... you could long poll for it after you get your charge.succeeded webhook till you see it.
@dawn sparrow let's take a step back, do you have any object ID (e.g. a testmode Customer ID also works) that you can share with me? from each account, I can tell you if you're using Connect or not
So when I get out of test mode it sends it automatically when the change is created and it already sends the receipt id?
@warm nimbus I'm not sure ... checking
But can I go back to test mode at any time?
@warm nimbus going between live or test mode is dependent on which API keys you make API requests with, it isn't a toggle to turn on/off. The Dashboard toggle is for "show me test mode or live mode"
Oh yes, I get it.
Right
k sent you a message with a couple customer Ids from the different accounts
Hey dev team! Question regarding subscriptions. If i apply a 3 month off coupon to sub_xyz, on the 3rd month off would the subscription automatically take off the applied coupon? I know that only 1 coupon can be applied per subscription... correct me if im wrong, sub_xyz's id won't change each month but will just have a new attached invoice to that sub_xyz
@lusty geyser hello, answering below
"on the 3rd month off would the subscription automatically take off the applied coupon?" -> yes
"1 coupon can be applied per subscription" -> yes
"sub_xyz's id won't change each month but will just have a new attached invoice to that sub_xyz" -> yes
@bold basalt hey thanks for the quick response! So based on this, in the use case where the customer is on his 2nd month free. If he applies another 3 month off coupon (using our backend to update subscription), i'd assume stripe just replaces the coupon and applies 3 months free (essentially losing 1 free month that was previously applied)
applies 3 month off coupon -> on his 2nd month -> applies 3 month off coupon -> month off is reset to latest 3 month off coupon instead of 1 more month off + 3 month off coupon
@lusty geyser yes I think that is what would happen, it would overwrite the existing coupon
Hello, I want to use Stripe on a particular website domain for paid memberships. -- My LLC name is not that domain's name and is not reflective of it. -- So, if I use the stripe account under the LLC Name, it will show branding that references that LLC. To a user using the website, this may seem odd or a scam. You have domainname.com asking you for payment, but Different Name LLC is all over the branding, receipts, recurring payments, etc. That is odd and would lead to many cancellations I am sure... --- Is there a solution within Stripe to process payments under 1 account, but offer branding to users according to the domain that they are making payments on? This would be beneficial in using a single stripe account for multiple domains. Is this possible?
@bold basalt okay lastly. I tested a user scenario where user applies a 3 month off coupon then cancels his subscription. The subscription cancelation date is the end of his billing cycle... is there a way for him to have 3 months and then cancel?
@dawn sparrow yep both those accounts for those two Customers are Connect Platforms already, in that they each have Connect accounts (of multiple types) created/owned by them.
You can technically still connect the two Platform accounts (using OAuth) and clone between the two.
@bold basalt can clone customers and payment method between both Platform accounts?
@slender thistle I cannot answer the LLC name and domain name related questions, those would be better answered by Stripe Support at https://support.stripe.com/contact.
"This would be beneficial in using a single stripe account for multiple domains. Is this possible?" -> also can't answer this as not my area of expertise, sorry!
@dawn sparrow cloning PaymentMethods/Tokens is the only thing that can be cloned. You cannot clone Customers. That isn't supported. You have unique Customer instances in each account, you just track/map them in your logic (like cus_1 in acct_a is linked to cus_2 in acct_b).
@lusty geyser not sure I understand your question "is there a way for him to have 3 months and then cancel?"
you want the option to cancel now? at end of current billing period? at end of last day of coupon?
@bold basalt when the customer access his customer billing portal, he can cancel his subscription. If he does, stripe automatically sets the end date to be based on the billing cycle. but in the case where this customer has a 3 month off coupon, he would essentially lose that coupon value at the end of the month since the subscription cancels.
so from my understanding, because he cancelled the 3 month off coupon wouldnt apply since there's no upcoming invoice to make free since the subscription is cancelled. wondering if there's a workaround to allow the customer to have the remaining "months off"
@bold basalt and...?
@warm nimbus so yeah I confirmed that when a Charge is created, receipts are sent asynchronously so there could be a chance that receipt_number is null in livemode too, after a charge.succeeded webhook event. You're depending on Stripe to auto-send receipt emails right?
@lusty geyser ah I see so this is the Billing Portal, yeah I don't think the Billing Portal offers that flexibility, but manually updating the Subscription using cancel_at does what you're looking for
I just want to automate a way for my customers to verify the payment they just made... I've been trying a solution for three days
@bold basalt do you have any working examples for how to do this?
You can technically still connect the two Platform accounts (using OAuth) and clone between the two.
this example just looks like cloning between a Platform account and connected account (https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods)
Considerations for Stripe Connect platforms adding support for new payment methods using the Payment Methods API.
@warm nimbus I'd say use your own order ID that you can add to metadata to the Charge so that you can share that with the customer rather than depending on receipt_number on Charge creation. The alternative is to re-fetch the Charge some minutes after charge.succeeded by which point receipt_number should be populated
I'll try a solution like this: When the webhook sends "charge.successed" I'll generate a string and send it to the buyer's email, I think it's more viable
@bold basalt what would happen to the billing cycle? For instance, if customer has a 3 month off coupon and i manually change the cancel date to 4 months later.. would stripe default and charge based on monthly subscription?
@dawn sparrow "working examples for how to do this? " I linked some earlier.
But the part on "just looks like cloning between a Platform account and connected account" is intended, Once you connect acct_a to acct_b to each other, each will be a Platform and a Connect account to the other. Allowing you to clone between the two.
since that 1 additional month will not have an invoice of $0?
@lusty geyser Stripe will continue generating Invoices (whether $0 or $X depends on whether the Coupon is still on the Sub or not) until it reaches the cancel_at date, at which point it cancels the Subscription. It will prorate by default so you should keep that in mind or disable it.
@bold basalt okay so unfortunately it seems there's a lot of hacky things i needa do to make a referral program which rewards with free months off to work on stripe. In the subscription object that gets returned from a customer.subscription.updated webhook event, is the discount.coupon.created property a timestamp of when the coupon was applied or when that coupon object was initially created?
hi team! is there no specific stripe elements when collecting bank information for ACH?
is it sufficient to use just plain old html elements to collect the information, and then feed it to the stripeJS createToken method?
@safe fiber We don't have an ACH Element, no, but we do have Elements for other bank account types, like iDEAL for example.
Yep!
... do you know if it is cool to just accept bank info over the phone and input it directly via the stripe dashboard?
@safe fiber I don't know the answer to that, but support should know: 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.
@lusty geyser that is when the coupon was created
sounds good 👍
@bold basalt thanks for all the clarifications! 😉
@bold basalt sorry, last question. is there a limit on how many months off you can do for a coupon? I was able to create a coupon with 1,000 months off but does it actually work as intended? I recall for a trial_period there's a cap at 2 years
@lusty geyser that I'm not sure of, I don't think it would have a limit and that it would apply for however many months, continue generating $0 invoices
@bold basalt alright thanks again!
How Many Integrations does stripe receive in a day ??
Hey dev team! Question regarding language registration into stripe. I am building a marketplace that multiple sellers will need to joing Striper. There is any page in Portuguese? or just english?
You could use stripe connect for that!
@twilit adder What do you mean?
@placid oak What specifically are you looking for in Portuguese?
I've a question, i'm trying this flow, but I don't know how to finish it
What is done?
- Create customer
- Create a paymentMethod and attach it to a customer
- Create a paymentIntent with the amount, customerId, paymentMethodID
What is missing?
- Capture the funds
- Confirm the paymentIntent
@faint geyser What specifically is blocking you?
@mighty hill i mean how many new API integrations does Stripe Get in just a day, basically how many new customers join stripe APIs in day, am just curious
@twilit adder That's not information we share publicly. 🙂
ok
@mighty hill I'm reading the documentation, and I don't understand how can I capture de funds, and later confirm the purchase
@faint geyser Which documentation are you reading?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@faint geyser That's the API reference, which is quite useful, but we have a guide to accepting a payment here that walks you through all the steps: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements
Securely accept payments online.
After I integrated Striper in my marketplace just realized that all pages are in English. The marketplace will have multiple sellers many located in Brazil. Many of those sellers doesn’t speak English. I try to contact sales support, but they didn’t reply yet. So my question is if those seller to open an account and join my marketplace will need to do it only in English? Otherwise I will need to change gateway.
@placid oak Which pages are you referring to specifically? Are you talking about documentation? The Dashboard? Something else?
registartion to stripe
Are you onboarding users through connect?
@placid oak Are you using Standard, Express, or Custom accounts?
@placid oak Portuguese is generally supported in the Dashboard and for things like Express onboarding and whatnot, but I need to know specifically what you're asking about to give you a specific answer.
Hey @smoky rover, I forgot to mention this yesterday but whenever I try to run my vue site in dev mode, I get this error from vue-stripe
I'm on vue3
@mighty hill maybe i'm misunderstanding the flow, but I'm trying to capture funds, and later if the product was cheaper, just charge the exact amount of the purchase, otherwise, just confirm the purchase if the price is correct
@faint geyser Ah, okay, you want this guide then: https://stripe.com/docs/payments/capture-later
Separate authorization and capture to create a charge now, but capture funds later.
Oooooh no, no support for Vue 3 yet.
oof
anyone having issues with getting access to stripe tax? i dont receive any response
well, i get obe response. i give the info they ask for then nothing
@slate elbow I'm not sure what kind of timeframe we have around responding to requests for access to Tax. I think we've had a lot of people asking, so there might be a bit of a wait.
@slate elbow How long has it been since your last message?
i applied around an hour or so after it cane out. you'll have to give me a sec to get that rq
last Saturday
"This is ***, I'm with Stripe's Tax support team. I'm here to look into your follow up on your Tax beta request.
Just letting you know that we are looking into this, and we will get back to you as soon as we are able to provide a more substantive update."
got that after reaching out again
Is there a more raw version of the JS SDK that doesn't require the use of Elements to create a payment method?
@dawn sparrow Not really, no. Why do you ask? What are you trying to build?
@dawn sparrow Elements are required to avoid your code from seeing raw card information, therefore significantly reducing your PCI compliance burden.
Elements make everyone's lives easier
@dawn sparrow If you didn't use Elements you'd be exposed to the raw card info and would be subject to PCI compliance, audits, etc. See here for details: https://stripe.com/docs/security/guide#validating-pci-compliance
Ensure PCI compliance and secure communications between your customer and your server.
40 pages of paperwork annually is no fun
even if you're only working with raw payment details (e.g. card number) in a web browser and not storing it anywhere, you're exposed to PCI Compliance, audits, etc? I'll take a look at that.
yes, because the data has to touch your server at one point
automatically requiring you to file PCI-D
no, not necessarily. Would send directly to stripe.
At that point, you might as well just use elements then
if you're calling the API directly, solely client-side, you'd have to distribute your secret key to the user, wouldn't you?
Yes, that's right. The issue isn't that the card info is touching your server, it's that the card info is touching your code.
thanks for that correction :p
gotcha.
Basically, if you're making something that touches a cardholders card directly, a good deal of the onus of PCI compliance that's usually on stripe, is now on you
The SAQ A is easy, with stripe it's pretty much all done for you
all you gotta do is sign off on it and say "yeah this is correct"
I'm stuck with an SAQ C, which is a little more in depth, but still nowhere near as hellish as the SAQ-D
tbc, stripe.js v2 will let you tokenize cards on the client side without using elements, but you're no longer eligible for SAQ-A, and would do a SAQ-A EP instead
(SAQ A is prefilled by stripe, so you don't actually have to do anything, SAQ A-EP requires extra legwork)
@mighty hill from a PCI standpoint, or because it works weirdly with payment intents, etc?
if you're only working in test mode though, go nuts
Stripe.js v2 was built long ago, for a different time, and with the exception of security fixes is no longer being maintained to my knowledge. That's all on top of the PCI issues.
Also, by passing straight to the API, you lose out on Radar functionality altogether
which, speaking from experience, will definitely save your ass one day
@slate elbow I spoke to the Tax team and it looks like they're taking roughly three business days to respond after the message you mentioned, so you should be getting a message soon!
stripe.js v2 is deprecated, and shouldn't be used unless you have a very specific use case & know what you're doing
I 100% do not know what i'm doing (very obviously) so i just trust stripe in what they say
Stripe's team is amazing, and are all really good at their jobs. I have no hesitation in fully trusting what they say
so i need to save payment method details to 2 different Platform accounts. I was recommended to use OAuth to connect these 2 accounts and the clone the payment method over from acct_a to acct_b, but we don't want to use OAuth (as it requires redirect to stripe). So i'm trying to find a way to safely do this. Was thinking we do a primary and secondary forms… so user fills in primary, and we copy the fields to the secondary and submit both at the same time? but does this open us up to PCI risks? any other ideas?
😵💫
yeah that's definitely a not-good idea
You could use connect between both platform accounts in some way maybe?
thanks :)
@dawn sparrow I don't know if this will work and don't have time to test it right now, but what if you created two instances of Stripe.js with the two accounts' publishable keys and created Payment Methods with each one from the same Card Element?
give me like, 45 seconds to spin up a server and i'll try it
you get this error
that makes sense
yah, as the Element depends on a specific stripe object
Yup BG, you will need to create two instances of Stripe object
Wouldn't that result in 2 elements forms appearing?
you can hide or render only one depends on what user select
as long as you keep track which element is rendered by which stripe instance
yah i can do that, but now thinking that via the act of copying form 1 field values via onCHange handlers to hidden form2, we'd run into PCI compliance issues based on what @mighty hill has shared above
You won't be able to copy field values, the Elements inputs are in an iframe so you won't be able to access the contents via javascript
thx Paul. appreciate that
so i'm screwed essentially. lol
The only real way to do this without making the user fill in their details twice is to clone the PaymentMethods via connect
yah, but requires OAuth https://stripe.com/docs/connect/oauth-standard-accounts to connect the accounts 1st right, which requires redirect to Stripe right?
Use the OAuth connection flow to allow a Standard user to connect to your platform.
You'd only have to do it between the two platform accounts
You need to connect standard accounts via OAuth yes, but only between the platform accounts and only once
So the user never sees the connect Workflow
ahh
kk, moving in the right direction i think.
you guys are really helpful btw. i'm a stripe newbie so appreciate it
Hey all, quick question - my long-standing Stripe connect integration started returning 500 errors from calls to https://connect.stripe.com/oauth/token today. Error code is quite vague - 'unexpected_api_error'. No changes on my end -- any ideas? Having a hard time debugging
message is "unexpected error ocurred"
Do you have a request ID I can look at?
Will look - how can I find it?
Have a look here: 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.
Ah, have been looking here -- but the calls to the endpoint aren't showing up in this logs UI
Did you invalidate your API key by accident?
That wouldn't cause 500s but rather something in the 400 range
good point
No don't think so - other non Connect calls are going through as normal
500s usually mean something's broken on Stripe's side. @novel apex are you consistently getting 500s or was it intermittent?
Consistently as of later yesterday, all day today
Hmm can you send me your account ID so I can look further into this?
Will DM
(if it wasn't obvious, I work at Stripe)
I mean, tbf, a non-stripe employee can't do much with an account ID
not with that attitude!
What, do you want me to get your account ID cross stitched and framed on my wall?
@bleak breach Me again from yesterday regarding pre-auth. The canceled event for a PI has "cancellation_reason": "requested_by_customer", Any idea what this would be for a stripe cancelled pre-auth? (due to 7 days expiry)
It would be "automatic"
Instant payment is failing, but it’s still charging me a fee
By "Instant payment" do you mean PaymentIntents?
An instant pay feature on an app
Which app is this?
Wag walker
You'll need to reach out to the makers of the app for help with that
I did. They said to contact stripe support. I don’t think they’re going to help
I'm afraid they sent you to the wrong place, this really is a problem with Wag walker and not Stripe
Stripe won't be able to help because this is to do with wag walker's integration
Well they’re saying it’s stripe’s problem
You can try writing into Stripe support at https://support.stripe.com/contact/email, but they'll probably tell you the same thing
Yeah I did. They’re going to say the same thing. So basically I just lost money through no fault of my own
Just POOF
This definitely sounds like an issue with Wag Walker though
Their integration messed up, and they're trying to pass the buck
Ahoy fellow developers (and other professions 😄),
I am wondering if there is a way to add a national identifier to stripe invoices, in France (my country, which i use with stripe), it is required by law to display your SIREN (business identification number) and your R.C.S.'s (Registre des Commerces et Sociétés) city (basically the city where the court that treated your business creation is) on your invoices. Do you know is, by any chance, there exists to add theses information to invoices (excluding memos and custom fields). These fields are also required for customers which happens to be a business registered in France.
Thanks in advance, Vasco.
Sure can, have a look here: https://stripe.com/docs/invoicing/customize
Customize the content and branding of your invoices.
Right, so what am I supposed to do?
Thanks !
I'd keep asking Wag Walker for help and asking to escalate there
And what if they tell me it’s stripe’s fault, what am I supposed to tell them? What proof that it’s theirs?
All you really can do is keep asking and escalating until someone actually realizes the mess up
Okay, I’m talking to them now. They said they need 2-3 mins to “check their resources.”
Stripe's not gonna be able to do much of anything here unfortunately
Let’s see if they say the same thing
They said “Thank you for waiting. I checked my resources here and I'm afraid that we do not refund instant pay fees.Instant pay fees are the cost it takes for us to expedite a payout, whether it is successfully deposited or not. Unfortunately, because it is the pet caregiver's responsibility to ensure all banking information is up to date before initiating instant pay, they are non-refundable. I'm sorry for the inconvenience.”
Is your debit card number potentially incorrect?
Yes, i had to get a new card snd did update it yet
And you tried to initiate an instant payout, to the old card number?
If you don’t “make” a catch in baseball
I “made” dinner, doesn’t mean I just initiated it but then didn’t finish
I'm not stripe support, and i'm paraphrasing here.
But when the transaction for an instant payout is started, that fee is collected.
Does a successful Checkout fire both checkout.session.completed and payment_intent.succeeded ?
Yup, also charge.succeeded
Not dealing with Subscriptions obviously, just one time payments
Speaking of charge, any timeline of ACHs moving away from Charge to Payment Intent? I know it's in beta, but my boss probably wants it to be 1.0 before we switch
We're working on it, but don't have a timeline right now unfortuantely
👍
if I had my way we wouldn't accept checks anyways 😄 but being able to treat all my off session payments the same way will be great
Wow, do you have many users who want to pay with checks?
I'll find out in a month... when we go live
Honestly, I've never really used any payment methods outside of credit cards and alipay
our current payment system deals with ~30% checks though
like 10% paper and the rest being ACH
Even with Visa Debit/MasterCard Debit existing?
yes
I haven't seen or touched a check in years
my bank doesn't even offer cheques any more
Our "customers" aka members work in real estate, and a written check gives you 5 extra days to get that $$$ into the bank to successfully pay 😄
the successful ones will use a credit card and get their miles or cash back or whatever
the older ones and less successful will use checks
The older customers i find are usually just
afraid of the future
They're used to cheques, and change is daunting
but we are going from charging the offices to charging the members directly, and switching to stripe at the same time
so going from 300 customers to 3000 customers
those are definitely big numbers
my bet is that the older ones make a stink about having to use the internet for payments
thankfully we have additional staff to deal with them directly
I just have to program stuff to work 🙂
you've got the easy job, compared to the Customer/Member service team
Well, when we launch and I fix all the bugs I left in there, yeah
we are trying to push "autopay", put a credit card on file or use Plaid to add ACH details so I can charge those every month
You see, that's gonna make everyone's lives easier
We don't get the fun payment methods like the USA does
our debit cards don't support any kind of recurring payments unless it's done over Visa Debit
I really hope me trying to process 2000+ payments on a single day doesn't flag any Fraud things in Stripe
I can't see why it would?
I'm just afraid of causing the company to not be able to collect our $$$
I mean, it's unlikely at best, stripe has much higher volume transaction accounts
(See: DoorDash)
yeah, but those are established companies
if I got a month or two done without issue then I'll start feeling much better
but going from nothing being processed to trying to collect like $150k on a single day
😬
That's definitely volume for sure
gonna get an account manager real fast
I feel so small potatoes here LMAO
everyone talking about how they're processing hundreds of thousands of dollars and i'm here with my
oh I mean we are small potatoes too
it's just like 3000 people who get charged ~75 a month, that adds up
lifetime volume of $3800
I wouldn't call a quarter million dollars a month small potatoes
I'm just comparing it to other companies like mine who would deal with 20x that
Just want it all to go smooth so I have a job after launch 🙂
I've got confidence that it'll go fine
will we get an account manager?
I think you get one after $400k a year?
ah okay
they got ✨ Premium support ✨ for $1800 a month as well
which I might need 🙂 good to know about
Are there any checks that Stripe does before you go live or is it all on me to follow the various checklists after testing and testing and testing in "Test" mode?
Stripe's support has always been amazing for me
when you're live, you're live
If your integration works end to end in test mode, then it should be fine in live mode
We built test mode to mimic live environments as close as possible
It's why i get so many heart attacks sometimes
My dashboard was in testmode, and I saw a balance of like
$7,000,000
I didn't see the "Test Mode" banner
This is why I have "test mode only" accounts to test on
so you don't accidentally quit your job because you think you're a millionaire?
Thanks, it's almost there. Finishing Terminal stuff tomorrow and then wiring up the webhooks and running a ton of tests
even in test mode I'm far away from being a millionaire
It's all a matter of perspective
wait nevermind, that's still not a million CAD
It was a really good month
Hello everyone,
I'm implementing stripe payment to our app. i have a question: how can I test failed checkout?
Hi @zenith spindle, by "checkout" do you mean failed payment or the Stripe product Checkout?
i mean failed payment
You'd want to use one of these test cards: https://stripe.com/docs/testing#cards-responses
yea, i will try, thanks a lot
I have two question regarding localization of the React Native SDK, is it possible to translate the "Scan card" option?
The rest of the checkout is localized to Swedish which it's supposed to be.
Also, it is possible to remove the "Country" and "Postcode" field in any easy way?
Hello guys
I want to create checkout session and redirect customers to it but I get blank page. Someone can help me please ?
"Scan Card" is an OS level functionality I believe, I don't think you have control over what language that is (probably the system language?)
As for the country and postcode fields, are you using the prebuilt UI?
Are you seeing an error in the console?
When are you getting the blank page, after using stripe.redirectToCheckout?
oh nevermind I see you're using the url property. What's the contents of that property?
I don't know x) This is the code on the Stripe website
Yes but it's running on your server
I suspect your session isn't being created correctly. Are you getting an error in PHP?
I'd start by printing what $checkout_session->url is
Okay, thanks, I'll look into it.
You're right! I tried using a real device and it shows Sweden now instead of Afghanistan (when using the simulator).
Regarding the Scan Card-part it doesn't seem to be affected by system settings. I'm guessing there might be some localization parameter that you can put (somewhere...? :D).
If there is I don't know about it. I suggest opening up an issue over at https://github.com/stripe/stripe-react-native/issues
Hello Everyone
i sucessfully loaded stripejs on a vue project
i want to confirm a card payment
i logged the object after initialization but i cant seem to get the confirmCardPayment method
i need help with this
@supple nimbus Have you considered using vue-stripe? https://github.com/vue-stripe/vue-stripe
yes i have
i am using it ... Stripe elements
but i need to confirm a card payment
and there is not clear process on how to do it on there
If you do step 2 from here: https://vuestripe.com/stripe-elements/separate-card-fields
You should have access to this.$stripe, which should contain confirmCardPayment
Hi guys, I created a SetupIntent and it returned an invalid_amount error, I'm unsure why it returned this error when I didn't specify any amount at all. We only linked Customer and PaymentMethod for future reference. Could you give me more insight on this? Thank you.
Hi @hidden ridge, do you have a request ID I can look at?
req_npX5Rb9ehHWMWe , this one. Thanks Paul.
@bleak breach Another Pre auth question for you. Does a pre auth affect the account balance at all? (platform or connect account) Just noticed that the charge is literally refunded (charge.refunded event) when cancelled and wondered if that is pre auth balance is stored anywhere?
When a SetupIntent is confirmed Stripe does an authorization check by making a small charge (usually $1 or $0) to make sure the card can actually be charged. In this case the issuer amex declined that charge with the vague message invalid_amount. It probably means that this card is unable to be used in this manner. There's not much we can do from Stripe's end about this unfortunately, the card holder should probably talk to their bank about why the card was declined
It shouldn't. You should only see the funds land in your account when the amount is captured. I'm surprised to hear that we send a charge.refunded event when it's cancelled. Let me test that real quick
pi_1J7xMOBKmjronHeKkEva0WOp if you want
Thanks for the information Paul. appreciate it 🙂
Huh. I actually didn't know that but it does sort of make sense. When you create and confirm the PaymentIntent in manual mode an underlying charge is made for the amount, but is uncaptured. When you cancel the charge is "refunded", but really that just means that the auth is released
Yep assumed that part about the charge. But sort of implies the money is held in stripe somewhere if its being refunded back. charge.released or something would have made more sense in my mind.
Anyway semantics aside, none of this should affect an accounts balance in any form right?
Hi there
Correct, uncaptured charges/PaymentIntents won't affect your account balance
The funds aren't held by Stripe, the authorization is. The uncaptured funds are still with the issuing bank
I have a question --what is account.application.deauthorized -- I am getting this event in my logs ..how to authorize the particular app
That means someone disconnected from your platform: https://stripe.com/docs/api/events/types#event_types-account.application.deauthorized
Yeah exactly my point heh. whats being refunded at that point? 🙂 But nws, just a wording choice.
Hello again
I looked at the Stripe documentation and changed line 27 to match the one in the doc. Now I have an error message: Uncaught Error: Call to a member function withHeader() on null
How to connect again with that application from dashboard
That means $response is null
You can't, the owner of the Stripe account in question would have to be re-onboarded
I am the owner ..this is for test mode ..where I can onboard again
You'd repeat the steps that you took to originally onboard the account
Hey there. I'm trying to get stripe set up to accept ACH payments using Plaid as well. I'm limited on coding experience and I'm just not sure how to set this up is there anyone who could give me a basic walk through? I need help starting at the 'Fetch a Link token' step.
Which step in particular are you stuck on? Can you link to it?
This part, right? https://stripe.com/docs/ach#using-plaid
Step 2: Fetch a Link token https://stripe.com/docs/ach#using-plaid
Haha yes
I'm not sure what they mean by "You can create a link_token and configure it for your specific Link flow by calling the Create Link Token endpoint from your server."
That code block you see there runs on your server. You'd want to make a request from your frontend to your server to create a link token as per that snippet. Then you'd return the link token to the frontend where it can be used
So I don't understand what server they're referring to. Is this my businesses website server or do I use a program like 'docker' to do this?
Again pretty new at this.
No problem, so you have a frontend, which is your website with HTML and javascript. You need a backend, which is code that runs on your own server that you have control over and can execute code from
Thank you in advance for your help btw 🙂
It can be your business website server if you have control over that
Okay that makes sense. Is this a file that I could upload using SFTP?
Like an .htaccess file?
i do have control over my businesses website server. It's built on digitalocean
It could be, there are many ways to create a server and host a website
If you're using digital ocean then you probably want to use one of their prebuilt droplets
I'd start by reading up here: https://docs.digitalocean.com/products/getting-started/host-websites/
Does this have to be it's own server or can I add this to my current server?
Because I have a current server setup that has my site built on it
That's hard to answer without knowing what your current server does or what it's built with, but I suspect you can add it to the existing one
I see.
Give me two seconds and I can tell you what it's built on
It's built on Ubuntu
with*
That's the operating system, what language/framework are you using?
Okay, so you should have a python file on your server which has all your server code in it
What you're looking for in particular is a place to add code that can create the link token
Hi. I have made test payment using card ending with 9995 (insufficient_funds) and it was fail. Then I made another payment with card ending 4242, then it was successful. Then I was trying to make third payment with 9995 card again, same product, however, the Stripe recorded it paid with remembered card 4242. Can you help me to understand it?
I don't know I'm afraid, it depends on your setup. You might be attempting to run before you can crawl here though. I suggest taking a step back and familiarising yourself with web development and server basics before attempting this
Are you sure you didn't accidentally use the PaymentMethod for the 4242 card?
What do you mean?
Are you sure that when creating that third payment that you didn't use the 4242 card PaymentMethod instead of the 9995 card PaymentMethod
Okay thanks Paul will do
Yup, I was trying with both decline card /insufficient but the stripe dashboard recorded I did use 4242 card
Hello is there a way that we cannot create another scret key for live mode on stripe?
You can only have one secret API key per account, you however can create multiple restricted keys: https://dashboard.stripe.com/apikeys
Thank you paul
Actually you can have more than one Secret API Key per account.
You can only have one Public key tho
I was about to say because I’ve got like 50 private keys I should eventually kill
TIL
The adding card is refused due to insufficient_funds but then it still accepts the payment with code 200 at the end (the one at 17.30). The card is recorded is 4242 while I did used the one ending with 9995.
So you added the 4242 card to a customer via the Sources API, then tried to add the 9995 card, which failed as expected and then paid the invoice right? The default source for the customer would still be the 4242 card at that point, so it's expected that the invoice payment succeeded.
I think so. How the 4242 is remembered while I changed them to 9995?
When you attach a source to a customer it becomes the new default source: https://stripe.com/docs/api/customers/update#update_customer-source
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Since attaching the 9995 card failed, it didn't replace the existing source
Hu guys!
We have seen a quite increase in "incomplete payments" recently... should we be worried?
Hello! I'm creating a payment intent with customer and setup_future_usage to off_session. The user passes through stripe just like before (I guess) and returns back and I'm saving the payment method id on my db to be able to charge it in the future. That's what I do, and assumed that it won't ask for 3D secure again, but it did. can I avoid getting 3d secure authentication after the user already saved the card?
@teal cobalt in test mode that will only happen(not requiring 3DS) if you a) use the 3155 card from https://stripe.com/docs/testing#regulatory-cards and b) process the second payment as off_session:true https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session
Then I have to ask this. Isn't the react stripe elements implementation supposed to take care of 3d secure for me?
@meager hawk
@vocal wagon I would say no, all it means is you created a PaymentIntent and the customer didn't pay, which is normal enough if you e.g. create a PaymentIntent each time the payment page loads
@teal cobalt if you call confirmCardPayment it will present a popup for 3D Secure yes
from what you're describing anyway the second payment is on-session? Those can always require 3D Secure. There's an exemption for off session payments(https://stripe.com/ie/guides/strong-customer-authentication#merchant-initiated-transactions-including-variable-subscriptions) which is what the test mode 3155 card simulates, but on-session exemptions depend on the bank(the other categories on that page like low amount/risk etc) and they're not simulated. In any case, you can never guarantee an exemption so you need to be able to handle 3D Secure on any payment attempt
Hello ,
there is one issue which I have been facing with new stripe test account ..what the code we have wrote for subscription is working fine with other account .. issue is below from stripe log while subscription
resource_missing - transfer_data[destination]
No such destination: 'acct_1It6SdHiJqyEPSdX'
destination account is another account for test "acct_1It6SdHiJqyEPSdX" this I copied from account details section ..I am not sure why resource missing is coming here .
Hello, If I allowed a customer to add a promotion code for the subscription checkout, later when the customer tries to update the quantity of the subscription, does that promotion still going to be added automatically? (I am going to update only the quantity using the API)
@granite basin that account is not a connected account of any platform, so there seems to be some confusion there. You need to connect it(using Oauth https://stripe.com/docs/connect/oauth-standard-accounts ) to some other platform account first.
Thank you 😊
@granite basin looking at it, you biefly connected and then disconnected. That's a common problem and it means that you make the oauth token call (https://stripe.com/docs/connect/oauth-standard-accounts#token-request) twice, if you repeat the call then it will deuauthorise the connection, so you should debug that side of things. Really common problem people have.
@hollow nebula it depends on what the properties of the specific coupon are. Like it could be a one-time only coupon, or have a duration, so that's what would determine it.
Let's assume it is forever 10%
then it applies to any future invoices for that subscription(like ones that might be generated for proration when the customer changes quantity, yes).
@meager hawk Right! I'm already doing so. Can you help me understand why the user got the error "Authentication for this payment has failed." if UI handles 3d secure? req_cpZXMa4qkXz9LQ // evt_1J7onUE9ylGUEM6LZZd6WpJY
@meager hawk Thank you for the quick reply.
@teal cobalt you didn't pass off_session:true as I described in my point b)
@meager hawk the user has 2 options:
- pay without saving card
- pay and save the card
To be honest I do not know how 3d secure auth works but I can tell you for sure what I'm expecting to happen and maybe we can go from there. I'm expecting that the user will be presented with a popup to 3d secure on his own without me needing to handle all of this with extra code, just simply integrating the react stripe js library with elements it should handle everything and give me back a successfully payment id to keep in my records. if I have to listen to the response of confirmCardPayment, and if that responds with next action and a redirect. I know for sure that I'm not handling that
is that not what you see?
you created that PaymentIntent. So the next step is to call confirmCardPayment on the frontend that would present 3D Secure as needed. What happened when you did that?
Thanks for that! Any downsides of creating PaymentIntent each time the payment page loads? Should be aware of any risks with this way?
@vocal wagon no it's totally fine! You usually just ignore these incomplete PaymentIntents , you only need to work with successful ones
Awesome. Then we will just ignore these and keep focusing on the ones that work. Thanks again!
hey guys, is it intentional that the Fingerprint option does not work on Stripe Connect?
@jagged stratus hi! Not sure which feature you mean — fingerprint on the Card/PaymentMethod object? It does work with Connect but there are things to know like https://stripe.com/docs/upgrades#2018-01-23 so it can be complicated. What was your specific concern?
hey @meager hawk yes, that's correct.
Our company has its own stripe account and if we check some customer's payment details and click on the fingerprint, it opens up all their payments, however, it does not work on Stripe Connect accounts that we have:
if I click on that fingerprint, it returns No results found
before this was made clickable, it was working perfectly fine whenever we searched with it in the Search field
yeah it might be a bug, I'd write to https://support.stripe.com/email . Presumably you're using the "View dashboard as" feature and there's something weird about how the authentication works so it ends up showing the connected account's version of the fingerprint instead of the platform's, or vice versa
I'd suggest writing to support with a full description of the exact steps you're taking and the accounts/customer IDs involved so the product team can look into what's happening and fix it!
we're using the "View dashboard as", correct.
Thank you, we will do that
Thanks @meager hawk ..I will see if multiple call is there .
@meager hawk I didn't test that to be honest, this request id I've shared with you came from a customer of ours. Booted my local dev
making the test now.
Hello! Support redirected me here as I'm having technical issues with creating a payout. I'm trying to create an instant payout to a connected account (which has payout enabled and visa debit card info included) and it still gives me "payouts_not_allowed" error 😦 can sb help?
@tepid rose I can try to help but it's not likely to be a coding or technical question so really support should have helped you, sorry. Do you have the request ID req_xxx for the failed attempt, or the account ID acct_xxx
yeah, the account id is acct_1J5qx92XPLMGmYRe all in test mode
request id: req_BtoRUwFX1EYMNk
@meager hawk that's what I thought too but the guy from support said he has no idea what might be the problem and gave me the link to discord 😅
should I write on account-support channel?
maybe I'm missing something but that account doesn't have any payout bank accounts or debit cards, right?
it has a visa debit card connected
it doesn't, it did but it was removed about 5 minutes before making that request
oh no wait never mind, you're right
haha though I missed sth 🙂
hello, i want to insert my bank IBAN in bank details, so i can complete and activate my account, but when i select usd from the currency.. the fields changed and i am requested to insert roating number... i don't know what that is.. also account number ... i have my iban, but... i have different requirements when i select usd ....
@tepid rose as far as I can tell, the payout is being blocked for risk/fraud reasons. This is going to sound dumb, but try creating a different account and this time don't use "Google" or "www.google.com" as the information on the account. I think we detect such "generic" descriptions as a signal of someone signing up fraudulently by entering random information, and block their payouts. I know it sounds weird but I'm somewhat confident that's why, I can't see any other issue with the account.
@meager hawk sure, I'll do that and let u know how are the results!
@shut perch see the table at https://stripe.com/docs/payouts#supported-accounts-and-settlement-currencies — you can only pay out USD to a US bank account. A US bank account would have a routing number and account number, IBANs are for European bank accounts.
if you want to pay out directly in USD you need to open a bank account with a US bank and then use that.
but i have usd account in my EU bank
yep but Stripe doesn't support paying out to it. You can only pay out USD to a US bank account as I mentioned and the docs there describe.
i have no problem transferring money from pay pal to this usd account that i have
it is working...
if you have more questions please follow up with https://support.stripe.com/email , this channel is for API/coding questions
ok, i inserted my iban and my account is active.. from where i can get live key that i can insert in our websites where i have stripe integration ?
at publishable key i still see pk_test_....
yeah.... i think i see my live key now 🙂
hey thanks 🙂
so i insert that in my code instead of the test key and i am all done ?
I'd read
https://stripe.com/docs/checklist
and https://stripe.com/docs/development/checklist
first, but assuming you've tested your integration, looked into how to handle potential disputes and the other stuff mentioned on those pages, then sure!
yes.. i looked.. i will do that again.. after all i am new to stripe.. so checking again will not hurt :), hey thanks 🙂
however I am a little worried, for the first time I am going live with stripe 🙂
is there any information on the stripe batch API? We have a refund gone through and no idea where it originated, its probably legitimate, but we're struggling to find it.
@meager hawk seems like it didn't help 😦 here is the account Id acct_1J8MxL2Vy0OPVhRk and req Id req_8uiuNc3kGEaqfI and code snippet:
{
amount: 3000,
currency: 'usd',
method: 'instant,
},
{
stripeAccount: 'acct_1J8MxL2Vy0OPVhRk',
}
);
@frosty coyote this is probably coming from the Dashboard
when you select multiple charges to refund in bulk using that checkbox interface , it generates a batch job which does the refund and that's why you see StripeBatch 1.0 in your request logs
it's a bit confusing I know
@meager hawk is there a way to know who was logged in to do that?
@tepid rose ok I see now. It's not the Express accounts, it's because payouts are disabled on your platform account (and that inherits down to Express accounts (even in test mode) because it's a risk/fraud decision). You should write back to https://support.stripe.com/email to understand why your account is payout-disabled and what to do about it. Sorry for bouncing you around a bit.
Actually, we think it must have been someone in customer support, no one else really has access and would do this. So. All good, ill find it internally, thanks
@meager hawk yeah feeling like a hot potato 😂
@frosty coyote I can probably find it but I'm not sure there's a good way to self-serve yourself unfortunately
we can tell from internal logs who initiated the batch job and I have to help people with that exact question somewhat often. I can look but I can't really share personal information here so not sure how useful that is.
Hey folks, is anyone able to help with issues im having with Stripe.net and the preview feature 'moto'
but yeah if you see that StripeBatch thing it almost always means that it's someone using the bulk checkbox thing I posted above, I agree the logs for it should be clearer :/
@tawdry field sure, I absolutely can, what's the issue?
im trying to set the property in my code to be 'true' so i can flag the payment as a moto payment but
im getting the following
this is the line i have issues with (client request vb to integrate with their existing code)
yeah that's not how you do it, it's more like options.PaymentMethodOptions = new PaymentMethodOptions(card= ...) (you have to instantiate each param object)
one sec while I get an example.
var options = new PaymentIntentCreateOptions()
{
Amount = 1099,
Currency = "usd",
Confirm = true,
PaymentMethod = paymentMethod.Id,
PaymentMethodOptions = new PaymentIntentPaymentMethodOptionsOptions {
Card = new PaymentIntentPaymentMethodOptionsCardOptions {
Moto = true
}
}
};
var service = new PaymentIntentService();
PaymentIntent paymentIntent = service.Create(options);
it's like that, does that help?
I know that's not VB(I don't have any experience using that) but it's the same general idea in terms of how you'd use the Stripe library here.
cheers
Hi there 👋 Hope you're having a nice day! I received a really great advice on blocking card payments that fail cvc verification on connected accounts here yesterday. There one things that doesn't work for me though for some reason. I tried to update the connected account but the settings don't change for some reason. Here's my request
curl https://api.stripe.com/v1/accounts/${connected_account_id} \
-u ${SECRET_KEY}: \
-d "settings[card_payments][decline_on][cvc_failure]"="true"
settings.card_payments.decline_on.cvc_failure just stays false after this request
hmm, seems strange. What's that account ID acct_xx where that happened?
hmm, you're right, it doesn't seem to set, and I see the same in testing
if it unblocks you for now, you can set that field when creating the account and it does work
but let me dig into if there's a specific reason for it not working on an update call.
if it unblocks you for now, you can set that field when creating the account and it does work
Thanks, I will definitely change this for future accounts but there's an account we need to update and it would be very hard to chase the owners to onboard them again. We spent a month or so last time. Would be great, if the settings could be updated without them.
@long ermine you can totally update that field any time in the API with https://stripe.com/docs/api/accounts/update you don't need the owner of the account or re-onboarding them, it's just a setting
oh my bad sorry I thought you followed up on exactly what I said yesterday, but I see @meager hawk is having the same discussion
no worries @crimson needle !
yep I would have expected to work on an update call as well, looking into it at the moment
sorry on this, where are you getting paymentmethod.id from as we want to enter details manually
@tawdry field https://stripe.com/docs/api/payment_methods/create basically. It depends a little on the specific of your integration. If you're using MOTO that generally implies you create the details on the server side as it's an advanced integration for PCI-certified entities
cheers, i was going around in circles trying to find this!
hey there is there a way to know easily how much has been collected total from a subscription at anytime using the api? lets say user a has a 10 EUR monthly sub during 10 months, can i know hm has been collected total or hm is left to pay at time T during / after the sub
hello,
I'm developing a solution of subscriptions with Stripe, as our bank don't do that.
To get the card options i use stripe JS in a form view and i keep only the token.
My problem is to use the same way with SEPA and IBAN options. I haven't find a way to generate a secure token just with an IBAN. Does it exist ?
@cobalt pendant hi! there isn't really a direct way beyond using https://stripe.com/docs/api/invoices/list (filtered by subscription ) and summing up the results
@hollow onyx we have stripe.js component for collecting an IBAN yes, the guides for using SEPA as a payment method describe how to use it : https://stripe.com/docs/payments/sepa-debit/accept-a-payment?platform=web#add-and-configure-an-iban-element
@long ermine this does seem like unintended behaviour unfortunately, we're aware of it! For what it's worth it's limited to test mode, if update that setting on a live mode account it will definitely work, it just doesn't stick on a test mode account unless set at creation time. So for now the workaround would be to add that setting to your script for creating new accounts and test with those ones.
ok, do u know if creating a product for each connected user is mandatory for doing direct subscription charges (sub schedules where the amount is set dynamically depending on what the user wants to pay) ? We are a platform and depending on some events we have to use direct charges instead of destination charge in order have the stripe transaction fee deducted from the connected user and not the platform
thank you for the update @meager hawk let me try updating it for our live account
@cobalt pendant if you're using Direct charges for subscriptions (https://stripe.com/docs/connect/subscriptions#direct) then you have to create Product and Prices on the connected account yep. So you'd call the API to create them and use the Stripe-Account header https://stripe.com/docs/connect/authentication
thanks, i have already read this part of the doc but i'm looking for something else (which may not exist) . I use Stripe.card.createToken just in a little script with a php form in my CMS. I'm looking for something equivalent for IBAN number.
@hollow onyx that script is using an old version of our frontend library (stripe.js v2) (https://stripe.com/docs/stripe-js/v2) that we don't add new features to and it doesn't really support creating IBAN tokens. There's no simple addition here, you'd have to update your integration in general to use our newer products for this new feature of also charging using SEPA Debit.
the thing is the product sounds a bit useless in the sense that we set both duration and price at the time of the transaction. we are a donation paltform where we onboard non profits, donors on the other end can give money to the non profit of their choosing, those non profits need to pay for the stripe fee, we just grab a light application fee for providing the service. If there is no way around that do u have any recommendation about when i should create that product for the non profit/connected account, since its always gonna be the same
I think you can use https://stripe.com/docs/stripe-js/v2#bank-account-createToken though (you pass the full IBAN as account_number and don't pass routing_number ). But I wouldn't recommend it since you also need to do things like collecting a record of debit mandate acceptance, so you really should be using our current products for this to avoid issues
hey @meager hawk , you right, it worked in prod! thank you for your great advice sir!
@cobalt pendant you could use https://stripe.com/docs/api/subscriptions/create#create_subscription-items-price_data to just define the amount for the subscription ad-hoc instead of creating it upfront/separately. Though actually you have to create the Product separately so it's not a perfect solution :/
@long ermine great!
yeah thats what i do for subscriptions going to the platform account : https://pastebin.com/c5djZ22a as u can see the product is set the hard way, but we have 1 platform, but X connected users :/
unfortunately there's no way around effectively re-creating whatever prod_JS7DMEwtpGW3oa is for each connected account by calling https://stripe.com/docs/api/products/create with stripeAccount (https://stripe.com/docs/connect/authentication) for each account before setting up the subscription. totally understand the pain — I'd probably have a hook/script you run as soon as an account is connected to you that will create that Product on them, or have it as a step before creating the schedule.
yeah i thought about creating it as soon as the non profit creates his account, and save that product id to my DB to pass it to sub schedule easily. Would that work ?
yep! That's what I was getting at with the reference to a hook/script
doing it when the account is created is sensible
oh ok, what do u mean by sensible
just that it seems like a good way to approach the problem to me!
ultimately to integrate this way you have to create the Product before creating the Schedule, so having some code to create it in advance as soon as an account is created so you'll have it available later when setting up the Schedule, is an entirely reasonable way to solve that
tyvm karl
Moin, I need help. How does the integration of voucher codes in the payment system work? So I created a voucher code, but I can't enter it when processing the payment. Why? Thanks for your help
@hasty escarp hi! Are you referring to Promotion Codes? https://stripe.com/docs/billing/subscriptions/discounts/codes
Yes, I created this via the Vouchers tab. dashboard -> products -> vouchers
Hey, just a question. I've been setting up some Stripe connected accounts (custom ones) for use with the API and noticed that when creating them, theres only 3 options (Individual, Company, Non-Profit). But if i go to change the business type later, the option
appears for government entity. Do you know why this might be? I'm working with some local councils, so I'm not sure if this government entity option suits the connected accounts better.
And when I now want to process the payment on the website, he first asks me for billing details, address, etc. and finally about the payment option. but there is no field for vouchers
@hasty escarp ok, and when you say ""I can't enter it when processing the payment.", what is your payment page, are you using Checkout(https://stripe.com/docs/billing/subscriptions/discounts/codes#adding-promotion-codes-to-checkout), or something else? The codes only interact with Checkout.
@jade pier hmm, seems a bit strange. I think we only support that type for US accounts (https://stripe.com/docs/api/accounts/create#create_account-business_type) so maybe you create the account as some other country, during the onboarding the user changes it to the US, and after that point you can choose that option
hi everyone! i had this error but i don't understand it do you have any explication?
hey I need help for add card details on stripe
@tiny bone hi! what's the issue?
i don't understand because i don't give a new payment method
@quasi flicker looks like you're trying to pay a PaymentIntent again even though it's already paid
what's the ID pi_xxx?
pi_1J8OpqCnH6d31UhhjRf72Byq
hi , I want to adding it using asp.net core but i don't have any idea that hoe to add card instead of payment
Could share a link for code
@tiny bone I don't understand what you'r asking unfortunately. I'd suggest starting at https://stripe.com/docs/payments/accept-a-payment .
Securely accept payments online.
@quasi flicker you created the PaymentIntent here with a saved card : https://dashboard.stripe.com/test/logs/req_9xTuKZdZs4Iwi8 and the payment succeeded(status:requires_capture means the payment is authorised). There was no reason for you to send it to the frontend and confirm it there as you did
hi everyone, quick question: when the user is redirect after the checkout to my custom success_url with the CHECKOUT_SESSION_ID params and I retrieve the session I would like to have some custom metadata or client_reference_id but I can't make it work by just adding it in the Session that I previously create. Where should I put those variables?
@quasi flicker you should check the status of the PaymentIntent after creating it and branch your code. succeeded or requires_capture don't require any frontend action. https://stripe.com/docs/payments/intents#intent-statuses
@vocal wagon adding metadata to the CheckoutSession should work. Can you say more about not being able to make it work?
actually i want to say that i want only card details for first time.
I add the metadata on the checkout session from which I receive the session_id that I pass to the redirectToCheckout function on page, and here if I check the response the metadata ar presents. But when the checkout is completed and I retrieve the session with the passed session id, the field metadata is empty
by the way I'm creating the session server side and the returning the session id only to the js
@vocal wagon hmm, that all sounds sensible, I don't see why it would be empty. Do you hav a cs_test_xxx ID where this happened so I can have a look?
sure thanks
So for me it is so that you buy via the external website and these purchases are then displayed in stripe. Probably the voucher codes do not work because it runs through the booking engine of the external website and not through stripe, right? is a little complicated I think
cs_test_a1BP8aKn5r8X2UKlIe5IOh8TkslkjpdPvCWOKGaWfnaoJGb5QU7sHbAdZv
@hasty escarp yes, promotion codes only work with our own Checkout page at the moment, a third-party would need to build their own voucher/promotion code logic so that all seems expected
and cs_test_a17cW6Ept01XKQi03KQv6lqWuYRsThbvp6RcdsGQPofrbpdU6Zs3WW4EZX is the one returned with the CHECKOUT_SESSION_ID params
How to customize user inter face of stripe ,
is it ok that are different?
ok, thank you very much for the help
Actually i want to add Name where we enter email in payment ui
I want to replace email with name, tell me how?
@tiny bone you can't. That's an old way of using Stripe and it's not customisable that way.
as I said, please start at https://stripe.com/docs/payments/accept-a-payment
ok i will try
@vocal wagon hmm, this should really just work. Can you share the Python code you're using to retrieve the Session and how you inspect the metadata?
but if i want only add card details on stripe with our user interface .Is it possible ,if yes then please tell me how to do it.
you can have a page on your site that just has a card input while you control the rest of the page, yes : https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements