#dev-help
1 messages · Page 128 of 1
@vocal wagon you can definitely use Stripe to sell outside of China. However you will receive in non-CNY currency. You will need to use other services to convert the fund to CNY
hi @daring lodge, i'll come back after some test
i had try to use the card 3155 and i have the same result. first paymentIntent on-session is ok but when i create charge in off-session to get plan recurring payment i have an error on ->createCharge() : "authentication_required."
i not found request id like req_1234 but i have an ch_1234 or card_1234 if you want ? or can you say me where i can find req_1234 ??
thx by advance
@storm walrus In order to use the card off session, you will need to first setup the card. Can you share how to make your first on_session payment? did you pass setup_future_usage=off_session when you create payment_intent?
to find your request, you can login to your dashboard and go to https://dashboard.stripe.com/test/logs
@storm walrus you can follow the step by step guide here https://stripe.com/docs/payments/save-during-payment
Learn how to save card details during a payment.
- yes u can find code i use higher in the thread, do search with my pseudo. I can repost if you need. I obviously us
setup_future_usage=off_session - I have follow the advanced integration guide to migrate our implementation with new flow (paymentIntent)
- @daring lodge i have found my request id 😄 req_yNllhqV82GMrbo
@storm walrus your request is still using charge API. You will need to use payment_intent, else you will face a lot of SCA declines
Learn how to migrate your existing cards and Charges API integration.
even to take out of session? I thought that the intention was right for the first on-session and that I could continue using charge for the recurring because the card had been saved and authenticated at the first payment? I am wrong ?
my first payment on-session look like req_QVYdg7xNz5qSND
hello
You shouldn't be using Charges at all, they aren't SCA ready and will cause failures if the banks request 3DS on a payment (which they can do at any time)
how to change order status in stripe payment gateway
Hi, can you be more specific?
ok
i have made order by stripe payment gateway in site the order status shows completed but in this order status shows processing
Hi there! We're seeing some unexpected behaviour when calling the upcoming invoice endpoint: one of the lines get's a discount applied, however the discount field in the returned invoice is null. Can someone help us work out what's going on? customer: cus_HYsnsP43AEVYYa, subscription: sub_JY58xOhcvrlIEz
You mean the status of a PaymentIntent?
yes
Hi! Do you have a request ID for the call you made to the upcoming invoice API? That way I can see what you provided and what you got back
sure! req_qXkT8axtv5tKPh, although it's a GET request so the response is not recorded
I don't really understand your question. The status of a PaymentIntent isn't something you can set. If the status is processing then you need to wait for the payment to complete. Stripe can inform you about this if you're using webhooks
how to change order staus please provide
Thanks, having a look.
Hi! I want to test the webhook with live api like we can do it with test api. Can anyone help me on this?
Have you seen these docs? They explain how PaymentIntents work: https://stripe.com/docs/payments/intents
ok i will
even in the line that has a discount applied (as per what it says in the description), the discounts field is []
We don't recommend testing in live mode at all. If your code works in test mode then it should work fine in live mode. You can test your webhooks easily with the Stripe CLI: https://github.com/stripe/stripe-cli
@vocal wagon is the line item due to proration for example after a quantity change? If so it's "expected" today but something we want to fix in the future
Ok sure. Thanks
yes it's a proration after a quantity change. So it's "expected" as in "it's broken but we know it is"?
Hi guys, I'll be integrating PIN management into our react-native app (https://stripe.com/docs/issuing/cards/pin-management). I can see that there are ready SDKs for android and iOS to use for this purpose. I've also found a react-native SDK (https://github.com/stripe/stripe-react-native), but it seems like getting the PIN is not there in the features. Did I miss something and I have to integrate native android/ios modules or it's already there? Thanks for help
@vocal wagon we don't consider it broken because a lot of this predates our addition of multiple discounts per line item. But we want to fix it/revamp proration and line item discounts in the future. But it'd be a subtle breaking change that is tricky to roll out safely so it will take a while
@vocal wagon The React Native SDK is quite new and focused on payment flows right now and doesn't have Issuing features specifically implemented. It's something we want to add in the future but it won't happen soon unfortunately. You'll have to build your own logic/UI for this
@crimson needle thanks for the confirmation, I didn't want to spend time on something that's already there. Android and iOS sdks are helpful enough, thanks
I have a question regarding fulfillment, please let me know if I ask the wrong place.
How should I match a checkout session with a webhook fulfillment?
I need to store in my DB some ID that says which product a person tries to pay for, and then I need to match this ID when I get a "checkout.session.completed" event from Stripe so that my system knows what exactly have been paid for. So which ID should I be using here? The session.id or maybe session.payment_intent or something else?
https://stripe.com/docs/api/checkout/sessions/object
do you then have any suggestion on how we can work around this issue?
@vocal wagon what are you trying to do exactly?
please explain how to change staus of order when payment made by stripe please check screen shot
@crimson needle I'm trying to get a PIN shown in our mobile application
sorry that was for @vocal wagon mixed up the usernames my bad
@deft tide I'd use the Session id for this (cs_live_123). when you get the event you can call the Retrieve Checkout Session API and expand the line items at the same time as documented here https://stripe.com/docs/expand#includable-properties so that you can see the list of line item(s) of what they are trying to buy. Or you can store this in your database
@dapper forge where is that screenshot from exactly? Are you using a third-party plugin or platform?
the problem is that the prorated lines are already quite confusing: when doing a quantity change let's say from 4 to 5, then the line with the "unused time for 4" is not discounted, and the one for "remaining time for 5" is discounted. That means that the actual calculation in the invoice is "wrong": if you're adding 1 new item to the quantity, you don't pay for a discounted price for the new item, but instead you get refunded what you originally paid and then paying for the whole thing with a discount again, which is not what we want. What we want is that you pay for the new item only with a discount. For that, we need to apply the discount also to the "unused time for 4" line, because discounted_remaining + discounted_unused == correct_discounted_amount_for_the_new_item (taking into account that discounted_unused is negative)
But in that case you wouldn't use our proration logic at all, you'd have to do your own calculation instead
thanks @crimson needle
so this means when I create a session ID and forward the user to the URL, after the user have paid, I will receive a session with the same ID from Stripe through the fulfillment webhook?
So I create a Session it has ID=123 and the session I receive from Stripe will also have ID=123, that way I can identify exactly which session has been paid?
Exactly!
You don't get the ID automatically though, you have to use this template variable in your success URL: https://stripe.com/docs/payments/checkout/custom-success-page
they were asking about webhook fulfillment earlier though so I assumed that's what they would use
Oh ignore me I misread
yes, thank you for the help 🙂 ❤️
Of course, let us know if you have any issues
that's what we did originally, however it's hard to match Stripe's behaviour at all and we are using this to show forecasted charges to the customer for a given change (simulating an update that is). So we restored to using the upcoming invoice endpoint
please explain what is the order status at that time when payment made by stripe payment (order status in backend in magento 2 )
@vocal wagon yeah but the flow you want can never work unfortunately since we do a "full refund for the old quantity and then we charge for the new quantity entirely" so the math won't add up to what you want
@dapper forge You have repeatedly asked the same exact question four times without any information each time unfortunately. This discord server is for developers asking questions about their own code but it seems you are using a plugin instead for Magento. I'd recommend talking to our support team: https://support.stripe.com/contact/email
it adds up if we apply the discount to the "unused" line
you can't really do that unless the discount is added to the customer ahead of the change right?
@vocal wagon is that what you are doing? It's clumsy for sure but if you added the discount back to the customer/subscription before calling the upcoming invoice it would do the right thing I think
Ah wait no it wouldn't, we wouldn't prorate the unused time with a discount since it didn't have the discount applied at the time, sorry
oh, the subscription still has the discount, that's not the problem
then I don't understand the problem you have
Can you try and give a concrete example with real values?
alright: The invoice has the following items:
Description: "Unused time on 4 × REDACTED after 21 Jul 2021",
Amount: -39442,
Proration: true,
Quantity: 4,
---
Description: "Remaining time on 6 x REDACTED (with 30.0% off) after 21 Jul 2021",
Amount: 41414,
Proration: true,
Quantity: 6,
---
One more to ignore, since it's not prorated. We discussed this with you here previously and agreed to ignore it.
In this case, the final amount is 1972 (41414 - 39442). However, what we actually want is to charge the customer 13804 ((41414 / 6) * 2, aka discounted price for 2 items). To do that, we need to 41414 - (39442*0,7). To calculate that 0,7 (aka 30% off) we need to know what discount we're applying in the second line ("remaining"). The issue is that discounts is [] for both the entire invoice and that very invoice item.
Is that more clear? You can find a sample request here
It's not really more clear unfortunately. Why does the first item not have a discount? Was the discount not apply at the time the quantity 4 was charged? Also, for the discount on the remaining time you would look at the discount currently on the subscription or customer
I also don't really understand the math as there's no details on the price for each product, when you prorate, etc.
Imagine a $10 price with quantity 4. So you paid $40 already. Now mid-month, you want to move to quantity 6, so you owe half a month in credit for quantity 4 so -$20. And then they owe you half a month for quantity 6 so +$30.
Now if you have 30% off on the subscription, the credit would be lower since it had 30% off at the time, and the amount owed would be lower since it still has 30% off and the math should stay similar.
hi!
I was looking at the stripe elements, and was wondering if there's one that allows adding any US bank account?
There's these, from what I can understand:
- IbanElement: The International Bank Account Number (IBAN). Available for SEPA countries.
- IdealBankElement: The customer’s bank, for use with iDEAL payments.
- FpxBankElement: The customer’s bank, for use with FPX payments.
- AfterpayClearpayMessageElement: Displays instalments messaging for Afterpay payments.
indeed the discount wasn't there when the quantity 4 was charged
@vocal wagon there isn't one today. It's something we want to add in the future but no timeline so for now you'd build your own
I don't see why you need to know the price or the proration date for this 🤔
@vocal wagon okay, so now let's say 50% off to make the math easier with my example
User paid $40 on July 1st. On July 15 they want to move to quantity 6 and have 50% off. So they owe $30 but with the discount it's $15 and the credit was -$20.
What do you expect/want to see instead?
ok, but that means I'd have to process the number myself if I want to save the payment method, exposing the platform to PCI compliance issues?
a) nobody mentioned credits here? not sure why we're adding that into the mix.
b) in this case we'd expect the prorated invoice amount to be (assuming the price for item is $10): (10 * 2) * 0,5 == $10
@vocal wagon PCI compliant is about collecting card details and nothing else so it's unrelated and you're safe there. ACH details are still sensitive and you should collect them client-side and create a Token with Stripe.js: https://stripe.com/docs/js/tokens_sources/create_token?type=bank_account
@vocal wagon Description: "Unused time on 4 × REDACTED after 21 Jul 2021", Amount: -39442, Proration: true, Quantity: 4,
You specifically quoted that line item which is what we call a credit. It's the "refund" for the amount paid before but unused
Hi guys, I'm tryng to integrate showing pin into my mobile app and the docs page (https://stripe.com/docs/issuing/cards/pin-management#on-the-server-side) says to send issuing_card to /v1/ephemeral_keys. Do I need to send anything else? Some other pages (https://stripe.com/docs/mobile/ios/basic#set-up-ephemeral-key-server-side) say to pass customer id and api version as well
afaik a credit is something else in stripe, that's why we got confused 🙂
What do you call "The prorated invoice amount"? There are two proration items. I am trying to help you but I need to understand what exact values you expect to see with a basic example with simple math. Not the final amount the exact line items
Does that bank_account call do any sort of validation?
as in, do I know if it's a valid account or not?
@vocal wagon no it doesn't beyond checking length and that the routing number if in our database
@vocal wagon I'd pass API version too, customer is unrelated it's about a different integration path
Cool, where can I get the API version from? Is it the version of the SDK or is it somewhere on the dashboard?
I'm not concerned about the items themselves though, what I'm concerned about is what we're actually charging the customer. It all comes down to the fact that Stripe does refund + charge all discounted instead of charging the new items discounted.
@vocal wagon it'd be the version associated with the mobile SDK you're using
Thanks! Once I have that token, can I add it as a payment method and charge it later on?
@vocal wagon sure, but we have a way to do proration that doesn't match what you want. I'm just trying to help you get there. Focusing on the final amount won't help since the problem is how we do the math and trying to make that math fit your workflow
@vocal wagon You likely want to read https://stripe.com/docs/ach end to end
User paid $40 on July 1st. On July 15 they want to move to quantity 6 and have 50% off
what I'd expect is:
Unused x4 -> -10
--
Remaining x6 -> 15
It's not fair to have it fit into the unused + remaining line format because that comes from the way you do the prorations (refund + charge all). Instead I'd expect a single line with Remaining time x 2 -> 5 where 5 is $10 * 0,5 * 0,5 (price * remaining * discount)
Sure but that's not how we built proration. It's been this way for over 8 years now. I agree there are cases where you want one line item but it's not the majority of users. We built "unified proration" as a beta and we got more negative feedback and edge-cases issues, so it doesn't really work that way at scale
however we had already moved on and assumed that's how you do prorations, and worked around it. However, what I wanna know is why there's no discount value for lines that are very obviously discounted because it says it in the description
So ultimately, what I am trying to do here is help you find a solution that fits your workflow and works on our API. Any alternative wouldn't work
we never asked to change how prorations work 🙂
@vocal wagon can we pause for a minute? I'm sorry I'm really trying to help and you focus only on a part of it I don't understand
Like with the math you have, it'd never work since the quantity 4 didn't have the discount, the proration item for it will also not have the discoutn
I mean, fair, you didn't, but I'm not sure we're aligned on how it works based on the past 20 minutes and it seems important to me that we start there
we're aligned on how it works. The issue is that the remaining line doesn't have the discount field set even though it is discounted
Why is it the issue? What will this give you? That won't change the math on quantity 4
And you already know the discount, it's the one on the subscription so you have the information
it allows us to know which discount is being applied without having to "assume" it's the one from the subscription. That's the workaround we have implemented atm. It works but it's ugly as hell + requieres additional fetches from stripe just because a field that should be filled is not filled
fair enough, unfortunately it's not something that will be fixed soon so the workaround is the only way
alright, thanks for your help 🙂 we'll go that way
sounds good
Hello again, happy campers!
After looking through the different options ynnoj presented yesterday for how to display the tax amount on the receipt (which is required in the EU) I think the solution we need is either to send a custom receipt after a successful payment or using an invoice.
You mentioned that to handle 3DS for a PI generated by an invoice you'd need to bring the customer on session – what is the best way of doing this?
And looking at the docs I can find very little on how to send a custom receipt but I guess this would be done through a webhook. Am I correct in assuming this?
Thanks for the great support 🙂
@vocal wagon the easiest is to send the customer to the hosted invoice page https://stripe.com/docs/invoicing/hosted
And for the second question we don't really have specific docs though if you use Invoices you can use our official invoice PDF or receipts right?
we would like to implement subscription in iOS app. Can we use checkout and customer portal for that?
@upbeat grove you can though those only work in a webview
can i use webview for subscription?
@upbeat grove sure. Sorry this is mostly up to you and your app design. Subscriptions doesn't really matter in that flow much. That's a bit of a non answer but I think you might be missing a lot of context on Stripe first
i am just confused on when can we not use webview and need to use in app purchase method for iOS app
Ah gotcha, you want to read https://stripe.com/docs/apple-pay#using-stripe-and-apple-pay-vs.-in-app-purchases
so i can use webview with apple pay for subscription
my app won't be blocked my app store?
@upbeat grove did you read that doc? It explains which types of business models can use Stripe/Apple Pay
The use of the invoice is mostly a work around due to not being able to set line items for a PI. In general the PI has all the functionality we need, but we have to show the VAT rate to the customer on the receipt due to the laws in Sweden which currently isn't supported(?) with the default receipts generated by a PI.
Our idea was to perhaps use the invoice as a middle man to generate a PI, but have the payment flow be like when using a PI. I.e. being able to handle it in-app using firebase to talk to stripe.
We'd love to use the official PDF or receipts, but the ones generated from a PI does not include the VAT which means they are not a valid receipt in Sweden.
Would an invoice be the right way to go in the scenario? It feels like using an invoice for this is not the optimal solution since it brings a lot of extra work to the customer to pay a relatively small amount, and we fear that redirecting them through multiple pages to confirm the payment will reduce the follow through.
Like stated, everything is working perfectly with a PI - except the fact that we seem to be unable to display the VAT amount on the receipt. Is there an easy solution to this that I am missing?
Hi, me again 😅 I can't find the information about the API version I need to send to the stripe API to get the ephemeral key (https://stripe.com/docs/mobile/ios/basic#ephemeral-key) I tried the repos for android (https://github.com/stripe/stripe-android) and iOS (https://github.com/stripe/stripe-ios) but without any luck. Can I find it somewhere in a dashboard for example? I really appreciate your help!
@vocal wagon There aren't really much extra steps for the customer to pay an Invoice or a PaymentIntent, it's all mostly the same really.
And no there's no alternative(s) today beyond what you said
I understood a bit now
yeah it's a bit tricky as it's Apple's decision and we have no control over it
but it's mostly "do you sell physical products/services"
correct me if i am wrong. as an example:
Youtube needs to use in-app purchase API
but Uber can use Stripe API
@vocal wagon if you use the latest version of the iOS SDK or Android SDK you want this line https://github.com/stripe/stripe-ios/blob/13af941a6682bb4dda4debb7c3b110840b2b0c0b/Stripe/STPAPIClient.swift#L1138 so 2020-08-27
@upbeat grove yep that's correct
Howdy all,
Just after a little clarification on the Stripe Connect features between Standard and Express; Am i right in saying that Standard cannot "hold" a payment until the platform decides it is ok to send to the recipient?
E.G.
- customer pays
- platform "holds" payment until service is rendered
- service provider is paid
Is this an exclusive option to Express & Custom?
@pastel sun that's correct today (though we hope to improve this in the future)
Awesome thanks, is there a reason behind it? Seems like Standard would be much easier to implement, but we need that one feature
Standard is a lot easier to implement because they have full Dashboard access and we hold full liability for refunds/disputes/negative balances. And the owner of the account controls their own payout schedule, not the platform so you can't hold funds for them
so subscription for using software also require in-app purchases
Thankyou, @crimson needle
@upbeat grove that is my understanding yes
and in app purchase API is provided by Apple and we need to check their guide?
correct
one other thing, if the platform chose Standard and the payment was sent to the service deliverer but the service was never rendered; can the platform refund the charge? (and if so, would this have to be done before the payout is complete, or can stripe recover funds from the payout bank)
you can refund and there balance would go negative and we'd try to recover the funds
excellent, thanks! I'm assuming there's a limit to the period where a refund can be initiated?
Hmmm not entirely sure, I don't think so right now for card payments but I'd talk to our support team to be safe https://support.stripe.com/contact
Will do, cheers
If I'm having some problems with the stripe identity docs walkthrough is this the right place to get help?
@paper nexus sure! What's your issue?
so I'm going through the steps here (https://stripe.com/docs/identity/verify-identity-documents) with react and node and when I get to step 3 my post request fails
Do you know what part fails? Do you have code to share and exact error messages? You can see the logs in your Dashboard https://dashboard.stripe.com/test/logs to see if there are any recent errors
I get "HTTP/1.1 404 Not Found"
Okay so const response = await fetch('/create-verification-session', { method: 'POST' }); that line is what you call client-side and that returns a 404 without every hitting your server?
Does curl -X POST -is "http://localhost:4242/create-verification-session" -d "" work?
so the const response line I don't have yet it's the curl -X command that isn't working.
Ah okay so the server-side part isn't working
Hi. recently the finance dept. changed the spec on me, I am now trying to figure out metered billing with a monthly flat fee. Only the flat fee must be up front, and usage in arrears. I have been browsing the docs and see two options, but neither seem a professional solution to me:
A) add flat fee and metered billing and bill upfront. First upfront invoice has no usage, so no usage charge. Then before the final invoice is generated remove the flat fee portion. Seems risky if systems fail to remove in time customer is overcharged on final invoice
B) two subscriptions per customer, 1 for the flat fee upfront, and 1 for the usage in arrears, only with this the customer will be charged 2 time between the first and last invoice
Do you have any advice on a more professional way to handle this pricing structure?
@paper nexus did you write that endpoint on your server? The part that creates the VerificationSession. We don't give the exact/full code in that doc and expect you to build this end to end
ah no I haven't, which docs go over that?
@cosmic galleon What I would do is have a Subscription with 2 separate Prices, one for the flag fee and one for the metered usage. When you create the Subscription we charge upfront for the flat fee and we charge nothing for metered billing since no usage is reported. Next month there will be the flat fee and the past month's reported usage
What happens then on the final invoice? For the final month only the usage would need to be charged
@paper nexus we don't really have specific docs for it unfortunately, we assume you have already built a POST route on your server
@cosmic galleon yeah you'd mark the subscription to cancel at the end of the period and so we'd charge just for the reported usage
@paper nexus something like ```app.post("/create-verification-session", async (req, res) => {
// Create the verification Session
const verificationSession = await stripe.identity.verificationSessions.create({
type: 'document',
metadata: {
user_id: '{{USER_ID}}',
},
});
// Return the Session's secret
res.send({
clientSecret: verificationSession.client_secret
});
});
@cosmic galleon @paper nexus I have to run but if you have follow up questions you can ask @hollow prairie who is taking over
Hello! 👋
thanks
Thanks @crimson needle, Lets use example to make sure we understand each other correctly:
Customer has active subscription from January 1st to September 1st
If I add both prices to subscription, at 1st Jan they would be charged flat fee and 0 usage.
At Feb 1st they would be charged flat fee for Feb, and also usage for Jan.
Then I believe 1st Sep they would be charged usage for July, but also another flat fee.
9 invoices for 8 months subscription.
I believe they would be charged 9 flat fees for 8 months, when they should only be charged 8 flat fees
@cosmic galleon Yes, with recurring prices (non-metered billing) we invoice upfront. So in your example, the flat fee on Jan 1st would be for the month of January
Ok, so the flat fee would not appear/be charged on the Sep 1 invoice?
@cosmic galleon No, not if the subscription had been cancelled beforehand. Your use case of a specific subscription length, is that common in your business?
I expect the subscription length to vary customer to customer, but usually full month billing periods (unless the customer is in breach of contract)
@cosmic galleon Have you seen subscription scheduling? You could use this to automate the 'cancellation': https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#installment-plans
Learn how to use subscription schedules.
@cosmic galleon i.e. set the iterations according to the needs of that specific subscription/customer
Hello hello everyone 🙂
Yeah that link would be handy if contract length was year for example, with monthly billing. Unfortunatley it's not.
My only concern really was in my use case, the customer being charged 9 flat fees for 8 months usage. If stripe adds this upfront and considers the cancellation state before adding, then has an extra invoice for the final usage it will be OK. I know how to configure. I'll of course test this, but this conversation saved me a lot of testing time, if it wouldnt work
@vocal wagon Hey!
@cosmic galleon Yeah that should work as long as your metered usage is reported in the current billing period:
When canceling a subscription at the end of the period, any usage reported before the subscription ends is billed in a final invoice at the end of the period. Canceling a subscription immediately does not bill for any usage accrued during the final billing cycle.
https://stripe.com/docs/billing/subscriptions/metered-billing#reporting-usage
Learn how to record usage and bill for it at the end of a subscription period.
@cosmic galleon So there would be no extra invoice for the flat fee on Sept 1st, only the final metered usage for Aug
Excellent. Thanks for your help. I find this forum very useful.
Also, good note about immediate cancel not billing for any usage.
@hollow prairie hey 🙂
Hi, I'm new I have a email from stripe but I don't remember I made a account. I've activated Klarna.. Is this link toghether?
Hola, atendeis en castellano?
I am a freelance developer, Prestashop expert. I already work on some prestashop stripe developments (connect, billing, etc...) but right now I am struggling with something xD
I am experience a strange behaviour with one of my stripe modules, Do you think I can share it here so maybe someone will be able to see what I am doing wrong 🙂 ?
@vocal wagon Hello. I'm afraid we can only offer English support here. For other languages please contact support: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
@cosmic galleon Glad to hear it! Let me know if you have any follow-ups
@vocal wagon Sure! Not super familiar with Prestashop but happy to take a look at anything Stripe related
Coool ! Thank you, actually here Prestashop seems to not interfer, I will show you some screenshots, I just have to hide personnal identifications
@lusty ridge Hey. Hmm, Stripe supports Klarna but we're not directly affiliated. I recommend you contact support. This channel is more for developers: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
don't worry @hollow prairie. I have a doubt with your ios SDK. I would like to know if we can modify look & feel that you have predefined or just only admit changes of text, colors, etc.
Do you think I can share some pi_ IDs ? or do I have to hide any ID ?
@vocal wagon IDs of objects are fine, just no keys! (pk_xxx, sk_xxx)
ok
@vocal wagon STPPaymentCardTextField can be customised to an extent yes: https://stripe.dev/stripe-ios/docs/Classes/STPPaymentCardTextField.html
could we do something similiar to this?
@vocal wagon I'm not sure what that is I'm afraid. But not directly using STPPaymentCardTextField, no
So there are 2 screenshots of the same transaction. In one screenshot you get the last loggued events that say the customer has been debited of the amount (and the fact is the customer have actually been debited of the good amoung). BUT in the second screenshot you see that the related payment has Failed =/. I can't understand why... Can you say why the payment is considered as Failed by Stripe ? Thank you very much !
mmmmm... I don't know what's happening beacuse I can't add my mockup...
Can someone help why I get require is not defined error
@vocal wagon Can you please paste the ID of the PaymentIntent object you're questioning? Easier for me to lookup
@agile musk Hello, this doesn't sound specific to Stripe. Can you share the code in question?
Sorry to bother here, is there a help desk were I can chat with someone. Because I can't login so I can't ask for help. 🤷🏻♀️
Hi Team .. I have created an express account with account URL. When I tried to create again account URL for the same account, it got generated with which I have reviewed and updated the details .. But the events created at this point are as follows account.external_account.updated, account.external_account.created, account.external_account.deleted
@lusty ridge You can 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.
@vocal wagon What makes you think the payment failed? Looks like the charge was refunded to me
My doubt here is .. can I do update of account in this way as it is providing me the edit options. and second one is why it is creating created and deleted events . Updated event alone is enough right ?
The payment didn't failed, so we refunded the customer, but Stripe considered the payment has failed and didn't send any notification to our shop. I think that because of my first screenshot ("Related payments" -> Failed)
that's what we don't understand. The payment didn't fail but Stripe say it did
Even if the logs say otherwise "pi_.... has succeeded"
=/
Hey can anyone help me out with one issue
@vocal wagon
Stripe considered the payment has failed
What makes you say that?
@hollow prairie Hi can you please help me with one issue
Hi, how can I delete a cardholder (after disabled)?
@junior ivy I'm not sure I understand your question. Which part of the account are you trying to update as the platform?
@maiden meadow Please ask your question and I'll do my best to help you!
@hollow prairie Im updating the connected express account..
okay thanks
I want to passs last name also with my payment request object
but seems there is not parameter define for the last name
Can you please help me with that
@vocal wagon Got it. So that related payment is the initial charge attempt for that payment which the bank declined requesting authentication from your customer. This was handled as a part of your Stripe integration, the customer successfully authenticated the payment and was successfully charged
Hey all! I'm running into (another) issue with Expo/Stripe integration. I am running Expo 0.42 and stripe-react-native 0.1.4 (thanks to @mighty hill ). Everything works great when I run the app through Expo Go, but as soon as I create a production build and run on the simulator or if I push through Test Flight, the app crashes and the crash log reports "Expo encountered a fatal error: Unhandled JS Exception: Invariant Violation: Native module cannot be null." If I remove all Stripe references/code the app loads fine. Any ideas on what could be causing this?
@vocal wagon Hello. I'm not sure I understand the question
@junior ivy Specifically what part of the connected account? Can you share an event ID? I'm trying to understand the behaviour you're seeing
Oooh ok thank you, but when the payment worked, there was no line related on Related Payments list
is it normal ?
In stripe dashboard, I want to delete a cardholder, under Issue Cards
@vocal wagon You're on the page for the detail of the successful payment
Ohh ok I got it now
thank you
Thanks @hollow prairie 🙂 Have a nice day !
Guten Tag... Ich hoffe hier versteht auch jemand Deutsch?... ich suche Hilfe für die Integration von Stripe in meine Webapplikation (HTML5/PHP). Bin jedoch ziemlicher Anfänger in der Integration von APIs.
@left trench Hey there! That's a very specific issue that's difficult to debug here. I found a similar issue on the GitHub repo here: https://github.com/stripe/stripe-react-native/issues/352
Does that sound related to the problems you're seeing? Otherwise, I'd ask you to write in so we can look at your issue in a little more detail: https://support.stripe.com/contact
After installing the package and using the provider in the App.js i get Native Module can not be null , my package.json looks like this [{ "name": "react-native-starter&a...
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
@vocal wagon Np!
onboarded account as express type and then tried to update. These are the event IDs after I update.. evt_1JG0qv2RcTelTv1SreN3MkuO, evt_1JG0qv2RcTelTv1SmIuxi6AA, evt_1JG0qv2RcTelTv1S8R8L5djO
@vocal wagon Hello. I'm afraid we can only offer English support here. For other languages please contact support: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
@hollow prairie any suggestion for me
That issue looks similar to mine. I'll try expo run:ios and see what happens. If that doesn't work, I'll write in as you suggested. Thank you!
Hi Everyone,
I am trying to integrate stripe standard account. I am able to onboard individuals as sellers and generate stripe seller ID but when i am trying to initiate a transaction from buyer side, it is not going through
can someone please help?
Both the seller and buyer are from India
and the platform is in Canada
@maiden meadow Checking!
@maiden meadow Can you share your code please
How to delete cardholders
Sure
@junior ivy Checking now
var paymentRequest = stripe.paymentRequest({
country: 'US',
currency: 'usd',
total: {
label: 'Total',
amount: 2999,
},
requestShipping: false,
requestBilling: false,
requestPayerName: true,
requestPayerEmail: true,
});
Here requestPayerName is true but there is no sepecific parameter define for last name
@vocal wagon Looking into this
I want to pass last name too along with the name
@maiden meadow We don't control the UI and fields that are shown by the browser (be this Google Pay or Apple Pay) unfortunately
or any API call for delete (Generally I find APIs for create, update, list not for delete)
Hi,
We currently integrating Stripe Connect to create a marketplace. For now we though that Express account is the best solution to our needs, however we though that the user has too many possibilities with his express dashboad.
For example, is there a way to disable the user to do not create subscription and is there a way to disabled the fact to create invoice and send invoice email ?
Thanks!
@vocal wagon It appears cardholders cannot be deleted. Confirming
Thanks. Hope I will get better clarity on this.
@tiny echo Hey there. Are you using direct charges?
I thought that after disabled a cardholder, you can delete after a certain amount of time. It's a messy for those using only dashboard
@cunning aspen Hmm, are you sure you're using Express accounts? They shouldn't have access to subscription management etc
No. I am passing a customerid.
@junior ivy Ok, what specifically do you have a question about in relation to those 3 events? You added the account, it was updated to be the default for that currency (by the system) and was then deleted
hello does anyone know how i can download the .JSON file i need to migrate my customer data to a new payment system? have emailed stripe but no reply for 2 days. thanks in advance!
Hey,
I am not sure. What i know is there a platform fees applicable in a transaction between buyer and seller.
@graceful pine Hey there! Migrate which customer data? From where? Which new payment system?
I hope that helps or let me know if you want more info
@tiny echo Can you share the ID of a PaymentIntent that isn't working as expected
Checking
@hollow prairie Sorry it's in french, but on this picture we are logged on an express account and we can start subscription (abonnement) and manage product & prices
@cunning aspen In this instance, you're viewing that Express account as the platform account (hence the blue bar). The Express account owner does not have those controls
@hollow prairie oh ! it's very confusing, thanks
so i am moving from STRIPE to VIVA or SQUARE. i currently have existing subscriptions (using woocommerce subscription plugin) which, if i am to move payment provider, my subscribers all have to manually re-enter their cards details ( this will mean i estimate to loose over 50% of current subscribers ). STRIPE mention on their website that they can provide a .JSON file with all customer data to which my developer can then send to SQUARE and then we update the tokens one by one - meaning they do not have to 're-subscribe'. does that make sense? 🙂
Mornin folks
The account still exist in my platform .. why is that Im getting deleted and created events when I just do the update ?
@graceful pine Support are better equipped to help you with data migrations. https://support.stripe.com/contact
If you've written in already, they'll be in touch!
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.
@junior ivy Those events are for external accounts (i.e. bank accounts). Not the actual connected account being deleted/updated
thanks. yes i have written its just been a few days and since i am no longer using stripe all of my automatic subscriptions are failing! so i need the file ASAP i am just unsure how long stripe will take to get back to me!
do stripe have a phone number or do i simply have to wait for an email back?
thanks for your help.
@graceful pine if you're logged in to your account to can "request a call back" from a support agent here: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
i dont know if its just my account but i dont have an option for a call back
@junior ivy As @hollow prairie mentioned this is your express account holder removing their external bank account for payouts during the onboarding flow, not about the express account itself
okay .. thank you ..
Ah gotcha, then yes you'll need to email & be patient for them to respond to you 👍
Good morning,
I'm accepting payments in USD, but we receive it in BRL.
Is there any information about Payment exchange rate via webhook that we can have in order to issue the brazilian invoice (in BRL)?
Ah, thank you for the answer! I will try and set up an invoice solution then. Thanks for taking the time 🙂
no worries thank you so much for your help
@stable pagoda How are you collecting payments? Are you using, eg, payment intents with your own custom integration?
Payment Intents with API PHP
We encountered something unexpected today.
When creating SetupIntents with usage set to "off_session", we wanted to test for unhappy paths when a charge fails.
This is important because all of our usage of stripe involves payment methods that are saved and used later.
However, confirmCardSetup for most of the cards in this list in test mode is failing rather than succeeding and only failing when we make the charge. https://stripe.com/docs/testing#cards-responses
We see the same behavior when we try to add any of those cards in the dashboard (in test mode of course).
Is this the expected/desired behavior?
It makes it very difficult to test our only usage scenario, we have to do extra mocking instead of just running against the api with a test key.
Learn about the different methods to test your integration before going live.
Got it - so you can find this info in the "balance transaction" under the charge in the payment intent.
https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-exchange_rate
From the payment intent ID, you can retrieve this using expansion to get the charges.data.balance_transaction:
https://stripe.com/docs/api/expanding_objects
To do so follow the example here:
https://stripe.com/docs/expand/use-cases#stripe-fee-for-payment
(but you're interested in the exchange rate as noted above, not the fee details)
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Learn how to leverage expand to perform common tasks
hi! anybody available for a quick subscripton question?
i've just implemented a feature to our platform where users can buy domains thru us. a domain is bought for 12 months but due to auto renewal we get charget at about 10 months. so always 2 months early
how can i create a stripe subscription which is charged every 10 months but spans 12 months? -- or better worded a subscription which has an interval of 12 months but is charged 2 months early
if i just set the interval to 10 months it will roll over, lets say domain is bought @ january, first year payment is collected @ october, which is good
but after that the 10 months roll ower and next year it will be @ august which is bad
@hasty jackal Can you describe the scenario you want to test? To test setting up future usage, you need to use the SCA test cards:
https://stripe.com/docs/testing#regulatory-cards
These support some specific flows but each card has different behaviour.
Learn about the different methods to test your integration before going live.
Looks like this will help for some scenarios at least. Thanks! I'll give it a try.
Hmm i think this should be possible using the billing_cycle_anchor to set the next billing date. To make sure I understand what you want, this is effectively an annual subscription (bill once every 12mo) but with the first renewal only 10mo after creation. Is that right?
All renewals should be 2 months early
relative to what though?
if you buy a domain @ january it's yours till december but we want to charge you in october every year
so 2 months early from the end of the subscription every year
Like it's July 2021 now. Next year, you want to have me pay in May 2022. What happens in 2023?
Do you want to charge in May or March?
i want to charge you every may
(2 months earlier than last year or just offset from the start)
so yeah not sure if this is possbile with stripe
Yea its just an annual sub with an initial offset, one sec while i test
is this something one can solve with periods or what should i be looking into?
No, at the core you want annual subscriptions, so I'm trying to figure out the right way to manipulate the billing cycle anchor to get what you want:
https://stripe.com/docs/billing/subscriptions/billing-cycle#new-subscriptions
Subscriptions are billed on a cycle, learn how to set the billing date.
Hi,
We are strugguling in order to access at the express account dashboard in a test environment.
We have setup all test keys, we use the stripe onboarding and in the callback in localhost we save the stripe_user_id in order to access https://dashboard.stripe.com/test/connect/accounts/<stripe_user_id> but we are stuck at the login page.
What is the trick ?
Thanks!
There are a few options:
- Use
backdate_start_dateto anchor the sub to (eg) May 1 2021 and set thebilling_cycle_anchorto May 1 2022 when creating the sub.
https://stripe.com/docs/api/subscriptions/create#create_subscription-backdate_start_date
Downside: the first invoice will show a backdated start date that might be unexpected - Create the sub without either of those, then use the trial approach in the doc to set a trial ending May 1 2022 to reset the billing cycle after the trial ends
https://stripe.com/docs/billing/subscriptions/billing-cycle#api-trials (be sure to note that you'll want to disable prorations on the update call)
downside: the sub will appear intrialingstatus for the first cycle, though you likely dont need to expose this to your customer - Use Subscription Schedules to set a new phase to begin May 1 2022 with the same price, using
billing_cycle_anchor=phase_startandproration_behavior=none
https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#resetting-anchor
https://stripe.com/docs/api/subscription_schedules/create#create_subscription_schedule-phases-proration_behavior
downside: additional complexity (but with a really good representation of the abstraction)
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Subscriptions are billed on a cycle, learn how to set the billing date.
Learn how to use subscription schedules.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@frail oriole Those options each have their advantages and disadvantages, so i'd suggest looking at each and deciding what is the best fit for your company & customers
Hi, I was going through this doc: https://stripe.com/docs/issuing/cards/pin-management and I wanted to check the API for /v1/issuing/verifications but it says page not found here: https://stripe.com/docs/api/issuing/verifications Does anyone know what is a working link to this page?
Can you rephrase what you're trying to do? WHat do you expect that URL to represent / who would access that?
Hi, if our integration of card payments using 3D secure is working in test mode, should it also be working when live or is there anything extra required? We see quite a few abandoned / cancelled payments due to 3d secure and we were not sure if it's us or just users forgetting their 3d secure credentials and navigating away?
We are using stripe elements on the client
1 - Stripe Connect, test environment
2 - We follow the Stripe onboarding in order to create an express account for our platform
3 - After the onboarding, the callback give us a stripe_user_id which represents the express account id
4 - We struggling at this point : we are not able to access the express dashboard for the express account created just before
That url you shared before is not how you'd use the Express dashboard. You need to generate ephemeral links using the API and send the returned URL to your authenticated user. See docs here:
https://stripe.com/docs/connect/express-dashboard
Express provides its own account management and reporting features for users, built into a Dashboard hosted by Stripe.
So if i understood right, i must do a create paymentIntent with setup_future_usage=off_session for the first time of on-session user and after the first month in off-session i redo a create paymentIntent with the same customer's card and the 3ds secure will be auto validate without action of user ?
Is your integration using Issuing already today, and are you logged in to your Stripe account?
hi synthrider, i have my request-id today 😄
That's right - more precisely the setup allows the bank to exempt the payment as merchant initiated. Note that the bank always has the option to require 3ds auth, though, so you should be prepared to handle that case.
ok thx, i going to try this
It should work the same way if you've tested with Stripes SCA test cards, yes. Do you have an example payment ID I can look at?
Hello there, I had a query:
Is it possible to create a connected account entirely server side when every details are available? (for stripe connect)
@fathom quest Yes, you can do this with custom connect accounts and provide all verification info directly via the API:
https://stripe.com/docs/connect/identity-verification-api
Learn how Connect platforms can use webhooks and the API to handle identity and business verification.
Yes I have a Payment ID of one that failed, is it safe to post here or DM it?
@daring lodge I'm not sure, is that page up for you? I'm not logged into my account
@daring lodge after logging in the page still says "Page not found"
And we are using issuing as well
It's safe to post a payment intent ID - pi_1234
pi_1JFaz3EI4nxwUjY45aiBLsc5
Hmm if you're logged in to an account using Issuing I think it's expected to be available. Are you possible logged in as a separate developer account that isn't an active issuing user?
@daring lodge It's just the docs page that I can not get to
On one of our account some charges have a "calculated statement descriptor" of WWW.FACEBOOK.COM but we have the settings on the account setup to have a statement descriptor and its used on most of our charges. Why would FB be showing as a calculated descriptor and how do I stop that from happening so uses the descriptor we have configured on our account??
This looks like the authentication indeed failed relatively normally. You can see the details on this in the last_payment_error:
https://stripe.com/docs/api/payment_intents/object#payment_intent_object-last_payment_error
if you retrieve the PI
You'll need your customer to try again using other payment details (eg: confirm in the client app again)
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Sure, but this access is tied to your account. If you're in a different account you might not have access. Can you share you account id, or any stripe object id related to your account?
ok great, we really just wanted to confirm these are normal failures due to customer input etc and not some configuration we missed for 3DS when live. Thanks once again for you help @daring lodge 🙂
Can you provide an example payment id like pi_123 @astral quartz so i can look at this?
@daring lodge how can I easily find my account id?
is the charge id ok?
https://dashboard.stripe.com/settings/account top right corner there
yep
ch_1JEzI4G3Gd00WR9LZy7Cy10Q
@daring lodge acct_1Fi0DiBjVIXV2NiI
That's the descriptor for the connected account - just checking some things about whether this is expected or not given your configuration
How do we NOT use the connected account descriptor. Our customers don't even set that up. They just provide their identify info which includes their business website which is where I am guessing stripe is calculating that value. We need all of our charges to use our statement desc setup on our account not the connected account.
Hello, I'm looking into Stripe Checkout for my company's marketplace. Adding images to a line item seems to be deprecated (https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-images). Is there an alternative way to do this? Hoping that the image can be a url that I pass in from Cloudinary or a third party host
Still looking at this @astral quartz -- is this behaviour that has changed recently, or has been this way for some time? Can you confirm if this is affecting other connected accounts?
I only realized it when we got an email from somone asking about a charge and it said FB on their CC statement. I am guessing its recent as we have had this product in production for many years.
It says here (https://stripe.com/docs/connect/statement-descriptors) that without the on_behalf_of it should be using the platforms desc not the connected account
Learn how statement descriptors work for charges with Connect.
As the docs note, you can add images to the Products associate with Prices that you're using
If passing price or price_data, specify images on the associated product instead.
I also checked our code and we create the connected account specifically with payment statement descriptor as well... maybe this is just an old connected account where the descriptor is bad?
Let's call this a bad acct.. I'll figure out how to get it updated to the correct statement desc so if it uses the connected accounts descriptor it will be correct
Yep, still looking. It does seem unexpected to me too.
@astral quartz I want to make sure there is no other issue for you 🙂 going to look at some other recent charges
sounds good.. thx
I think this is just going to take an update to the connected account statement descriptor for the Charges API @astral quartz
still confirming, but your other recent charges show your platform name, with that being set on each connected account (so its analogous, just a different value)
Thats what I did.. unfortunately I don't know if any other connected accounts need this update as I can't list them by searching for that
Hello!! Using the stripe-react-native SDK, is anyone getting {PaymentMethod: undefined} as a response when doing a createPaymentMethod?
@summer prairie hello, can you say more, what version of Stripe ReactNative SDK are you on? Are you using Expo or not?
Sorry, I forgot. Yes I'm using expo and the Stripe ReactNative SDK version is 0.1.5
@summer prairie Expo 42 does not support 0.1.5, please switch to 0.1.4 and try that.
Found a way to look them up.. forgot we have a local copy of the stripeData per connected acct.. no other accts have a bad descriptor
Hi, how do I get production stripe api keys? Is the UI flow similar to test api keys? I have a developer role, so I see only the test api key in Developers->Api Keys
@sweet fjord you get them from the Dashboard with the "live mode" toggle enabled, recommend reaching out to the Support team to help you get those API keys (maybe someone with a different role might have to get them for you or change your role)
@bold basalt thank you
so i had test,
now i have an incomplete status.
req_cSefoYfxfCIrYX
i don't understand what i do badly :/
@storm walrus hello, looking
@astral quartz ah nice, was also going to suggest listing and filtering your accounts on the setting:
https://stripe.com/docs/api/accounts/object#account_object-settings-payments-statement_descriptor
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@storm walrus that request created a PaymentIntent and confirmed it. The PaymentIntent has a status requires_source_action. That means it needs to be authenticated by the customer before it can become successful. Your code needs to confirm this PaymentIntent on your webpage next, using Stripe.js. Are you familiar with that step? Your integration is missing like a major part of how PaymentIntents work
@daring lodge me again, what call through SDK should I do to call /v1/issuing/verifications ? https://stripe.com/docs/issuing/cards/pin-management
@vocal wagon hello, looking, one sec
Hello everyone, Im currently trying to launch a 3d secure flow manually on android, wondering if this is posible, if possible any docs that would help me .. thanks
to each new interlocutor I am obliged to re-explain ahah. I make a first paymentIntent on-session when user buy my plan, 3D secure, all good, all works. but after the first month i need to take an other payment (recurring). your mate said me to stop use createCharge on the second payment too and use paymentIntent, and other mate confirm me that i must do remake a paymentIntent. but user is no in front of computer for confirming monthly
Can you qualify for Chargeback Protection by using credit cards on file or do you have to type in credit card info into the Stripe Checkout every single time?
@storm walrus ok that helps, I can elaborate ...
@trim star hello, please run that question by Support at
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.
Does Stripe offer a way to limit the number of trials allowed by one customer?
@humble tangle hello, yes possible, you just use a test magic card like the card ending in 3155
@cobalt plaza hello, no you would have to manage/detect that on your end
Ok thanks
@storm walrus ah got it
I have changed from version 0.1.5 to 0.1.4 but it still returns the same
@storm walrus you're using the 3220 card. That always requests authentication, even if you set up the card before. You need to use the 3155 card, that can be set up, then the future "off_session: true" PaymentIntent will not require authentication
oh, it's just because is the wrong card ?
@storm walrus so what is missing from your request is: off_session: true on the recurring PaymentIntents (you need to flag them as off session)
ok going retry
@storm walrus and you need to use the 3155 card in the "on session" PaymentIntent, the 3220 card is built such that it always requires authentication
@summer prairie let me try one sec
ok, thanks 😊
@bold basalt gentle reminder 😅
@vocal wagon will be a bit, lots of questions just came in! and also I'm not the most familiar with Issuing so catching up mysefl
No worries, I appreciate the help 🙌
Still trying to understand why you can't view the other doc, hoping to get you an answer there, but for the API question: which SDK/client are you using
Java one, I can't view that other doc for some reason, that's why. I really would prefer to get it from that 404 page 😅
@bold basalt I need to launch 3ds without using the input card widget, this is mainly for a card that was already added and went through 3ds but want to trigger again to confirm
@humble tangle you create a PaymentIntent and pass payment_method: pm_123 where pm_123 is the already attached card PaymentMethod. Use the 3220 card, it will trigger authentication always
Im taking over from Wojtke as hes logging off 😄 Could you let me know if you have any updates! Ty!
@full tulip ah you're looking for Java snippets for this, right? just out of curiosity, this is a fairly new feature that you're using right? (like I'm not the best with Issuing so saw this for the first time myself)
Yeah, we just want to know roughly what sdk object to use or what api to call etc. But we can't do that without some docs. We can make some guesses, but Id rather not do that 😄
thx u thx u thux u, its work !
@full tulip I think this API resource doesn't exist in any of the server-side libraries given its "preview" nature ... So (unless I'm wrong) you need to make the request manually.
The API docs say that the 3 required parameters are
1/card: ic_123 the Issuing Card obj ID
2/ scope either "card_pin_retrieve" or "card_pin_update"
3/ verification_method , either "email" or "sms"
So you might have to manually make a request to /v1/issuing/verifications with those POST body params
@storm walrus nice! great to hear
Ok thanks, making a manual request isn't a huge deal, so I will talk with the others. Thanks. I'll message back if I have any issues
In configuring automatic renewal for subscription, what's the difference between these 2 options? Not clean to me how they impact things practically. Thanks.
@abstract compass as is means Invoice would be in status open and can be paid later via the API, charging a card or out of paid, or marked as uncollectible or voided. uncollectible you can use for reporting purposes as "unpaid/bad" Invoice. You can later still void it or pay it. https://stripe.com/docs/invoicing/overview#workflow-overview
Understand the workflow for Stripe Invoicing.
We are trying to figure out what to set this to. We collect user's credit card prior to starting their subscription. This is a digital subscription, so there is no manual payment. Consequently, renewal should only fail if that credit card gets cancelled or if it expires. In that situation, we would like to give the user a grace period before cancelling their subscription automatically. Once cancelled, the user can't "restart" the subscription, but can signup for a new one..... Given this, should we be setting this as uncollectible? What else should we do?
Hey #dev-help ,
We have an issue with brand returned in payment capture response when we make a transaction with gPay using Discover/Amex cards. For these transactions, brand in the payment capture response is returned as Visa instead of Discover/Amex. Can you please look into it?
Payment intent id for Amex - pi_1JG2xYJAWJAHRwsMaQaqAk6x
for Discover - pi_1JBPqPJAWJAHRwsMNfJ4Ylh2
@abstract compass I'd say leave it as open then.
" renewal should only fail if that credit card gets cancelled or if it expires" -> renewals will also fail due to just general card declines right... a bank could allow a charge one month and decline another. Everything else you said is doable yeah
@frigid light hello, looking
@frigid light ah this is intentional. With test mode API keys, you use a "real" card on Google Pay but Google tokenizes a 4242 card instead since you're using test mode keys, so that card is charged ultimately eventhough you select the Discover real card. It is just by design how test mode works.
@bold basalt Got it. So this should not reproduce in production I believe.
@frigid light correct, it works right in live mode, Google won't tokenize a 4242 visa test card but instead the real card.
@bold basalt cool Thanks.
Hi I use ephemeral key to show paymentsheet. Do I need to genrate ephemeralkey everytime I do a paymentintent or once is sufficient?
@spare harness hello, generating a new EphemeralKey with a new PaymentIntent would be the right hting
Ok because I can't show the list of saved card in the payment sheet
@spare harness what do you mean
@spare harness are you also creating a new Customer each time?
@spare harness if you create an EphKey on an existing Customer,it should show their attached cards
No. Once it's created I do not create it again
@spare harness well cards that are attached to a Customer do show up in PaymentSheet
Strange it doesn't
@spare harness so maybe something is off... share a Customer ID that you create PaymentSheet on, I can have a look
@spare harness just Customer ID here is fine
@spare harness that had the 8431 card attached to it, through PaymentSheet, right?
@spare harness gotcha, the other card is a "Card" object, not a PaymentMethod. "Card" objects were basically Token objects, attached to a Customer (so both Cards and Tokens are legacy).
That "Card" object is found under the sources: hash on Customer. PaymentSheet only works with PaymentMethods so that Card won't show up on PaymentSheet.
@spare harness basically Customer objects can have legacy cards under the legacy sources: field, or have PaymentMethods attached to them
PaymentSheet being a new component, only works with the latter, not the former, by design
@spare harness yeah the amex card should show up in PaymentSheet the next time you show it, but not the 3155 visa card.
It doesn't
@spare harness can you run through that PaymentSheet and add a new card, like a mastercard and share the PaymentMethod ID or Customer ID
Yes sure
I ahve just added this card through payment method
pm_1JG5QrHzrCChm632Mz2lHBxW
customer id: cus_JtGSTTSo9qxp8R
@spare harness lemme try it out, one sec
@spare harness need to set up a quick project on 16.10.0 with payment sheet on Android, back in a sec
@spare harness what version of the SDK are you on? I recall you mentioning 16.10? or am I imagining that
16.10.0
@bold basalt Im doing the following but I cant get the web view to pop up
@spare harness stepping away for a sec but will repro in a bit if you're still around. I have take PaymentSheet for a spin and it does work fine for me (i.e. shows the expected attached cards) but can repro it for you in a bit
Would you please share the code of paymentintent code in api? maybe I miss something?
I share you my code:
var service = new PaymentIntentService();
var createOptions = new PaymentIntentCreateOptions
{
ReceiptEmail = user.EmailAddress,
Metadata = new Dictionary<string, string> { { "from", user.Id.ToString()}, { "to", AIdUser.Heros.Id.ToString() } },
Customer = "cus_JtGSTTSo9qxp8R",
Amount = CalculateOrderAmount(createRequest.Price),
Currency = createRequest.Currency,
ApplicationFeeAmount = applicationFeeAmount,
TransferData = new PaymentIntentTransferDataOptions
{
Destination = AIdUser.Heros.StripeAccountId
},
};
var ephemeralService = new EphemeralKeyService();
var options = new EphemeralKeyCreateOptions
{
Customer = "cus_JtGSTTSo9qxp8R",
StripeVersion = "2020-08-27"
};
var key = ephemeralService.Create(options);
PaymentIntent paymentIntent = service.Create(createOptions);
can someone help me with this?
@spare harness sure can have a look in a bit (I do see the PaymentIntent creation request on my end)
ok thanks
@agile musk Yep, I can help! It looks like you're trying to load a Checkout redirect URL using fetch instead of actually redirecting your customer to it.
@agile musk Which guide/tutorial are you following?
In this edition CJ Avilla and Mari Puncel cover the newest features of Stripe Checkout, build an integration with node.js, and cover some best practices.
Presenters
Mari Puncel, Engineering Manager @ Stripe
CJ Avilla, Developer Advocate @ Stripe - https://twitter.com/cjav_dev
Table of contents
00:05 - Introduction
01:20 - Overview of...
@agile musk Where did you get the code you're using from?
@agile musk So your server side code looks like this and does not involve a redirect?
@agile musk What do you mean by "not all of it"?
@agile musk It sounds like you might be mixing together two incompatible ways of integrating Checkout.
sorry
@agile musk No worries! Full disclosure: you're not the first person to run into this problem, so I'd love to understand exactly how it happened so we can make things clearer and avoid this issue in the future.
@agile musk If you could tell me what led you to using this video + whatever other code you're using with it and how the mismatch happened that would be great.
@humble tangle Hello! Can you provide more information about your question so I can help you out?
@mighty hill i have a flow where i can add cards and depending on the card it will show 3ds webview and that works. Now i want to be able to show the same 3ds webview at a different flow when trying to use the saved card. Basically manually triggering the 3ds flow when needed
@humble tangle To clarify, are you trying to force 3DS client-side?
@mighty hill yes, sorry didnt clarify that, currently trying to implement this behavior in android
@humble tangle That's not how 3DS works. You can't force it client-side, it's something some payment require, but not all of them, and it's driven from the Payment Intent's state.
@humble tangle Are you trying to force it for testing while building your app, or are you trying to force it in production?
@mighty hill im trying to force on both to make sure a card has been approved and gone through the 3ds verification
@humble tangle For test mode you can use the test cards here to trigger 3DS at any time: https://stripe.com/docs/testing#regulatory-cards
Learn about the different methods to test your integration before going live.
@humble tangle For production you can't force 3DS client side, you'd need to do something server-side or with Radar rules, and it cannot be required in all cases (some cards don't support 3DS, for example).
@humble tangle Here are details about the Radar rules you can use for this: https://stripe.com/docs/radar/rules#request-3d-secure
Write fraud prevention rules specific to your business.
@mighty hill does webhooks support authentication? I read about webhook signing as well as ip address whitelisting, but is there a way to have stripe authenticate itself to my webhook?
@sweet fjord You can include basic auth credentials in the webhook endpoint URL, but beyond that no, there isn't.
@mighty hill you mean stripe can add basic auth credentials when it sends notifications?
@sweet fjord No, you would add them when setting up your webhook endpoint. You would set the URL to something like https://username:password@example.com/webhooks
@mighty hill In the app we have a flow where the user "registers" the card and saves the card with the app. In this flow we use a setup intent and the 3DS works as expected.
In another flow, the user checks out and pays using the card they previously registered. It is at this point that I would like the 3DS prompt to appear. The complication is that in the system here, our backend makes the call to Stripe, and the backend here is notified that we need to bring up 3DS. The backend notifies the app, and from there, I need to display 3DS.
How the heck do I set up payments with chargeback protection. The dashboard is so confusing and I do not see an option for that. Please help
@humble tangle If you're using stripe.confirmPayment in your app that should be handled for you by calling that method.
@atomic geyser Hello! You should be able to set it up by clicking on the Get Started button on this page: https://stripe.com/radar/chargeback-protection
ok and what app do i download? I just set it up using a browser, have yet to download an app
@atomic geyser App? Not sure what you mean, can you provide more details?
like mobile APP?
@atomic geyser Mobile app to do what?
to accept payments through stripe? or is that not a thing. sorry
@atomic geyser Accept payments from who? Can you tell me more about your use case/what you want to build with Stripe?
@atomic geyser We have a Dashboard app, but it sounds like you might be looking for something else? https://apps.apple.com/us/app/stripe-dashboard/id978516833
Run your business from your pocket. With the Stripe dashboard mobile app, you can securely log in to your existing Stripe account to track and manage your payments on the go.
Keep track of your business
• View your earnings, customers, payments, balances and payouts
• Compare current business perfo…
Learn how to save card details and charge your customers later.
so is the ony way I can use chargeback protection by having a software developer incorporate it into my website? I was hoping it would be more simple than that
@atomic geyser We have no-code options here: https://stripe.com/docs/payments/no-code
Get started quickly, without writing any code.
does that work with the chargeback protection as well?
@atomic geyser I believe chargeback protection requires you to use Checkout, so it should be compatible with solutions that use Checkout (new Checkout, not legacy Checkout).
ok i dont know how to do that, is that something that has to be done by pushing code to my webiste only or is it something that can be done through the dashboard?
@atomic geyser Sorry, I don't understand what you mean because I don't understand what you want to do. You said you want to accept payments, but from who? How do you want them to pay you? I need more details about your use case in order to help.
hey guys! I am trying to find a solution for a client and we created a stripe account selling monthly subscriptions on their website, and now the client wants THEIR customers to be able to be able to login and cancel their subscription. Is that a possibility with stripe?
im sorry. I created products on my dashboard so that I can send payment links to clients for services provided. I also ordered a card reader. So what I am asking is, how to I run payments with chargeback protection when either sending the payment link or using the reader
Hello all, I have a question about create subscription via .net library. When subscription is made the field 'payment_intent' has null value. Can someone explain me why?
@next junco Yes, kind of! We have the Customer Portal, which is a Stripe-hosted surface for Subscription management: https://stripe.com/docs/billing/subscriptions/customer-portal
You need to handle authenticating the users on your end, but once you've done that you can send them to the portal to do everything else.
The simplest way to offer subscription and billing management functionality to your customers.
Thank you SO MUCH
@atomic geyser As far as I know chargeback protection is not available with Terminal (assuming you ordered a Terminal reader from Stripe), as Terminal does not use Checkout.
Payment Links use Checkout, so those should work for you: https://stripe.com/docs/payments/payment-links
Learn how to create a payment page and embed or share a link to it.
@vocal wagon Does the Subscription have a trial period? If so there's no Payment Intent yet because there's no payment required yet.
does not
@vocal wagon Can you provide more details? Are you looking for the payment_intent on a specific Invoice? If so, can you share the Invoice's ID?
I follow the Stripe example from Stripe Git repo
hier is my request {
"customer": "cus_JtUPn7vlkIqlqa",
"items": {
"0": {
"price": "price_1JFgezLZUxSkilJlM913O1oe"
}
},
"payment_behavior": "default_incomplete",
"expand": {
"0": "latest_invoice.payment_intent"
}
}
but in the response the payment_intent is null
based on Stripe documentation shoud i get SecretKey back
@vocal wagon What's the Invoice ID?
C159974B-0009
@vocal wagon That's the Invoice number. The Invoice ID should start with in_
sorry hier it is in_1JG6JILZUxSkilJl5zpnzrWL
@vocal wagon Thanks! Looking, hang on...
@vocal wagon There's no Payment Intent on that Invoice because the total due was zero, so no payment required. Looks like the €0.01 was paid from the Customer's balance.
@vocal wagon Happy to help!
Hello guys, I'm missing a feature. I believe it would be great to have on Checkout.
Is it possible to create a Checkout payment that supports Bank payments and credit cards simultaneously. Because now if I want to save customers' credit card info, then I can't accept SEPA payments.
It would be great if we could save payments info, just if the payment method supports that.
Hi! Does anyone here have Terminal experience, specifically passing through price IDs when a card is run vs. just a total?
If you're using PaymentIntents (and not Subscriptions), Prices don't have anything to do with a single payment (it's always going to be an amount). If you need to track what products are being sold, you can use metadata to note the prices used in the amount.
But not line items?
In what context? Sorry, not sure what you're referring to specifically.
Any idea why an Account being retrieved wouldn't have the email value set? All the other values are there, but email isn't even included — it's not even present but null.
What's the id of the account?
Apologies! It's like a checkout session can have line items
Can a terminal...session...have line items?
I'm assuming no
Ah yes, it can, but it will be an amount calculated from those line items when the payment goes through and the resulting PaymentIntent won't have the line items on it. That's a specific thing to CheckoutSessions.
acct_1HAi7MIqONfMPfff
Darn! Thank you!
That account has an email set. What specific field in the Account object are you looking at for the email address?
Here's what I'm getting: https://share.getcloudapp.com/RBulGqlB
ok, and what's the request id where you don't get the value in the response? We can't see the responses from GET requests but I can check if the parameters or modes might be affecting it.
Where would I get the request ID from the PHP SDK? We're just doing Stripe\Account::retrieve()
Found it! req_637L8i3FFqxxjY
checking, might be a moment
So when you're using a live mode Standard account in test mode, you don't get personal information like the email address returned for the Account. We only let you see that in live mode.
Huh, I did not know that. Make sense, though!
Thanks for your help!
Hello Good people, I have a problem with CardField component, I am using react native latest version and I am trying to integrate stripe with my application, when I use CardField, my app crashes (Just closes) without any error or warning. Am I doing something wrong or is there any solution for this?
Hi Guys,
I'm using the PaymentIntents API,
I have a MOTO flow that tokenizes card numbers, but we also have a flow for non-MOTO payments that uses the Stripe JS integration.
I differentiate these by using metadata when tokenizing the card, and checking for this when making a payment.
// tokenizing...
$paymentMethod = Stripe\PaymentMethod::create([
'type' => 'card',
'card' => [
'exp_month' => ,
'exp_year' => ,
'number' => ,
'cvc' => ,
],
'metadata' => [
'try_moto' => true // cards added outside Stripe JS are mail/telephone orders
]
]);
when I make a payment I do this:
// making a payment...
$params = [
'amount' => ,
'currency' => ,
'customer' => ,
'payment_method' => ,
'off_session' => true,
'confirm' => true,
'description' => ,
];
$motoParams = [
'payment_method_options' => [
'card' => [
'moto' => true
]
]
];
$spm = Stripe\PaymentMethod::retrieve(...);
if (array_key_exists('try_moto', $spm->metadata->toArray())) {
// This card was tokenized outside Stripe JS. The MOTO params "don't exist" if the
// merchant does not have MOTO enabled and will error on bad parameter usage. Try
// without them if the request fails. Requests that fail parameter validation are
// safe to retry.
try {
$response = Stripe\PaymentIntent::create(array_merge($params, $motoParams));
} catch (ApiErrorException $e) {
// Likely that MOTO has not been enabled.
$response = Stripe\PaymentIntent::create($params);
}
Is this obviously wrong to anyone? The MOTO flow of this code fails.
Stripe says,
We checked on the payment and found out that this hasn’t been passed as a MOTO payment. If you check on the Request POST body there’s no indication that this is handled via MOTO API which is why the user received such error for the authentication_required issue. There’s no MOTO parameter showing.
Advise the user to review their code and make sure that they’re passing the MOTO charges correctly by following the moto document for payment intents here
but, AFAIK - these parameters are being sent... 🤔
Hello Good people, I have a problem with CardField component, I am using react native latest version and I am trying to integrate stripe with my application, when I use CardField, my app crashes (Just closes) without any error or warning. Am I doing something wrong or is there any solution for this?
What's the reason that you aren't setting up the card as MOTO when creating the PaymentMethod?
I don't actually have access to the full MOTO documentation, is this
$paymentMethod = Stripe\PaymentMethod::create([
'type' => 'card',
'card' => [
'exp_month' => ,
'exp_year' => ,
'number' => ,
'cvc' => ,
'moto' => true, <------
],
the correct way to create a PaymentMethod that uses moto, in addition to passing moto in the payment_method_options in the Payment request?
If your app is crashing, there's bound to be an error somewhere. I'm not all tat familiar with ReactNative but try something like https://stackoverflow.com/questions/62960488/how-to-get-crash-logs-for-a-react-native-android-app-that-crashes-immediately-on
@sick talon I have opened a simulator console and I got an error like this ```Jul 22 21:59:24 Shabareeshs-MBP hcifrontend[86333]: assertion failed: 20F71 18D46: libxpc.dylib + 50260 [26B6416F-496E-32F6-AC9D-FFCD86331B43]: 0x7d
Jul 22 21:59:26 Shabareeshs-MBP com.apple.CoreSimulator.SimDevice.A3F35FF8-84EB-4E42-A37C-661E5382AD55[70543] (UIKitApplication:org.reactjs.native.example.hcifrontend[037a][rb-legacy][86333]): Service exited due to SIGILL | sent by exc handler[86333]
Hello all! I would like to ask a question regarding stripe built-in checkout.
Is there a way to save customer payment information during payment with pre-built in checkout ?
In documentation they have an example with custom payment flow. I have used also setup intent which is for future payments but it's not the same experience.
I am guessing this is causing something, but not sure what is the solution
It's going to be "payment_method_options[card][moto]"=true whether you create the PaymentMethod with a SetupIntent or if you use the PaymentMethod with a PaymentIntent. based on your code I would say check that you're passing in the moto params properly as that value in the POST params.
Ok.
Yeah, that error is unfortunately too vague to really know what's going on. 😦 I see there are threads like https://github.com/jhen0409/react-native-debugger/issues/81 that discuss it but it sounds like a bug somewhere between your OS version and RN itself.
No error with adb logcat also
You have to use the server+client version of Checkout to get those additional functions. ala https://stripe.com/docs/checkout/integration-builder
So there is not way to achieve "saving payment information" with the pre-built checkout only?
You need to use the server+client version and pass https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage
(Assuming that by "pre-built checkout" you mean the client-side version of Checkout where you just paste the HTML onto your page)
pre-built checkout is the one I am creating a session and just redirect to checkout page
without having to embed stripe ui related on my app
OK so if you're creating a CheckoutSession on the backend first via the API, you'd create it in payment mode and pass https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage appropriately. Then the resulting PaymentMethod will be attached to either a new Customer (or the one you specify) and set up for future usage.
Nice !! thank you I will try that out!
need help my strip machine wont read credit card
What's the error you are getting?
actually there is no error when i swipe credit card all members info comes out on one line only
Sorry but it's not clear what you mean by comes out on one line only. Do you have a request id for an API request you're making, an account id, or something else that we could look up?
when i am going to run a payment when i swipe the credit card usually the name and card number goes in there assign boxes well when i swipe all the information on card stays in the box where member name is
Sorry, still not understanding what you mean. You're using Stripe Terminal, right? https://stripe.com/terminal
@daring radish just to confirm, is this a follow up to an ask you made before? Just to make sure we look at the previous context/info shared
#dev-help message was the previous convo
@crimson needle I am asking this for the first time
Sounds good
I'm asking because someone reported https://github.com/stripe/stripe-react-native/issues/449 yesterday after talking to us here
@crimson needle ah ok, I just looked at this issue, which is similar to this but for me I am unable to see the component also, I am using CardField on one of the pages, as soon as I navigate to that page, my app crashes
No error/warning, I tried opening the simulator console and logcat also I used, but I couldnt get any help from these
@crimson needle and this is happening only with ios. In case of android, its working fine
Ack thanks for the info, @mighty hill will be helping you and I'll follow along (I don't understand React Native well)
@daring radish The console error from the iOS simulator you posted earlier... does it really say this:
Service exited due to SIGILL
Are you sure it's SIGILL and not SIGKILL?
@daring radish That indicates an illegal instruction, which is pretty unusual/rare. Are you using a strange environment? Like are you using a Hackintosh or something like that?
@mighty hill nope, My OS is BigSur and all normal environment, nothing special I am using
@daring radish What version of iOS? Have you tried different versions?
@mighty hill ios 11
looks like someone found a similar bug in iOS 13 here: https://stackoverflow.com/questions/65717635/ios-13-6-simulator-not-lauching-expo
so it works from 11, so I tried in 11 directly
@daring radish iOS 11? That's probably the issue. Can you try a newer version?
@mighty hill Sure, I will try with the latest one
@daring radish At the very least I'm hoping a newer version of iOS will give you more detailed/useful crash logs if the issue still happens there.
I have updated it with 14.5 and getting this error in simulator system log Jul 22 23:18:50 Shabareeshs-MBP com.apple.CoreSimulator.SimDevice.A3F35FF8-84EB-4E42-A37C-661E5382AD55[5151] (UIKitApplication:org.reactjs.native.example.hcifrontend[427f][rb-legacy][5675]): Service exited due to SIGILL | sent by exc handler[5675] Jul 22 23:18:55 Shabareeshs-MBP com.apple.CoreSimulator.SimDevice.A3F35FF8-84EB-4E42-A37C-661E5382AD55[5151] (com.apple.CalendarWidget.IntentsExtension[5263]): Service exited due to SIGKILL | sent by launchd_sim[5151]
@daring radish Unfortunately I don't think there's anything I know of that can help. I recommend you file an issue on the Stripe React Native GitHub repo and ask for help there: https://github.com/stripe/stripe-react-native/issues
@daring radish Make sure to include all the logs and technical details we discussed here.
Sure, Thanks @mighty hill
@daring radish No problem, sorry I wasn't able to help you find the solution!
I have another technical question, I am trying to show the card number, cvc and expiry date as one each in one line,
Is there a way I can break this from single line to multiple lines? in react native
@daring radish https://github.com/stripe/stripe-react-native/issues/83 says we don't support it yet, you could comment on it to register your interest
@crimson needle ah I see, sure, I will comment on this
Hello Developer Community. If I understand correctly, then this diagram is illustrating two different implementations for accepting a payment (one with an intermediary server and another in which our client is communicating directly with the Stripe server). Is my understanding correct?
@kind python that is not correct no. It's one flow with 2 separate steps
they happen sequentially
the steps are something like
- the user visits the payment page
- the client sends order information
- the server creates a new payment intent
- the client receives the new payment intent
- the user provides card details
- the client calls stripe.confirmCardPayment
@kind python there's only one diagram with 2 steps
The first one is to call https://stripe.com/docs/api/payment_intents/create and the second one is to collect card details client-side with Elements and confirm that PaymentIntent
Ok
I am having a problem with the clientSecret can I get some help fixing my code? Here is my code: https://replit.com/@KaviGupta1/Accept-Payment-July-17#client.js
@kind python what problem? Can you provide a bit more details about your debugging steps and what's blocking you?
this is my error Failed to load resource: the server responded with a status of 404 ()
This means you don't have an endpoint/server running to return the client secret. Also your code passes clientSecret to confirm client-side and you never defined that variable.
Did you maybe just copy-paste parts of the examples and are just starting? You likely want to re-read the docs slowly and test each step of the code you're adding
clientSecret is being defined here: ```var response = fetch('/secret').then(function(response) {
return response.json();
}).then(function(responseJson) {
var clientSecret = responseJson.client_secret;
});```
How would I make that endpoint?
@kind python It depends on your integration. You make that endpoint the same way you do any endpoint on your server for your website/app. You likely have many POST requests happening throughout your entire application/website, for example for a login/password, creating an account, anything really is usually a client-side request posting to the server and waiting for a response
You might want to just punt and use Stripe Checkout instead https://stripe.com/docs/payments/checkout
This one also has a problem with the request. Could it be possible that it is something wrong with Repl an dI should use a different IDE?
Hi there; I've got two (hopefully) quick conceptual questions:
-
Is there any way funds can end up in a Connected Account balance other than the platform initiating a transfer? (Chargebacks? Refunds? Off-platform user-initiated action?)
-
Is there any way for a user to trigger a payout for a Connected Account (contacting Stripe support?), or is that only possible to trigger via an action by the Platform?
@kind python not really, Repl likely works totally fine and the issue is with the implementation I'd say. Why don't you test locally on your laptop? It's way easier to debug
@cloud river hello, happy to help!
- Depends on the type of connected account. Standard accounts have full control over their account and can handle their own transactions for example. But otherwise no, the platform is the one sending funds to them
- Same as 1, only with Standard accounts
@crimson needle Fantastic, thanks!
@crimson needle @cloud river is this true for direct charges as well? I haven't tested it but my mental model was that refunds of Direct Charges would be refunded directly to the Connected Account balance without a corresponding transfer
I don't know what would happen with Chargebacks but it seems like it might be similar, since the charge is associated directly with the connected account
@icy anvil that's correct though you wouldn't (or rather shouldn't) do direct charges on Custom/Express and as the platform you control the refund so it seemed "obvious" to me but I should have mentioned it cc @cloud river
I assumed the question was more "can someone else send funds to their balance" but your read makes more sense now
👍 I'm using separate charges and transfers, so I don't think it should be relevant in my situation, but solid question, @icy anvil . Thanks!
i was evaluating direct charges for Express accounts for an implementation last year, I agree they're not recommended in general but there are some specific use-cases where they make sense.
So I agree there are use-cases where they make sense but they are not worth trying, you would regret it months later and it's so hard to unwind.
yeah, as I mentioned we ended up not going with it
Understood. It's just one of my pet peeves. I've been here since before we launched Express and Custom and I've spent countless hours convincing people not to do direct charges on those, or to remediate the bad decision months later. So whenever we mention it I always try to make it crystal clear it's a mistake :p
Hello! Is it considered safe to pass payment method IDs and customer IDs to my client?
@old cypress It depends a bit. Those can't be used without your Secret API key so it's safe, but you can't trust the values from the client. If you send the customer id client-side and then let the client post it back to your server, I could change that id and pretend to be someone else
@crimson needle thank you. I'm thinking about the case where I recollect a CV2. It appears that I am to send a payment method ID to the frontend to be used in a call to the stripe SDK. Is my understanding correct?
Yes that's correct, but not the customer id (which should be attached to the PaymentIntent instead)
Understood. Thank you for your help!
sure!
Hi everyone! I use the Stripe Checkout API to configure transactions, pass purchasers off to the Checkout page URL, and wait for my success_url to be hit. It's been working well for over a year, but lately I've been having transactions occuring in Europe where it appears the payments have been made, but the success url is not being hit. Any ideas?
@warped wedge we haven't heard of similar reports though often it can be that their internet connection dropped during the redirect which is always possible
That's what I was thinking, though it puts me in a tough spot... I work with many merchants, and the accounts are not mine, so I don't have the ability to go log in to them to reconcile anything that was missed. Does Stripe record successful hits to the success_url page, and have any kind of retry function if it doesn't get an HTTP 200 or something? (similar to PayPal's IPN)
We don't have that on success url, that's not really possible, it happens in a browser.
That's why we strongly encourage using webhooks for fulfillment/reconciliation instead
One way to think about it is that success_url is only about what your customer sees.
Thanks for the info! Is there any documentation for configuring webhooks with Checkout pages? (I don't want to host the page that collects the credit card info)
https://stripe.com/docs/webhooks is the general webhooks guide
it's weird cause i've processed thousands of payments... it's only in the last week I've had two situations in Spain
i don't know if there's any demos for Checkout specifically, but the only thing that should be different is the type of event you listen for (checkout.session.completed)
that's just it though - they aren't my accounts...
https://stripe.com/docs/payments/checkout/fulfill-orders#create-event-handler are the docs for Checkout
And it doesn't matter that they aren't your accounts, if you write the code you can handle events for them too
Thanks guys - I'll check this out (no pun intended). I see the info on "Delayed notification payment methods".... I think this must be what's going on
ohhhhh yeah if you use non card payments it might be different though the success url would still be hit
Forgive me if this would be answered if I RTFM, but is there a spot in the Checkout session object I feed an event handler URL? I'm only seeing success_url and cancel_url
That's not in the Session. That's global on the account instead
oh... so this would require the merchants to mess with settings in their accounts then?
I'm assuming if they are hard coding an event handler URL, my URL is receiving all of their events, not just the ones for the Checkout pages I create on their behalf
Dang... ok that's a non-starter then. No way to load up an event handler URL into the Checkout object?
no, they're completely unrelated
It's not a non starter though. IT's how every integration works, even with plugins
You can set a custom client_reference_id or metadata on the Session and ignore all events that don't have a value you recognize
and you can create a webhook endpoint in the API
otherwise you'd need a cron job that runs once an hour for example to look at the state of Session you didn't hear back from
if you have access to their API tokens then you have access to every event they make anyway, even if they're not related to your checkout page.
to my knowledge, I am not privy to sessions after the checkout page has been created.. the merchants I work with are about as non-technical as it gets, and the ones who understand the implication won't want me processing all of their events... only the ones I initiate...
@icy anvil I do have their PK and SK - I use them to create the checkout page
@warped wedge have them create an account just for your part of the integration in that case
yes, then you have full access to their entire account
yes, or register webhooks yourself
Ok hmm... I think i'll investigate the lookups first. That way I can stay away from the constant incoming data pertaining to transactions that have nothing to do with me, and simply look up transactions that I need info for. I assume that there's some part of the return from the Checkout page create that I can feed into a lookup to query status
you create a Session https://stripe.com/docs/api/checkout/sessions/create and later you can call https://stripe.com/docs/api/checkout/sessions/retrieve to see its state
Hi all, is anyone familiar with the legacy stripe checkout widget? For reasons unknown to me, sometimes the pop up defaults to one country and sometimes it defaults to another (e.g. sometimes United States, sometimes Australia). I'm really curious what the logic used is, since users have reported that they see a country they weren't expecting.
@vapid cedar what does "default to one country" means? Is it about the billing address? Do you have a bit more context on the ask?
@crimson needle yeah when the widget prompts for the billing address, the last form field (country) is pre-set to, say, United States when users might expect Australia (for example).
@undone needle that's based on customer's IP address usually.
Also that version of Checkout has been deprecated for well over 2 years now, I strongly recommend removing it entirely from your integration
@vapid cedar ^ (sorry bad auto-complete)
@crimson needle thanks. I'll try to track down some offending IPs but AFAIK all these people are actually in the country they say they are. (And yeah, switching to Elements is on my list of todos.)
you should switch to new Checkout not Elements https://stripe.com/docs/payments/checkout
Hey! In the dashboard I can remove invoice items from an Upcoming Invoice, but it doesn't seem like I can remove a coupon. Is there a way to remove a coupon from an Upcoming Invoice?
@versed helm you would remove the coupon from the Customer or the Subscription itself instead
Hi team, wondering if there is a no code way to edit my success message when I use a no code payment link? Just wanting to instruct customers to check their emails 😅
@vocal wagon we don't support tweaking the text on that part but I'll raise this to the product team
Thanks heaps.
@vocal wagon the engineering team said they are already working on it! If you can charge a Session id (cs_live_123) from your account I can find your account and they can reach out to you when we're ready to beta the changes
Not sure where to find that information. Happy to go looking though. And do they need the message that I want to place in there?
@vocal wagon mostly any id from your account. Try to look at https://dashboard.stripe.com/logs and give me one of the req_123456 if you see one in the URL
and they'd reach out to let you beta-test the feature which should let you tweak the text yourself
Will this work req_my01rWSLFzGyHP
Yep that's perfect!
Hi there, looking for some advice of what my easiest/best option would be... I have WordPress site And I'm new to stripe / want to start offering a paid subscription.
I want to take full advantage of the stripe hosted payment links / subscription management/customer portal. It's amazing how easy it is to accept payment or recurring payment, but what's the best option for updating WordPress user roles?
I've seen the documentation for connecting stripe and my WP site via webhooks, But does anyone know the simplest way to update user roles based on the stripe metadata? I have to imagine someone has built exactly this before, But it seems that the only pre-built options require committing to a whole new ecosystem and pay monthly and additional revenue% fees, And don't allow you to use all of the awesome stripe hosted subscription management.
Thank you so much! Any advice is appreciated.
@peak sierra I won't have much advice for you unfortunately as I've never really used Wordpress myself and most people asking for Wordpress help are using third-party plugins.
But overall yes, you would listen for the webhook event and do fulfillment based on this and update the customer's details/role in your database
Do you have any expected time for that beta feature to be released? I'm about to go live on a product, happy wait but I might just need a suitable replacement option.
a few weeks I'd say but priorities can shift so I wouldn't block on it
I understand and that's all good for me. Thanks for your help!
Sure!
Yeah, that was my understanding. The documentation on stripe is pretty good. I appreciate you getting back to me. If anyone else knows a shortcut, let me know!
Hello, I'm trying to integrate with Stripe Terminal SDK, I have the basics setup but I want to test when there is an update available for a reader. I see in the Stripe docs there is a section for simulating a reader update [https://stripe.com/docs/terminal/testing#simulated-reader-updates]
However when I add the line it mentions: Terminal.shared.simulatorConfiguration.availableReaderUpdate = SimulateReaderUpdate.REQUIRED
I get exception for 'cannot find symbol variable shared'. I have been reading through the SDK docs on the SimulatorConfiguration but can't figure out how and when I need to set it to simulate an update when connecting to a simulated reader.
https://stripe.dev/stripe-terminal-android/external/external/com.stripe.stripeterminal.external.models/-simulator-configuration/index.html
@wanton python sorry for the delay I was asking my team. Does Terminal.simulatorConfiguration.update = SimulateReaderUpdate.REQUIRED work instead? Our doc seems out of date
Maybe you want Terminal.getInstance().simulatorConfiguration.update = SimulateReaderUpdate.REQUIRED specifically
Hello Stripe Lovers...!
I am using Stripe on a CMS website, Means not a custom integration it is,
So can we make any settings from Dashboard to capture funds Manually ?
Looking for your kind response.
Thanks.
@rocky turret no it's not something we support today and it will need some tweaks in your code unfortunately. We are working on the ability to do this but no timeline on when it'd ship
hmmm
Thanks mate.
In Stripe sanbox/test mode am I able to simulate actions such as disputes?
@plucky herald yes, see here: https://stripe.com/docs/testing#disputes
Yea I just found it argh
that's how it goes :)
Top of the evening (or morning, whereever you are!) I've got a question about the inner workings of the stripe.confirmAcssDebitPayment function.
Here is a link to the documents for context: https://stripe.com/docs/js/payment_intents/confirm_acss_debit_payment
Complete reference documentation for the Stripe JavaScript SDK.
You can confirm a Canadian pre-authorized debit payment with self collected bank account information, however, when you retrieve the PaymentMethod it doesn't have the associated customer. The customer is only associated after the verfication is completed (although the PaymentMethod has been created, and appears on the Stripe customer profile).
I'm trying to figure out why the customer isn't associated immediately to the PaymentMethod?
You can see the null "customer" field on this Stripe request for the same payment_method_id
@jaunty ruin Having a look
Cheers Paul -- I'm trying to figure out if I need to confirm the SetupIntent at the same time. Something like confirm: true
EDIT: That returns and error, "You cannot confirm this SetupIntent because it's missing a payment method. Update the SetupIntent with a payment method and then confirm it again."
I in my system, need to withhold a certain amount from customer's card and then on a flow complete, need to send 80% of amount to seller with 20% as application fee.
Now on sign up both customer and seller will have a stripe account created implicitly. My questions
- When we make stripe account for customer and seller -> for seller specifically, do we make custom account type with payout sent true?
- We have our own UI i.e. we are not using Stripe's browser/web page to take bank account, routing number, country and all.. so taking those from our own UI, and geting stripe STP token, we send token to backend, and backend adds a new bank account for seller which can be used for payouts right?
- on a transaction complete, using payment intent that was captured previously, when we try to send the amount to bank account taking application charge
payment_intent = stripe.PaymentIntent.create(
payment_method_types=['card'],
amount=1000,
currency='usd',
application_fee_amount=123,
transfer_data={
'destination': '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
}
)
here... "CONNECTED_STRIPE_ACCOUNT_ID" is this the seller stripe id we made in step 1?
hello @sharp onyx !
- there are a number of payout.settings parameters : https://stripe.com/docs/api/accounts/create#create_account-settings-payouts, could you point me to which parameter you're referring to specifically?
- More specifically, this would be the API call you would need to make to create an external bank account object : https://stripe.com/docs/api/external_account_bank_accounts/create.
- Yes that would be the seller's Stripe account id that was created in step 1
Still looking into this, back in a sec
@jaunty ruin Can you elaborate at what point you're looking at the PaymentMethod's customer parameter? I just recreated the whole flow using Elements and saw that the PaymentMethod had a valid customer as expected. Are you seeing something different?
We have the following setting in our Stripe account for payment emails.
We need the Stripe-generated email only when the first attempt to charge the card is unsuccessful. For the second and third attempts, we will send emails from our system. Is it possible?
@bleak breach I'll collect bank account information and pass it to the stripe.confirmAcssDebitPayment function. Immediately after, the payment method will appear in the Stripe dashboard on the Customer profile and calling Stripe::PaymentMethod.retrieve() will return the payment method with a customer: null
That kind of customization isn't possible unfortunately. Stripe will either send emails for all failures or none. If you want to only send emails for the first payment failure then you'd have to implement the email logic on your end
@bleak breach That is understandable. Thanks for the quick response 🎉
o/
What's the quickest way to get the card type and last 4 digits from an customer.subscription.updated event?
How is the PaymentMethod being created? Via Stripe.js in confirmAcssDebitPayment or are you creating it prior and attaching it to the PaymentIntent?
@golden cosmos so this means for seller type of user specificlly while making stripe account, we need to provide payout information settings that we want to have associated with that seller stripe account id
and later on when he/she adds bank detail and I fetch stp token using stripe api, I send the bok token to backend and then,
my backend dev will associate it with my stripe account using
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
const bankAccount = await stripe.accounts.createExternalAccount(
'acct_1032D82eZvKYlo2C',
{
external_account: 'btok_1JGECh2eZvKYlo2CE6HbUUtx',
}
);
Also, just to be sure.. every single stripe account created for every single user in our system, using https://stripe.com/docs/api/accounts/create
is a stripe connect account?
You'd want to look at the subscription's default payment method: https://stripe.com/docs/api/subscriptions/object#subscription_object-default_payment_method
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
sweet, ty
If that's not set, then you'd have to look at the customer's invoice_settings.default_payment_method
Via Stripe.js in confirmAcssDebitPayment. There is an explict section in the docs on how to confirm a Canadian pre-authorized debit payment with self collected bank account information
hmm I just did the same thing and retrieved the PaymentMethod on the server after the payment completed:
{
id: 'pm_1JGEGTG08wnHdsPD7LipfeuR',
object: 'payment_method',
acss_debit: {
bank_name: 'STRIPE TEST BANK',
fingerprint: 'bbd0hsaea6oFkSFw',
institution_number: '000',
last4: '6789',
transit_number: '11000'
},
billing_details: {
address: {
city: null,
country: null,
line1: null,
line2: null,
postal_code: null,
state: null
},
email: 'asf@b.com',
name: 'afa',
phone: null
},
created: 1627007849,
customer: 'cus_Ju2KDgw7O38gVi',
livemode: false,
metadata: {},
type: 'acss_debit'
}
Ah hold up you're using SetupIntents rather than PaymentIntents. Okay let me see if I can recreate this.
Ah, yes..this is to collect bank details and charge them later
To confirm, are you using confirmAcssDebitPayment or confirmAcssDebitSetup on your client?
confirmAcssDebitSetup
setupNewAcssDebit(event) {
let data = {
payment_method: {
acss_debit: {
institution_number: this.instituationNumberTarget.value,
transit_number: this.transitNumberTarget.value,
account_number: this.accountNumberTarget.value,
},
billing_details: {
name: this.accountHolderNameTarget.value,
email: this.accountHolderEmailTarget.value,
},
}
}
this.stripe.confirmAcssDebitSetup(this.setup_intent, data).then((result) => {
if (result.error) {
this.errorTarget.textContent = result.error.message
this.reset(event)
} else {
this.handlePaymentMethod(result.setupIntent.payment_method)
}
})
}
Testing this, back in a sec
For context, when I do the microdeposit verification after and then try to retrieve the payment method again, the customer will be set
But it's unclear why the customer isn't set prior to the verification if the payment method appears on their Stripe profile
yep, the points you've mentioned are correct :
- you would want to set payout information settings that you want to have associated with that seller stripe account id. After he/she adds the bank details via your UI, you would create the bank account on the seller's Stripe account.
- Yes, custom accounts created using https://stripe.com/docs/api/accounts/create are Stripe connected accounts
Thanks a ton @golden cosmos
you're welcome!
What's the status of the SetupIntent?
Hmm yeah I'm seeing the same, even after confirming the SetupIntent with the microdeposit values
@jaunty ruin This feels like a bug to me, I'm going to raise this with the team on our end. In the meanwhile if you need the customer you should be able to get it from the SetupIntent object
Thanks for digging into this Paul. Do you want my email if the team follows up with me?
Is there any way to do something like add items to a cart via Stripe API? So far all i see are invoice items
So for instance, I add a shoe to my shopping cart and i want to create line items for my cart
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
hello @unreal ingot ! You can take a look at Stripe Checkout to see if it fits your needs : https://stripe.com/docs/payments/accept-a-payment?integration=checkout.
await stripe.paymentIntents.create({
amount: 1100,
capture_method: "automatic",
confirm: true,
currency: "usd",
payment_method: 'Payment_method_id_here',
transfer_data: {
destination: 'Connect_account_id_here',
},
});
In this case, the transfer of amount from specified payment method to connected account should happen at the same time, right?
i.e. I don't need to separately capture the paymentIntent, isn't it?
If you write into support at https://support.stripe.com/contact I'll be able to point the ticket to the right team and get you an answer
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.
@jaunty ruin Once you do DM me your account ID and I'll get it sorted
Make sure you mention in your email that you spoke to Paul on Discord
hello @fathom quest that's correct, you wouldn't need to separately capture the PaymentIntent for the code you've provided
Thanks for the quick response 😄
you're welcome!
hi do you do pre-authorisation of credit cards in Australia and NZ?
@pure walrus Yes. you can pre-auth the card following this guide https://stripe.com/docs/payments/capture-later
Separate authorization and capture to create a charge now, but capture funds later.
@lucid raft just making sure, this applies to AUS and NZ cards correct?
correct
hello @uncut dragon , if you contact Stripe Support : https://support.stripe.com/contact, they'll be able to help you with that!
OUR BUSINESS NAME AND ABN HAS CHANGED
Hello @void kernel, It sounds like you need help/advice on how to change your business name and ABN in your Stripe account. You likely want to reach out to Support to ask about this: https://support.stripe.com/contact/
hi again @lucid raft Could we can use one of your current tap beacons or we need to enter the credit card details manually
Ideally, customers insert or tap their credit card
Or use their phone for Apple Pay
Which is then used to only pre-authorise a transaction rather than charging the full amount immediately
Hi there, I got query regarding connect account.
I just created a connect account and got this response. However I am confused about few stuffs
1. it shows payouts_enabled as false, I believe that is because I haven't linked any external account? And if so then it will be enabled when I link an external account to the connect account
2. For an individual custom connect account, are those all fields specified in due required to make transaction? If some of them are necessary I would be more than happy to know which ones are required and which ones are optional 😄
@pure walrus I think what you need is Stripe Terminal product. Currently it is still beta in AU. Our terminal does support pre-auth, but you will need to write in to get access to the terminal
https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
okay, is there a department at Stripe I need to reach out? Is there an email address or a specific colleague who me or the IT team could reach out to directly?
@fathom quest You can refer to this link to view more details about verification requirements : https://stripe.com/docs/connect/required-verification-information
You would need to provide the details in the currently_due and past_due fields. eventually_due fields as the name implies, will eventually become currently_due. If the information is not provided by the due date, Stripe may pause certain capabilities on the account e.g. charges or payouts
hey @pure walrus stepping in for wsw since he's away for a bit! If you write in to https://support.stripe.com/contact with your request, they'll make sure that it's redirected to the correct team
Alright will check the document 😄
However I got one more confusion, why is business_profile.url needed when the account type is personal ?
If the user does not have a URL, you can provide business_profile.product_description instead 😄
Alright. Thanks again for your time and response 😄
you're welcome! Hope you have a great day and please don't hesitate to reach out in case you have any other questions!
|| And I must say, I have been through lots of dev and support team but stripe team and support is really awesome; the best. ||
been trying to reach out for "stripe tax" invite only but no one replies :<
It's an invite only beta for now. It's a popular request so the best advice I can give is to sit tight and wait for the invite
Question about PCI,
lets say I use stripe or mastercard/visa payment gateway in my website, do I still need to get a level 4 SAQ and ROC for my website itself?
It depends on how you integrated with them. In the case of Stripe if you pass raw card details then you'd have PCI compliance considerations you'd need to make
If you use Elements, Checkout or one of the mobile SDKs then you'd likely qualify for SAQ A which doesn't require any additional work on your end
I see
Just checking from the details for these 2 specific lines from the SAQ A
4 is saying that BOTH the AOC and SAQ are in this provided word document right?
This is a bit beyond my understanding of the PCI document. I suggest you reach out to support for further help with this: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
alright
Hey. I am having some really big issues on Stripe right now pertaining to my account being banned. Can I get help from an admin please!
:question: @vocal wagon Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
this is a technical issue
@vocal wagon if your account is banned, you will need our support specialist to help you unfortunately as we can not handle account specific issue here.
is there a support specialist in here i can speak to?
The email support that I am getting is not helping. I need to speak to a real person. I was falsely banned, and my livelihood depends on getting paid through Stripe!
Please help
@vocal wagon This is a Discord for code and development questions, we really can't help you here. I suggest you wait for a response from Stripe support
@bleak breach I had asked this question earlier but, I still want to clarify.
does webhooks support authentication? I read about webhook signing as well as ip address whitelisting, but is there a way to have stripe authenticate itself to my webhook other than basic auth?
You'd verify that the webhook events came from Stripe by using your secret webhook key to verify the signature: https://stripe.com/docs/webhooks/signatures
Verify the events that Stripe sends to your webhook endpoints.
@bleak breach yes I know about signing, like I mentioned. But this doesn't stop from unwanted requests being sent. I would spend unnecessary comupte in verifying signatures, especially in cases like DDOS attacks
If you're worried about fraudulent webhook events, Stripe publishes a list of IP addresses used for webhooks that you could add to an allowlist: https://stripe.com/docs/ips#webhook-notifications
Ensure your integration is always communicating with Stripe.
@vocal wagonl which I also mentioned I know about. I am interested to know, if apart from the above signing, whitelist and basic auth, does Stripe support OAuth token-based authentication
@sweet fjord i'm afraid not, we don't support webhooks OAuth authentication
Not for webhooks, no
hello, is there a radar rule that will block a customer from paying if they use a card and fail say >3 attempts?
had a issue recently lost a dispute realizes he made 4 failed attempts from one card then just used another that went through then ultimately disputed with his bank.. i had rule set to block if >3 failed attempts but just realized its "per card" so sort of defeats the purpose in my case since i feel it was the customer that was risky, not so much the card
There's declines_per_customer_hourly and declines_per_customer_daily that you might be interested in
thanks!
thatd give me time to check it and decide if i want to manually block customer for good.. this guy was rated as "normal" and i messaged him after the dispute was entered and he said he was robbed and his bank called him to verify it was a legit charge and he supposedly told them it was but clearly this wasnt the case because i lost the dispute lol
Yeah that doesn't sound like the customer was being honest
I need to figure out how to make a custom checkout so i will have chargeback protection but first few times i tried i got lost :-(
By custom checkout do you mean Stripe Checkout? It's not too difficult to set up, we can help you if you like
yea, im 1 for 3.. im fairly new/small time so this 3rd one put me just over limit for instant payout feature :-(
yea.. i believe that is a requirement for chargeback protection right? needs to be stripe checkout (not the pre built)
Stripe Checkout is the prebuilt one that gives you chargeback protection: https://stripe.com/radar/chargeback-protection
Hello, I am coming back to stripe, some CNAME are not validated by Stripe, whereas I have made my DNS changes on my provider yesterday
I am waiting for further explanations to solve this issue
Hi guys. I use paymentsheet in Android.
I have just added this card through payment method
pm_1JG5QrHzrCChm632Mz2lHBxW
customer id: cus_JtGSTTSo9qxp8R
But impossible to show the saved cards in the payment sheet. I always have the creation card paymentsheet dialog.
Can you help me?
I'd start with this guide: https://stripe.com/docs/checkout/integration-builder
It can take up to 48 hours for those changes to propagate. If you still are having trouble tomorrow I'd write into support directly: https://support.stripe.com/contact
Listing a customer's PaymentMethods isn't supported via the payment sheet. You'd have to build your own UI to show those to the user. Have a look here: https://stripe.com/docs/payments/save-during-payment?platform=android#android-create-payment-intent-off-session
I don't recognize that. I also unfortunately don't know much about mobile development. I suggest you reach out to support if you have further questions: https://support.stripe.com/contact
@spare harness if you want to use saved payment method, you will have to modify your integration a bit to include ephemeralkey https://stripe.com/docs/payments/accept-a-payment?platform=android#add-server-endpoint
Thanks for your message. This is what I do and I have the checkbox to save the new card. I did it but then when I launch it again, I do not have the screen to use existing saved cards
Hi! I have a question regarding the payment status that stripe generates in woocommerce through webhook. Up to now a finished transaction generated the status "processing". Now I have the situation that credit card and sofort transactions are sucessfully completed in stripe but the website still shows "on hold"
hello Max, it'd be best if you reached out to WooCommerce regarding this issue. WooCommerce would have more insights into how and why they are displaying the payment status as "on hold"
@spare harness sorry for the delay. Have you include your customer id and ephemeral key when you configure the flow controller ? you will have to follow the step by step guide https://stripe.com/docs/payments/accept-a-payment?platform=android&ui=payment-sheet-custom#integrate-payment-sheet
flowController.configure(
paymentIntentClientSecret = paymentIntentClientSecret,
configuration = PaymentSheet.Configuration(
merchantDisplayName = "Example, Inc.",
customer = PaymentSheet.CustomerConfiguration(
id = customerId,
ephemeralKeySecret = ephemeralKeySecret
)
)
)
this is important to show the saved customer cards
Yes I did that
My server code:
var service = new PaymentIntentService();
var createOptions = new PaymentIntentCreateOptions
{
// ReceiptEmail = user.EmailAddress,
// Metadata = new Dictionary<string, string> { { "from", user.Id.ToString()}, { "to", AIdUser.Heros.Id.ToString() } },
Customer = "cus_JtGSTTSo9qxp8R",
Amount = CalculateOrderAmount(createRequest.Price),
Currency = createRequest.Currency,
// ApplicationFeeAmount = applicationFeeAmount,
//TransferData = new PaymentIntentTransferDataOptions
//{
// Destination = AIdUser.Heros.StripeAccountId
//},
};
var ephemeralService = new EphemeralKeyService();
var options = new EphemeralKeyCreateOptions
{
Customer = "cus_JtGSTTSo9qxp8R",
StripeVersion = "2020-08-27"
};
var key = ephemeralService.Create(options);
PaymentIntent paymentIntent = service.Create(createOptions);
StripePaymentIntenOutput stripePaymentIntenOutput = new StripePaymentIntenOutput();
stripePaymentIntenOutput.EphemeralKey = key.Id;
stripePaymentIntenOutput.IntentId = paymentIntent.ClientSecret;
return stripePaymentIntenOutput;
My flutter code:
StripePaymentIntenOutput? intent = await StripeAppService.instance
.createTipPayment(stripePaymentInput);
await Stripe.instance.initPaymentSheet(
paymentSheetParameters: SetupPaymentSheetParameters(
customerId: 'cus_JtGSTTSo9qxp8R',
paymentIntentClientSecret: intent!.intentId,
customerEphemeralKeySecret: intent.ephemeralKey,
merchantCountryCode:
ApplicationContext.instance.currentLanguage!.name,
));
Stripe.instance.presentPaymentSheet(
parameters: PresentPaymentSheetParameters(
clientSecret: intent.intentId!,
confirmPayment: true,
));
I see, you are using Stripe-Flutter? I am not too sure, but for native integration. In order to show the saved payment methods, you will need to call flowController.presentPaymentOptions()
It shows something like this
np
Hi all, wondering if anyone has done an integration to take a set number of payments over (n months), i have setup subscriptions with an automated cancellation date. Is this how other people are approaching it?
You might be interested in using Subscription Schedules: https://stripe.com/docs/billing/subscriptions/subscription-schedules
It's similar to what you're doing, but you can set up N number of "phases" and automatically cancel the subscription once the last phase has ended
Ah nice, ill check that out thanks!
Hi, where I could find full nodejs docs for stripe? Github readme is not quite that one
Hi there, I have a question. Is there any possibility of setting up automated billing on stripe? Thank you
It's quite urgent, thank you for your help.
Hello can anyone help for an issue I am facing
#dev-help what webhook event specify that subscription has been renewed and charged successfully?
Yes, you can take a look at our billing product
https://stripe.com/billing
https://stripe.com/docs/billing
normally you would listen to invoice.paid and invoice.upcoming
@lucid raft How do we know which subscription it relates?
Can anyone help me with one issue I am facing
the event itself will contain the subscription object with all the information
Cheena, what is your issue ?
$itemName = "test item";
$itemNumber = "PHPZAG987654321";
$itemPrice = '16.92';
$currency = "usd";
$orderID = "SKA987654321";
// details for which payment performed
$payDetails = \Stripe\Charge::create(array(
'source' => $stripeToken,
'amount' => $itemPrice,
'currency' => $currency,
'description' => $itemName
/'metadata' => array(
'order_id' => $orderID
)/
));
here in my code when I am passing the INR currency things are fine but when I am passing currency USD its not working
500 internal server throwing
at console
do you have a request id that I can check ?
okay
hi
let me check
is there a UK phone where i can speak to someone at Stripe?
Hi there, support redirected my question to youguys so here it is
:question: @severe roost Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
we are going to the IC+ system next month, but i dont know what will be the impact on the reported fees in the API (e.g: the BalanceTransaction/Charge objects)
will the field disappear ? Will it be null ? Will it stays as it is ? We need that info beforehand in order to fix our API and stuff
I have integrated on web this
@vocal wagon if you are using IC+, you will still have balance transaction and charge. this will not change.
The impact is the fee details on the balance transaction API https://stripe.com/docs/api/balance_transactions/object?lang=php#balance_transaction_object-fee_details.
This will be gone as the IC+ fee will be delayed, and won't be immediately available
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Can i talk to a pursen
Cheena, I will need a request ID to check the details, you can get the request id in your dashboard https://dashboard.stripe.com/test/logs
Okay
?
what is your question?
The cost is zero to setup stripe; stripe charges per transaction fee to make money
So I assume wix will charge you nothing to install Stripe but it is a better question for them
400 ERR
ID
req_qyuQnxr8lKXNjN
Time
7/23/21, 3:56:25 PM
IP address
103.81.78.15
API version
2020-08-27
Latest
Source
Stripe/v1 PhpBindings/7.89.0
Thank you for your reply becouse i set it up and not long after this amount wass pulled from my accont
1129,41 $
so i am a bitt stressed and trying to figure out what happend
The error is message: "Invalid integer: 16.92",
instead of passing 16.92 you should pass 1692
you will have to reach out to WIX i am afraid
Thank you i tryed but it took on houer on hold so now i am chatting with you so i can cross one option of the list
thank you for your reply
Hey guys, Im getting an error:
"message": "Unrecognized request URL (GET: /v1/issuing/verifications). Please see https://stripe.com/docs or we can help at https://support.stripe.com/.",
here is the full url: https://api.stripe.com/v1/issuing/verifications
I can't access the doc page to do with this resource as it says it doesn't exist when I click it from the doc page: https://stripe.com/docs/issuing/cards/pin-management. So its proving hard to see if what i'm doing is wrong as im just guessing at this point.
Does anyone have any ideas? Nothing seems out of place to me
@full tulip what you are accessing is a beta feature, your account needs to be commissioned to allow access to the endpoint and the document. Do you mind writing into our support? https://support.stripe.com/contact They will review your account accordingly
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.
We have access to the update pin feature, is that also beta? Otherwise I will do. Is there anyway to access that documentation though?
That pin feature is public yes
great thanks, I'll contact them now 😄
@viral parcel I don't know much about prestashop, but go ahead and see if there is anything i can help
mainstream, you mentioned your payment is not working. do you have your account ID?
or failed request that I can check
what errors are you seeing?
@lucid raft How to differentiate new subscription invoice.paid vs renewed subscription invoice.paid?
Hi Team, When we are creating refund using payment Intent Id or Without connected Account Id the refund id start with 're_' or when we use connected account Id the its start with 'pyr_'.
Is there any reason for the same. are they both same?
How to get 're_' id from 'pyr_'?
@north ether are you using destination charge? can you share a pyr_xxx example.
Normally it means it is a payment refund.
In connect world, when you create a destination / transfer from platform to connected account
On the platform, it creates a transfer tr_xxx while on the connected account, there will be a payment py_xxxx when you refund that charge on the platform, it creates a payment refund on the connected account pyr_xxxx
Hi I finally investigated. It comes from my api.
I use to create my payment intent and ephemeral key .net api and it seems not to work.
When I use the example with flutter_stripe with server based on node js it works.
One difference is the ephemeralkey from node js is like: "ek_test_YWNjdF8xSFMySk9IenJDQ2htNjMyLGVkUUZaUmVOS3dicVEwQ3Fqb1lCVWNUbDc3cTBobFk_00cRuvfuzj" and starts with ek_test_
From my api my ephemeral key is like this: ephkey_1JGMgaHzrCChm6323ryVHEOx
I think this key is wrong.
is there a bug in the ephemeral service for theb .net api?
PY ID : py_1JDwWbDLFJuEW2E7SpsbXFGM
Ok I found my issue. I sent id instead of secret key. It works now. thanks a lot!
I know this is quite a beginner question but how do I go about setting up a post route for the identity verification flow?
Can anyone help with one stripe credit card issue
Hi! How can I customize my checkout page? I just need to have a text under the Pay button. Like this in the image.
In Stripe Android 17, is it still possible to use webview with 3DS 1?
In Stripe Android 16.x, this was possible by setting a returnUrl parameter to ConfirmPaymentIntentParams.createWithPaymentMethodId(). The returnUrl parameter has been removed in Stripe 17
Hi, I have the following question. how can I add a credit card to a costumer user from the react native sdk?
It depends on the language and any framework you're using on your server. Our docs cover several common languages. What are you using/
I created a customer account but I have not been able to add the credit card with the react native sdk
We can try, can you please say more about what the issue is?
@loud fractal This "set up future payments" guide has a react native option. I suggest reading through this to see how you can use setup intents to collect card details with RN.
https://stripe.com/docs/payments/save-and-reuse?platform=react-native
Learn how to save card details and charge your customers later.
Hey there
I'm reading paymentRequestButton documentation, and found that it could return one of these 3 objects: Token / PaymentMethod / Source
Are they equally supported? Or Token / Source is more backward compatibility and the new PaymentMethod is prioritized to use?
@limpid scaffold correct, Token and Source are both older APIs that are maintained for compatibility.
You can read more about them here: https://stripe.com/docs/payments/older-apis#comparing-the-apis
@lucid raft I entered the public and secret stripe key on the prestashop module when I do the payment test, this one does not pass I have this message on stripe not captured
Hi, I have problem with deleting my stripe account. I have a pending payment of 0.5€ and this's the problem. How can I solve it?
That's not a customization currently offered within Checkout. You can see the customization options here:
https://stripe.com/docs/payments/checkout/customization
Learn about the different ways you can customize your Stripe Checkout integration.
I'm not sure, but that parameter would be needed so I would guess not. What's your use case for this?
@daring lodge I was just wondering. We planned to migrate eventually to chrome custom tabs, but have been procrastinating 🙂
@daring lodge Oh my CTO just gave me more info:
We want to be able to test that CustomTabs are as efficient as webviews for our use case and our users so ideally we would like to be able to do both with the same SDK version (using a/b testing), and gradually enable CustomTabs for our users
THat's right, token & source are legacy support. If you're building a new integration you should focus on the Payment Method returns in the on('paymentmethod',...) event
Do you have an example payment intent id like pi_123 @viral parcel ?
hey guys, anyone knows if there's any stripe endpoint when I can get the the currency rate before the actual transaction happens?
:question: @vocal wagon Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Not possible. By the nature of currency conversions, that rate can change easily from moment to moment.
Hello, how are you ? I have a question about this javascript lines : https://stripe.com/docs/js/element/input_validation, does it validate the fact the transaction has been succeed with the bank or does it validate only the fact that the card is a good card, with good numbers, and valid ?
I ask that because I will do the validation in the backside so I don't want to have a user which waiting for the real validation during a lots of time because of this Javascript code, as I will validate the payment just after that (when the webhook send me that all is good with the customer to validate the order's payment) 🙂
Thanks 🙂
Cards are validated when you either attach the card to a Customer or attempt a payment with it. The input validation just confirms that you've input what could be valid card information
I have question about checkout non completed webhook, where should I ask?
This is the place, what's the specific issue?
I already integrate successfully the stripe pre-built page checkout. Now I have to handle the item quantities to prevent the creation of orders about item out of stock
In my back-end I check if there is enought quantity before creating the checkout session and lock what the user has in the cart
if the user click on the back arrow it's all ok, it gets redirected to my front-end that call the back-end to refill the live quantity
Hi there. We are currently doing a deal where users can purchase a 3 year plan for the price of 2, so essentially I need to extend their next billing date by 3 years, but the maximum is 730 days on a trial. Is there a way to extend this?
but if the user close the stripe checkout page or ignore it I don't know how to get notified about it
In other word, at any time it valid that the payment succeed....thanks 😉
You can't. There's no event generated by a user closing the browser or navigating away.
I don't really know what you mean by that statement but you'll know if the card is valid when you attach it to a Customer or you attempt a payment with it.
Can I unvalidate an already created checkout session after some time?
You can't. They expire after 24 hours.
ok, so I should generate a timer that restore the item after 24h if not completed?
The support team may be able to help if your business meets their requirements to enable longer plans, but by default you can't create a Subscription that long. https://support.stripe.com/contact is where you'd want to ask
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
That would work. yes.
is it possible to modify the duration?
It's not
Cheers
Is there any built-in way to disable paymentRequestButton?
E.g. make it visible but non-interactive
is my workflow strange?
@sick talon there is a better way to handle magazine stock using checkout?
I wouldn't say it's strange. Checkout doesn't currently work perfectly for your flow since it doesn't support synchronous confirmation of payments on your side.
Not objectively. What you could do is assume a shorter duration before you consider the payment is not going to be completed (maybe an hour?) and then if you get a payment that you don't have stock for, refund it. Really depends on how much you want to focus on that part of the flow.
mmm, I have fear about refund
ahah
Ok, all is clear now. thanks a lot, reading the documentation was not helpful for this part
the webhook checkout.session.async_payment_failed when is it fired?
When an asynchronous payment method's payment fails.
I'm trying to test it but no trigger
Yeah, I finally found out how that text would be there. Hehe. Thank you for your response anyway. 🙂
If I mess up a subscription usage record, can I modify it? or delete/recreate? I see create does not allow negative numbers.
@coral hinge you'll need to use something like BECS Direct Debit that has an asynchronous payment flow (it can take up to 4 days to learn whether the charge succeeded or not).
see https://stripe.com/docs/testing#becs-direct-debit-in-australia for some examples
Learn about the different methods to test your integration before going live.
Where ?
Hi there, me and my developer team are trying to integrate Malaysia's FPX stripe payment into our app. For iOS, once we have the list of banks, can somebody guide what we should do next? By right after we select a bank from the list of banks, it should send us to the bank website where user shall login and make the payment, but at the moment, selecting the bank doesn't do anything. Would appreciate if someone can guide us accordingly, tq
Hello!
I got this error trying to setup a card to a customer using React native Stripe SDK {"code": "Failed", "message": "There was an unexpected error -- try again in a few seconds"}
Ok I'm not using it
This is the list of banks. However, selecting any bank doesn't progress anywhere. Would appreciate if you can help guide us, tq
You'd need to be testing with an async payment method (cards won't do that).