#dev-help

1 messages · Page 128 of 1

vocal wagon
#

I plan to create a game trading website in China for European users. Can I withdraw the received Euros, U.S. dollars and other currencies to the bank card in the way of "CNY"?

#

okay

lucid raft
#

@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

vocal wagon
#

Yes..

#

thank you

storm walrus
#

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

lucid raft
#

@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?

storm walrus
lucid raft
#

@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

storm walrus
#

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

dapper forge
#

hello

bleak breach
dapper forge
#

how to change order status in stripe payment gateway

bleak breach
dapper forge
#

ok

#

i have made order by stripe payment gateway in site the order status shows completed but in this order status shows processing

vocal wagon
#

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

bleak breach
dapper forge
#

yes

bleak breach
vocal wagon
bleak breach
# dapper forge yes

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

dapper forge
#

how to change order staus please provide

sleek moss
#

Hi! I want to test the webhook with live api like we can do it with test api. Can anyone help me on this?

bleak breach
dapper forge
#

ok i will

vocal wagon
bleak breach
crimson needle
#

@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

vocal wagon
crimson needle
#

@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

vocal wagon
#

@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

deft tide
#

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

vocal wagon
crimson needle
#

@vocal wagon what are you trying to do exactly?

dapper forge
#

please explain how to change staus of order when payment made by stripe please check screen shot

vocal wagon
#

@crimson needle I'm trying to get a PIN shown in our mobile application

crimson needle
#

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?

vocal wagon
# crimson needle sorry that was for <@456226577798135808> mixed up the usernames my bad

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)

crimson needle
#

But in that case you wouldn't use our proration logic at all, you'd have to do your own calculation instead

deft tide
#

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?

crimson needle
#

Exactly!

bleak breach
crimson needle
#

they were asking about webhook fulfillment earlier though so I assumed that's what they would use

bleak breach
#

Oh ignore me I misread

deft tide
#

yes, thank you for the help 🙂 ❤️

crimson needle
#

Of course, let us know if you have any issues

vocal wagon
dapper forge
#

please explain what is the order status at that time when payment made by stripe payment (order status in backend in magento 2 )

crimson needle
#

@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

vocal wagon
crimson needle
#

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

vocal wagon
crimson needle
#

then I don't understand the problem you have

#

Can you try and give a concrete example with real values?

vocal wagon
# crimson needle then I don't understand the problem you have

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

crimson needle
#

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.

vocal wagon
#

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.
vocal wagon
crimson needle
#

@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

vocal wagon
crimson needle
#

@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?

vocal wagon
vocal wagon
crimson needle
#

@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

vocal wagon
vocal wagon
crimson needle
#

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

vocal wagon
#

as in, do I know if it's a valid account or not?

crimson needle
#

@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

vocal wagon
vocal wagon
crimson needle
#

@vocal wagon it'd be the version associated with the mobile SDK you're using

vocal wagon
crimson needle
#

@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
#

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)

crimson needle
#

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

vocal wagon
#

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

crimson needle
#

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

vocal wagon
#

we never asked to change how prorations work 🙂

crimson needle
#

@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

vocal wagon
#

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

crimson needle
#

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

vocal wagon
#

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

crimson needle
#

fair enough, unfortunately it's not something that will be fixed soon so the workaround is the only way

vocal wagon
#

alright, thanks for your help 🙂 we'll go that way

crimson needle
#

sounds good

vocal wagon
#

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 🙂

crimson needle
#

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?

upbeat grove
#

we would like to implement subscription in iOS app. Can we use checkout and customer portal for that?

crimson needle
#

@upbeat grove you can though those only work in a webview

upbeat grove
#

can i use webview for subscription?

crimson needle
#

@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

upbeat grove
#

i am just confused on when can we not use webview and need to use in app purchase method for iOS app

crimson needle
upbeat grove
#

so i can use webview with apple pay for subscription

#

my app won't be blocked my app store?

crimson needle
#

@upbeat grove did you read that doc? It explains which types of business models can use Stripe/Apple Pay

vocal wagon
#

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?

crimson needle
#

@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

crimson needle
#

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"

upbeat grove
#

correct me if i am wrong. as an example:
Youtube needs to use in-app purchase API
but Uber can use Stripe API

crimson needle
#

@upbeat grove yep that's correct

pastel sun
#

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.

  1. customer pays
  2. platform "holds" payment until service is rendered
  3. service provider is paid

Is this an exclusive option to Express & Custom?

crimson needle
#

@pastel sun that's correct today (though we hope to improve this in the future)

pastel sun
#

Awesome thanks, is there a reason behind it? Seems like Standard would be much easier to implement, but we need that one feature

crimson needle
#

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

upbeat grove
#

so subscription for using software also require in-app purchases

pastel sun
#

Thankyou, @crimson needle

crimson needle
#

@upbeat grove that is my understanding yes

upbeat grove
#

and in app purchase API is provided by Apple and we need to check their guide?

crimson needle
#

correct

pastel sun
crimson needle
#

you can refund and there balance would go negative and we'd try to recover the funds

pastel sun
#

excellent, thanks! I'm assuming there's a limit to the period where a refund can be initiated?

crimson needle
pastel sun
#

Will do, cheers

paper nexus
#

If I'm having some problems with the stripe identity docs walkthrough is this the right place to get help?

crimson needle
#

@paper nexus sure! What's your issue?

paper nexus
crimson needle
#

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

paper nexus
#

I get "HTTP/1.1 404 Not Found"

crimson needle
#

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?

paper nexus
#

so the const response line I don't have yet it's the curl -X command that isn't working.

crimson needle
#

Ah okay so the server-side part isn't working

cosmic galleon
#

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?

crimson needle
#

@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

paper nexus
#

ah no I haven't, which docs go over that?

crimson needle
#

@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

cosmic galleon
#

What happens then on the final invoice? For the final month only the usage would need to be charged

crimson needle
#

@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

hollow prairie
#

Hello! 👋

cosmic galleon
#

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

hollow prairie
#

@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

cosmic galleon
#

Ok, so the flat fee would not appear/be charged on the Sep 1 invoice?

hollow prairie
#

@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?

cosmic galleon
#

I expect the subscription length to vary customer to customer, but usually full month billing periods (unless the customer is in breach of contract)

hollow prairie
#

@cosmic galleon i.e. set the iterations according to the needs of that specific subscription/customer

vocal wagon
#

Hello hello everyone 🙂

cosmic galleon
#

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

hollow prairie
#

@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

#

@cosmic galleon So there would be no extra invoice for the flat fee on Sept 1st, only the final metered usage for Aug

cosmic galleon
#

Excellent. Thanks for your help. I find this forum very useful.
Also, good note about immediate cancel not billing for any usage.

vocal wagon
#

@hollow prairie hey 🙂

lusty ridge
#

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?

vocal wagon
#

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 🙂 ?

hollow prairie
#

@vocal wagon Hello. I'm afraid we can only offer English support here. For other languages please contact support: https://support.stripe.com/contact

#

@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

vocal wagon
#

Coool ! Thank you, actually here Prestashop seems to not interfer, I will show you some screenshots, I just have to hide personnal identifications

hollow prairie
#

@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

vocal wagon
#

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 ?

hollow prairie
#

@vocal wagon IDs of objects are fine, just no keys! (pk_xxx, sk_xxx)

vocal wagon
#

ok

hollow prairie
vocal wagon
hollow prairie
#

@vocal wagon I'm not sure what that is I'm afraid. But not directly using STPPaymentCardTextField, no

vocal wagon
#

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...

agile musk
#

Can someone help why I get require is not defined error

hollow prairie
#

@vocal wagon Can you please paste the ID of the PaymentIntent object you're questioning? Easier for me to lookup

vocal wagon
#

Of course

#

pi_1JEVivJvPltaHGEGCQlLwmWa

hollow prairie
#

@agile musk Hello, this doesn't sound specific to Stripe. Can you share the code in question?

lusty ridge
#

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. 🤷🏻‍♀️

junior ivy
#

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

hollow prairie
#

@vocal wagon What makes you think the payment failed? Looks like the charge was refunded to me

junior ivy
vocal wagon
#

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"

#

=/

maiden meadow
#

Hey can anyone help me out with one issue

hollow prairie
#

@vocal wagon

Stripe considered the payment has failed
What makes you say that?

vocal wagon
#

This... =/

maiden meadow
#

@hollow prairie Hi can you please help me with one issue

vocal wagon
#

Hi, how can I delete a cardholder (after disabled)?

hollow prairie
#

@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!

junior ivy
#

@hollow prairie Im updating the connected express account..

maiden meadow
#

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

hollow prairie
#

@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

left trench
#

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?

hollow prairie
#

@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

vocal wagon
#

Oooh ok thank you, but when the payment worked, there was no line related on Related Payments list

#

is it normal ?

vocal wagon
hollow prairie
#

@vocal wagon You're on the page for the detail of the successful payment

vocal wagon
#

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.

hollow prairie
#

@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

GitHub

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...

#

@vocal wagon Np!

junior ivy
#

onboarded account as express type and then tried to update. These are the event IDs after I update.. evt_1JG0qv2RcTelTv1SreN3MkuO, evt_1JG0qv2RcTelTv1SmIuxi6AA, evt_1JG0qv2RcTelTv1S8R8L5djO

hollow prairie
#

@vocal wagon Hello. I'm afraid we can only offer English support here. For other languages please contact support: https://support.stripe.com/contact

maiden meadow
#

@hollow prairie any suggestion for me

left trench
tiny echo
#

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

hollow prairie
#

@maiden meadow Checking!

maiden meadow
#

okay

#

Thank you

hollow prairie
#

@maiden meadow Can you share your code please

vocal wagon
#

How to delete cardholders

maiden meadow
#

Sure

hollow prairie
#

@junior ivy Checking now

maiden meadow
#

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

hollow prairie
#

@vocal wagon Looking into this

maiden meadow
#

I want to pass last name too along with the name

hollow prairie
#

@maiden meadow We don't control the UI and fields that are shown by the browser (be this Google Pay or Apple Pay) unfortunately

maiden meadow
#

okay

#

Thanks

vocal wagon
cunning aspen
#

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!

hollow prairie
#

@vocal wagon It appears cardholders cannot be deleted. Confirming

junior ivy
hollow prairie
#

@tiny echo Hey there. Are you using direct charges?

vocal wagon
hollow prairie
#

@cunning aspen Hmm, are you sure you're using Express accounts? They shouldn't have access to subscription management etc

spare harness
#

No. I am passing a customerid.

hollow prairie
#

@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

graceful pine
#

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!

tiny echo
hollow prairie
#

@graceful pine Hey there! Migrate which customer data? From where? Which new payment system?

tiny echo
hollow prairie
#

@tiny echo Can you share the ID of a PaymentIntent that isn't working as expected

cunning aspen
#

@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

hollow prairie
#

@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

cunning aspen
#

@hollow prairie oh ! it's very confusing, thanks

graceful pine
# hollow prairie <@!867751128476549190> Hey there! Migrate which customer data? From where? Which...

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? 🙂

daring lodge
#

Mornin folks

junior ivy
hollow prairie
#

@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!

#

@junior ivy Those events are for external accounts (i.e. bank accounts). Not the actual connected account being deleted/updated

graceful pine
#

do stripe have a phone number or do i simply have to wait for an email back?

#

thanks for your help.

daring lodge
# graceful pine do stripe have a phone number or do i simply have to wait for an email back?

@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

graceful pine
daring lodge
#

@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

junior ivy
#

okay .. thank you ..

daring lodge
stable pagoda
#

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)?

vocal wagon
graceful pine
daring lodge
stable pagoda
#

Payment Intents with API PHP

hasty jackal
#

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.

daring lodge
# stable pagoda Payment Intents with API PHP

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)

frail oriole
#

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

daring lodge
hasty jackal
daring lodge
frail oriole
#

All renewals should be 2 months early

daring lodge
frail oriole
#

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

daring lodge
#

Do you want to charge in May or March?

frail oriole
#

i want to charge you every may

daring lodge
#

(2 months earlier than last year or just offset from the start)

frail oriole
#

so yeah not sure if this is possbile with stripe

daring lodge
frail oriole
#

is this something one can solve with periods or what should i be looking into?

daring lodge
cunning aspen
#

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!

daring lodge
# frail oriole is this something one can solve with periods or what should i be looking into?

There are a few options:

  1. Use backdate_start_date to anchor the sub to (eg) May 1 2021 and set the billing_cycle_anchor to 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
  2. 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 in trialing status for the first cycle, though you likely dont need to expose this to your customer
  3. Use Subscription Schedules to set a new phase to begin May 1 2022 with the same price, using billing_cycle_anchor=phase_start and proration_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)
#

@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

vocal wagon
daring lodge
fierce sigil
#

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

cunning aspen
daring lodge
storm walrus
daring lodge
storm walrus
#

hi synthrider, i have my request-id today 😄

daring lodge
storm walrus
#

ok thx, i going to try this

daring lodge
fathom quest
#

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)

daring lodge
fierce sigil
vocal wagon
#

@daring lodge after logging in the page still says "Page not found"

#

And we are using issuing as well

daring lodge
fierce sigil
daring lodge
vocal wagon
astral quartz
#

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??

daring lodge
# fierce sigil `pi_1JFaz3EI4nxwUjY45aiBLsc5`

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)

daring lodge
fierce sigil
daring lodge
vocal wagon
daring lodge
astral quartz
vocal wagon
daring lodge
astral quartz
gloomy aurora
daring lodge
astral quartz
astral quartz
daring lodge
astral quartz
astral quartz
daring lodge
#

@astral quartz I want to make sure there is no other issue for you 🙂 going to look at some other recent charges

astral quartz
daring lodge
#

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)

astral quartz
summer prairie
#

Hello!! Using the stripe-react-native SDK, is anyone getting {PaymentMethod: undefined} as a response when doing a createPaymentMethod?

bold basalt
#

@summer prairie hello, can you say more, what version of Stripe ReactNative SDK are you on? Are you using Expo or not?

summer prairie
bold basalt
#

@summer prairie Expo 42 does not support 0.1.5, please switch to 0.1.4 and try that.

astral quartz
sweet fjord
#

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

bold basalt
#

@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)

sweet fjord
#

@bold basalt thank you

storm walrus
bold basalt
#

@storm walrus hello, looking

daring lodge
bold basalt
#

@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

vocal wagon
bold basalt
#

@vocal wagon hello, looking, one sec

humble tangle
#

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

storm walrus
# bold basalt <@!456153531712405534> that request created a PaymentIntent and confirmed it. Th...

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

trim star
#

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?

bold basalt
#

@storm walrus ok that helps, I can elaborate ...

#

@trim star hello, please run that question by Support at

#
cobalt plaza
#

Does Stripe offer a way to limit the number of trials allowed by one customer?

bold basalt
#

@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

bold basalt
#

@storm walrus ah got it

summer prairie
bold basalt
#

@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

storm walrus
#

oh, it's just because is the wrong card ?

bold basalt
#

@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)

storm walrus
#

ok going retry

bold basalt
#

@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

summer prairie
vocal wagon
bold basalt
#

@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

vocal wagon
daring lodge
vocal wagon
humble tangle
#

@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

bold basalt
#

@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

full tulip
bold basalt
#

@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)

full tulip
storm walrus
bold basalt
#

@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

full tulip
abstract compass
#

In configuring automatic renewal for subscription, what's the difference between these 2 options? Not clean to me how they impact things practically. Thanks.

bold basalt
#

@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

abstract compass
# bold basalt <@!148906736802070528> as is means Invoice would be in status `open` and can be ...

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?

frigid light
#

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

bold basalt
#

@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.

frigid light
#

@bold basalt Got it. So this should not reproduce in production I believe.

bold basalt
#

@frigid light correct, it works right in live mode, Google won't tokenize a 4242 visa test card but instead the real card.

frigid light
#

@bold basalt cool Thanks.

spare harness
#

Hi I use ephemeral key to show paymentsheet. Do I need to genrate ephemeralkey everytime I do a paymentintent or once is sufficient?

bold basalt
#

@spare harness hello, generating a new EphemeralKey with a new PaymentIntent would be the right hting

spare harness
#

Ok because I can't show the list of saved card in the payment sheet

bold basalt
#

@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

spare harness
#

No. Once it's created I do not create it again

bold basalt
#

@spare harness well cards that are attached to a Customer do show up in PaymentSheet

spare harness
#

Strange it doesn't

bold basalt
#

@spare harness so maybe something is off... share a Customer ID that you create PaymentSheet on, I can have a look

spare harness
#

It just show the checkbox to save the new card

#

In PM or here?

bold basalt
#

@spare harness just Customer ID here is fine

spare harness
#

cus_JtGSTTSo9qxp8R

#

any clues?

bold basalt
#

@spare harness that had the 8431 card attached to it, through PaymentSheet, right?

spare harness
#

But I don't see the cards linked to the customer

bold basalt
#

@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
#

But the amex card was created by checking save card in the paymentsheet

bold basalt
#

@spare harness yeah the amex card should show up in PaymentSheet the next time you show it, but not the 3155 visa card.

spare harness
#

It doesn't

bold basalt
#

@spare harness can you run through that PaymentSheet and add a new card, like a mastercard and share the PaymentMethod ID or Customer ID

spare harness
#

Yes sure

#

I ahve just added this card through payment method

#

pm_1JG5QrHzrCChm632Mz2lHBxW

#

customer id: cus_JtGSTTSo9qxp8R

bold basalt
#

@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

spare harness
#

16.10.0

humble tangle
#

@bold basalt Im doing the following but I cant get the web view to pop up

bold basalt
#

@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

spare harness
#

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);
agile musk
#

can someone help me with this?

bold basalt
#

@spare harness sure can have a look in a bit (I do see the PaymentIntent creation request on my end)

mighty hill
#

@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?

agile musk
mighty hill
#

@agile musk Where did you get the code you're using from?

agile musk
#

from the video

#

but not all of it

mighty hill
#

@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
#

wait

#

I messed up

mighty hill
#

@agile musk It sounds like you might be mixing together two incompatible ways of integrating Checkout.

agile musk
#

sorry

mighty hill
#

@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?

humble tangle
#

@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

mighty hill
#

@humble tangle To clarify, are you trying to force 3DS client-side?

humble tangle
#

@mighty hill yes, sorry didnt clarify that, currently trying to implement this behavior in android

mighty hill
#

@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?

humble tangle
#

@mighty hill im trying to force on both to make sure a card has been approved and gone through the 3ds verification

mighty hill
#

@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).

sweet fjord
#

@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?

mighty hill
#

@sweet fjord You can include basic auth credentials in the webhook endpoint URL, but beyond that no, there isn't.

sweet fjord
#

@mighty hill you mean stripe can add basic auth credentials when it sends notifications?

mighty hill
#

@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

humble tangle
#

@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.

atomic geyser
#

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

mighty hill
#

@humble tangle If you're using stripe.confirmPayment in your app that should be handled for you by calling that method.

atomic geyser
#

ok and what app do i download? I just set it up using a browser, have yet to download an app

mighty hill
#

@atomic geyser App? Not sure what you mean, can you provide more details?

atomic geyser
#

like mobile APP?

mighty hill
#

@atomic geyser Mobile app to do what?

atomic geyser
#

to accept payments through stripe? or is that not a thing. sorry

mighty hill
#

@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

App Store

‎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…

atomic geyser
#

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

mighty hill
atomic geyser
#

does that work with the chargeback protection as well?

mighty hill
#

@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).

atomic geyser
#

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?

mighty hill
#

@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.

next junco
#

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?

atomic geyser
#

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

vocal wagon
#

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?

mighty hill
#

@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.

mighty hill
#

@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

#

@vocal wagon Does the Subscription have a trial period? If so there's no Payment Intent yet because there's no payment required yet.

vocal wagon
#

does not

mighty hill
#

@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?

vocal wagon
#

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

mighty hill
#

@vocal wagon What's the Invoice ID?

vocal wagon
#

C159974B-0009

mighty hill
#

@vocal wagon That's the Invoice number. The Invoice ID should start with in_

vocal wagon
#

sorry hier it is in_1JG6JILZUxSkilJl5zpnzrWL

mighty hill
#

@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
#

aaaa now i know where I am 🙂

#

thx

mighty hill
#

@vocal wagon Happy to help!

inner pewter
#

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.

daring hamlet
#

Hi! Does anyone here have Terminal experience, specifically passing through price IDs when a card is run vs. just a total?

sick talon
daring hamlet
#

But not line items?

sick talon
solid sigil
#

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.

daring hamlet
#

Can a terminal...session...have line items?

#

I'm assuming no

sick talon
solid sigil
sick talon
sick talon
solid sigil
#

Found it! req_637L8i3FFqxxjY

sick talon
sick talon
# solid sigil Found it! `req_637L8i3FFqxxjY`

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.

solid sigil
#

Thanks for your help!

daring radish
#

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?

stuck ginkgo
#

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... 🤔

daring radish
#

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?

sick talon
stuck ginkgo
#

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?

sick talon
daring radish
# sick talon If your app is crashing, there's bound to be an error somewhere. I'm not all tat...

@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]

vocal wagon
#

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.

daring radish
sick talon
stuck ginkgo
#

Ok.

sick talon
daring radish
sick talon
vocal wagon
sick talon
#

(Assuming that by "pre-built checkout" you mean the client-side version of Checkout where you just paste the HTML onto your page)

vocal wagon
#

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

sick talon
vocal wagon
quiet dirge
#

need help my strip machine wont read credit card

sick talon
quiet dirge
#

actually there is no error when i swipe credit card all members info comes out on one line only

sick talon
quiet dirge
#

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

sick talon
crimson needle
#

@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

icy anvil
daring radish
#

@crimson needle I am asking this for the first time

crimson needle
#

Sounds good

daring radish
#

@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

crimson needle
#

Ack thanks for the info, @mighty hill will be helping you and I'll follow along (I don't understand React Native well)

mighty hill
#

@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
#

its SIGILL

#

I just copy pasted this error

mighty hill
#

@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?

daring radish
#

@mighty hill nope, My OS is BigSur and all normal environment, nothing special I am using

mighty hill
#

@daring radish What version of iOS? Have you tried different versions?

daring radish
#

@mighty hill ios 11

icy anvil
daring radish
#

so it works from 11, so I tried in 11 directly

mighty hill
#

@daring radish iOS 11? That's probably the issue. Can you try a newer version?

daring radish
#

@mighty hill Sure, I will try with the latest one

mighty hill
#

@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.

daring radish
#

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]

mighty hill
#

@daring radish Make sure to include all the logs and technical details we discussed here.

daring radish
#

Sure, Thanks @mighty hill

mighty hill
#

@daring radish No problem, sorry I wasn't able to help you find the solution!

daring radish
#

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

crimson needle
daring radish
#

@crimson needle ah I see, sure, I will comment on this

kind python
#

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?

crimson needle
#

@kind python that is not correct no. It's one flow with 2 separate steps

kind python
#

Ok thank you

#

What is the realtionship between the top diagram and the bottom one?

icy anvil
#

they happen sequentially

#

the steps are something like

  1. the user visits the payment page
  2. the client sends order information
  3. the server creates a new payment intent
  4. the client receives the new payment intent
  5. the user provides card details
  6. the client calls stripe.confirmCardPayment
crimson needle
kind python
#

Ok

crimson needle
#

@kind python what problem? Can you provide a bit more details about your debugging steps and what's blocking you?

kind python
#

this is my error Failed to load resource: the server responded with a status of 404 ()

crimson needle
#

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

kind python
#

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?

crimson needle
#

@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

kind python
#

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?

cloud river
#

Hi there; I've got two (hopefully) quick conceptual questions:

  1. 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?)

  2. 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?

crimson needle
#

@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!

  1. 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
  2. Same as 1, only with Standard accounts
cloud river
#

@crimson needle Fantastic, thanks!

icy anvil
#

@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

crimson needle
#

@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

cloud river
#

👍 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!

icy anvil
#

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.

crimson needle
#

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.

icy anvil
#

yeah, as I mentioned we ended up not going with it

crimson needle
#

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

old cypress
#

Hello! Is it considered safe to pass payment method IDs and customer IDs to my client?

crimson needle
#

@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

old cypress
#

@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?

crimson needle
#

Yes that's correct, but not the customer id (which should be attached to the PaymentIntent instead)

old cypress
#

Understood. Thank you for your help!

crimson needle
#

sure!

warped wedge
#

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?

crimson needle
#

@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

warped wedge
#

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)

crimson needle
#

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

icy anvil
#

One way to think about it is that success_url is only about what your customer sees.

warped wedge
#

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)

icy anvil
warped wedge
#

it's weird cause i've processed thousands of payments... it's only in the last week I've had two situations in Spain

icy anvil
#

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)

warped wedge
#

that's just it though - they aren't my accounts...

crimson needle
#

And it doesn't matter that they aren't your accounts, if you write the code you can handle events for them too

warped wedge
#

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

crimson needle
#

ohhhhh yeah if you use non card payments it might be different though the success url would still be hit

warped wedge
#

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

crimson needle
#

That's not in the Session. That's global on the account instead

warped wedge
#

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

crimson needle
#

That's correct

#

(sorry got pulled into something else)

warped wedge
#

Dang... ok that's a non-starter then. No way to load up an event handler URL into the Checkout object?

icy anvil
#

no, they're completely unrelated

crimson needle
#

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

icy anvil
#

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.

warped wedge
#

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

crimson needle
#

@warped wedge have them create an account just for your part of the integration in that case

icy anvil
#

yes, then you have full access to their entire account

warped wedge
#

ouuuu I do? I didn't event know that

#

So i can do lookups then

icy anvil
#

yes, or register webhooks yourself

warped wedge
#

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

crimson needle
warped wedge
#

BINGO

#

that's what I need

#

THANK YOU guys - this looks very promising

vapid cedar
#

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.

crimson needle
#

@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?

vapid cedar
#

@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).

crimson needle
#

@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)

vapid cedar
#

@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.)

crimson needle
versed helm
#

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?

crimson needle
#

@versed helm you would remove the coupon from the Customer or the Subscription itself instead

vocal wagon
#

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 😅

crimson needle
#

@vocal wagon we don't support tweaking the text on that part but I'll raise this to the product team

crimson needle
#

@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

vocal wagon
crimson needle
#

@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

vocal wagon
crimson needle
#

Yep that's perfect!

peak sierra
#

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.

crimson needle
#

@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

vocal wagon
# crimson needle Yep that's perfect!

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.

crimson needle
#

a few weeks I'd say but priorities can shift so I wouldn't block on it

vocal wagon
crimson needle
#

Sure!

peak sierra
wanton python
#

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

crimson needle
#

@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

rocky turret
#

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.

crimson needle
#

@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

plucky herald
#

In Stripe sanbox/test mode am I able to simulate actions such as disputes?

icy anvil
plucky herald
#

Yea I just found it argh

icy anvil
#

that's how it goes :)

jaunty ruin
#

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

bleak breach
#

@jaunty ruin Having a look

jaunty ruin
# bleak breach <@!867951793341100093> 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."

sharp onyx
#

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

  1. When we make stripe account for customer and seller -> for seller specifically, do we make custom account type with payout sent true?
  2. 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?
  3. 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?

golden cosmos
# sharp onyx I in my system, need to withhold a certain amount from customer's card and then ...

hello @sharp onyx !

  1. 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?
  2. 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.
  3. Yes that would be the seller's Stripe account id that was created in step 1
bleak breach
#

@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?

hollow nebula
#

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?

jaunty ruin
#

@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

bleak breach
hollow nebula
#

@bleak breach That is understandable. Thanks for the quick response 🎉

green grove
#

o/

What's the quickest way to get the card type and last 4 digits from an customer.subscription.updated event?

bleak breach
sharp onyx
# golden cosmos hello <@!846661938942574602> ! 1. there are a number of payout.settings paramet...

@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?

bleak breach
green grove
#

sweet, ty

bleak breach
#

If that's not set, then you'd have to look at the customer's invoice_settings.default_payment_method

jaunty ruin
bleak breach
# jaunty ruin Via Stripe.js in confirmAcssDebitPayment. There is an explict section in the doc...

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'
}
jaunty ruin
#

Are you doing it with the Stripe pop-up modal?

#

Or just a simple form?

bleak breach
#

Ah hold up you're using SetupIntents rather than PaymentIntents. Okay let me see if I can recreate this.

jaunty ruin
bleak breach
#

To confirm, are you using confirmAcssDebitPayment or confirmAcssDebitSetup on your client?

jaunty ruin
# bleak breach To confirm, are you using `confirmAcssDebitPayment` or `confirmAcssDebitSetup` o...
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)
    }
  })
}
bleak breach
jaunty ruin
#

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

golden cosmos
golden cosmos
bleak breach
jaunty ruin
#

Let me check

#

requires_action

bleak breach
#

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

jaunty ruin
unreal ingot
#

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

plucky herald
golden cosmos
fathom quest
#
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?

bleak breach
# jaunty ruin Thanks for digging into this Paul. Do you want my email if the team follows up w...

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

#

@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

golden cosmos
fathom quest
#

Thanks for the quick response 😄

golden cosmos
#

you're welcome!

pure walrus
#

hi do you do pre-authorisation of credit cards in Australia and NZ?

lucid raft
pure walrus
#

@lucid raft just making sure, this applies to AUS and NZ cards correct?

lucid raft
#

correct

uncut dragon
#

i need help

golden cosmos
void kernel
#

OUR BUSINESS NAME AND ABN HAS CHANGED

golden cosmos
pure walrus
#

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

fathom quest
#

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 😄

lucid raft
#

@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

pure walrus
#

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?

golden cosmos
#

@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

golden cosmos
fathom quest
golden cosmos
fathom quest
#

Alright. Thanks again for your time and response 😄

golden cosmos
#

you're welcome! Hope you have a great day and please don't hesitate to reach out in case you have any other questions!

fathom quest
#

|| And I must say, I have been through lots of dev and support team but stripe team and support is really awesome; the best. ||

magic bolt
#

been trying to reach out for "stripe tax" invite only but no one replies :<

bleak breach
undone hound
#

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?

bleak breach
#

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

undone hound
#

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?

bleak breach
#

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

undone hound
#

alright

vocal wagon
#

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!

cerulean pineBOT
#

: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

vocal wagon
#

this is a technical issue

lucid raft
#

@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.

vocal wagon
#

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

bleak breach
#

@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

sweet fjord
#

@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?

bleak breach
sweet fjord
#

@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

bleak breach
sweet fjord
#

@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

golden cosmos
#

@sweet fjord i'm afraid not, we don't support webhooks OAuth authentication

flint vessel
#

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

bleak breach
flint vessel
#

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

bleak breach
flint vessel
#

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 :-(

bleak breach
#

By custom checkout do you mean Stripe Checkout? It's not too difficult to set up, we can help you if you like

flint vessel
flint vessel
bleak breach
flint vessel
#

to start i just clone the github?

#

or install stripe sudo gem install stripe

vocal wagon
#

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

spare harness
#

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?

bleak breach
vocal wagon
bleak breach
spare harness
#

But what is this?

#

I found this in github case

bleak breach
lucid raft
spare harness
#

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

vocal wagon
#

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"

golden cosmos
lucid raft
#
    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

spare harness
#

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,
              ));
lucid raft
#

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

spare harness
#

Ok let me check

#

Thanks a lot

lucid raft
#

np

ebon tree
#

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?

bleak breach
#

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

ebon tree
#

Ah nice, ill check that out thanks!

timber ridge
#

Hi, where I could find full nodejs docs for stripe? Github readme is not quite that one

valid edge
#

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.

maiden meadow
#

Hello can anyone help for an issue I am facing

latent jolt
#

#dev-help what webhook event specify that subscription has been renewed and charged successfully?

latent jolt
maiden meadow
#

Can anyone help me with one issue I am facing

lucid raft
#

Cheena, what is your issue ?

maiden meadow
#

$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

lucid raft
#

do you have a request id that I can check ?

maiden meadow
#

okay

severe roost
#

hi

maiden meadow
#

let me check

severe roost
#

is there a UK phone where i can speak to someone at Stripe?

vocal wagon
#

Hi there, support redirected my question to youguys so here it is

cerulean pineBOT
#

: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

vocal wagon
#

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

maiden meadow
wintry geode
#

Can you help me

#

regarding Stripe on wix

lucid raft
#

@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

wintry geode
#

Can i talk to a pursen

lucid raft
maiden meadow
#

Okay

wintry geode
#

?

lucid raft
wintry geode
#

Wath do i cost to install stripe?

#

On my wix platform

lucid raft
#

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

maiden meadow
wintry geode
#

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

lucid raft
#

instead of passing 16.92 you should pass 1692

maiden meadow
#

okay

#

@lucid raft Thank you so much

lucid raft
wintry geode
#

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

full tulip
#

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

lucid raft
#

@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

full tulip
lucid raft
#

That pin feature is public yes

full tulip
viral parcel
#

hi everybody

#

i have a problem with stripe and prestashop

lucid raft
#

@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?

latent jolt
#

@lucid raft How to differentiate new subscription invoice.paid vs renewed subscription invoice.paid?

north ether
#

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_'?

lucid raft
#

@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

spare harness
# lucid raft np

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?

north ether
spare harness
paper nexus
#

I know this is quite a beginner question but how do I go about setting up a post route for the identity verification flow?

maiden meadow
#

Can anyone help with one stripe credit card issue

bleak compass
#

Hi! How can I customize my checkout page? I just need to have a text under the Pay button. Like this in the image.

vocal wagon
#

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

loud fractal
#

Hi, I have the following question. how can I add a credit card to a costumer user from the react native sdk?

daring lodge
loud fractal
#

I created a customer account but I have not been able to add the credit card with the react native sdk

daring lodge
daring lodge
limpid scaffold
#

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?

icy anvil
viral parcel
#

@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

vocal wagon
#

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?

daring lodge
daring lodge
vocal wagon
#

@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

daring lodge
daring lodge
chilly night
#

hey guys, anyone knows if there's any stripe endpoint when I can get the the currency rate before the actual transaction happens?

cerulean pineBOT
#

: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

sick talon
vocal wagon
#

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 🙂

sick talon
coral hinge
#

I have question about checkout non completed webhook, where should I ask?

sick talon
coral hinge
#

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

grave elbow
#

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?

coral hinge
#

but if the user close the stripe checkout page or ignore it I don't know how to get notified about it

vocal wagon
sick talon
sick talon
coral hinge
#

Can I unvalidate an already created checkout session after some time?

sick talon
coral hinge
#

ok, so I should generate a timer that restore the item after 24h if not completed?

sick talon
# grave elbow Hi there. We are currently doing a deal where users can purchase a 3 year plan f...

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

coral hinge
#

is it possible to modify the duration?

sick talon
limpid scaffold
#

Is there any built-in way to disable paymentRequestButton?
E.g. make it visible but non-interactive

coral hinge
#

is my workflow strange?

#

@sick talon there is a better way to handle magazine stock using checkout?

sick talon
# limpid scaffold Is there any built-in way to disable paymentRequestButton? E.g. make it visible...
sick talon
# coral hinge is my workflow strange?

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.

sick talon
coral hinge
#

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?

sick talon
coral hinge
#

I'm trying to test it but no trigger

bleak compass
fair geyser
#

If I mess up a subscription usage record, can I modify it? or delete/recreate? I see create does not allow negative numbers.

icy anvil
nocturne thistle
#

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

rough spire
#

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"}

coral hinge
#

Ok I'm not using it

nocturne thistle
sick talon