#dev-help

1 messages Β· Page 121 of 1

hollow prairie
#

@sterile night A script for which part?

daring lodge
#

morning folks!

sterile night
#

@hollow prairie For GPay/Apple Pay integration

torn stratus
#

Thank you @meager hawk

hollow prairie
#

@sterile night There's a full guide for the Payment Request Button here: https://stripe.com/docs/stripe-js/elements/payment-request-button

This enables Apple Pay and Google Pay and includes the server code for creating the PaymentIntent (which is seemingly what you're missing now)

fair flower
#

Hey guys! Is it possible to apply coupon codes / discounts to a created invoice?

daring lodge
#

@fair flower hey there! Just a sec πŸ™‚

#

@fair flower If you're trying to manage this for a subscription-related invoice this might be a little more involved, depending on exactly what you're trying to do. Can you share a bit more detail?

toxic quartz
#

hello there,

I have a running subscription in which user has already subscribed. Now he wants to change the number of quantity for that subscription then which api will be used

vocal wagon
#

Hi there!

#

We have 2 accounts in our platform

#

Is it possible to move connected account from one to another?

daring lodge
#

@toxic quartz hello πŸ‘‹ you can update the quantity for the specific subscription item to change this. Note that you will need to include the subscription item id that you can get by inspecting the subscription:
https://stripe.com/docs/api/subscriptions/update#update_subscription-items-quantity
https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id
You can see how to provide this in an example request here in the docs (though you would be changing quantity, not price):
https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#changing

daring lodge
#

@vocal wagon howdy! No, that's not supported as a direct change. You would need to connect the account to the other platform and disconnect from the first one.

slate elbow
#

anyone else having massive issues with the stripe dashboard?

#

keeps on switching between the old and a newer looking design

#

and most requests to change stuff just fail

daring lodge
#

@vocal wagon Well, depends on some details, but maybe! If it's a custom/express account (rather than standard) then there is no way. You'd create a new account on the other platform and move any data over you'd like to preserve.

#

@slate elbow That doesnt sound right

#

@slate elbow is this new behaviour?

slate elbow
#

yeah started a few minutes ago

fossil crystal
#

Hi again, using Stripe.js Elements how can I specify the MOTO flag during the JS call "stripe.confirmCardPayment()" as I cannot specify MOTO via the API "payment_method_options[card][moto]"=true when creating the PaymentIntent as I do not know the card details yet until the Stripe.js Elements collects it.

slate elbow
#

the new dashboard design looks kinda nice but preferred the last one btw

#

it seems to have stopped

daring lodge
#

Good to hear, was looking to see whether there were any known issues πŸ™‚

slate elbow
#

updates are now randomly failing again

#

less than before, but its annoying having to reload the page and retry

daring lodge
#

Looking again 🧐 -- can you try logging out and back in?

slate elbow
#

gimme sec

#

a refresh corrected that but what

daring lodge
#

@slate elbow if possible, would you be able to share the request id from one of the failing requests from your developer tools network panel?

#

(in the response headers)

slate elbow
#

stuff is now going through as normal, i think it just had multiple moments

#

happened after creating a new account if that helps

hollow prairie
#

@fossil crystal I'm pretty sure it's not yet supported via confirmCardPayment in Stripe.js

daring lodge
#

Ah thanks @hollow prairie -- missed that!

hollow prairie
fossil crystal
#

So I cant use Elements to take MOTO card payments?

cosmic storm
#

Hello,
I had issues with 3DS in Electron app, so I'm trying to redirect the user in the browser for 3DS and return back when it's ready.
I'm doing this with: {handleActions: false} and return_url.
I'm using this on stripe.confirmCardSetup, because I need this for subscription with trial period. (I do not want to charge the user directly)

My main issue: The 3DS goes well in the browser and the user is redirected back in the desktop(electron) app, but I'm not sure what else should I do to confirm the card details, because when I send the payment method to the backend, it's still not confirmed.

daring lodge
#

And, correct -- @fossil crystal the moto option can only be specified with a secret key request from your server

#

@fossil crystal Can you say more about your use case here?

slate elbow
#

or could you use tokens from elements?

daring lodge
#

@cosmic storm can you provide an example setup intent ID i can look at?

toxic quartz
# daring lodge <@!507143237811568640> hello πŸ‘‹ you can update the `quantity` for the specific s...

@daring lodge

hello again,

I wants to change the subscription i.e. basically the price_id and my customer has used 3D secure card at the time of subscription creation. So when we try to charge the card it will not allow and we are doing in from iOS & Android apps so whats the best approach to verify 3D secure. We know on how to create the subscription for the first time when customer purchases as we are using the stripe mobile SDK and that does the job for us.

So is there any way to invoke the 3D secure page of mobile SDK when customer needs to complete the 3D secure authentication

fossil crystal
cosmic storm
daring lodge
#

@toxic quartz What exactly is the issue you encounter that you need help solving? When the subscription is initially set up the card should be ready for future off session payments (though authentication can always be requests by the bank).

toxic quartz
hollow prairie
#

@fossil crystal There's nothing stopping you from still using Elements with Stripe.js to capture payment details and tokenise (with a PaymentMethod). You would just need to do server-side confirmation to use the moto parameter

daring lodge
#

@toxic quartz Are you changing the billing cycle, or explicitly requesting an immediate payment?

toxic quartz
#

immediate payment

daring lodge
#

@toxic quartz Can you share the subscription ID?

toxic quartz
#

sure

daring lodge
#

@cosmic storm That setup intent looks to have been successful, so what are you looking at that suggests to you it is unconfirmed?

toxic quartz
acoustic inlet
#

Hi there!
https://stripe.com/docs/connect/oauth-standard-accounts here i read
"Starting in June 2021, Platforms using OAuth with read_write scope will not be able to connect to existing accounts."
but here https://stripe.com/docs/connect/oauth-changes-for-standard-platforms i read
"Platforms that use read_write will be able to connect to the user’s existing account as long as they’re the first platform to connect."
What is the truth? I tried in test mode and i can connect an existing account but i'm not sure if it is safe to use in prod.

fossil crystal
cosmic storm
daring lodge
#

@cosmic storm I see what confirmation that leads to an action required state, yes, but you're handling that and its ultimately successful.

hollow prairie
#

@fossil crystal You'd not use confirmCardPayment in this case as the moto parameter can only be passed server-side. The example at https://stripe.com/docs/payments/payment-intents/moto is the best available right now

But instead of passing raw card details, you can use createPaymentMethod from Stripe.js with your Elements form and pass the resulting pm_xxx object when creating the PaymentIntent

fossil crystal
#

Thank you, ill try to figure it out and come back to you!

hollow prairie
#

@fossil crystal Let me know!

toxic quartz
wraith gorge
daring lodge
#

@toxic quartz ok taking a look at that one, just a min

wraith gorge
#

Ok thank you

daring lodge
#

@toxic quartz So in this case the update was still successful: https://dashboard.stripe.com/test/logs/req_mqyrh3uXm9EwCi
But now you have an open/unpaid invoice to resolve: in_1JCQSEDwblwKLRf7gfoed5rc
You received an invoice.payment_failed event related to this: https://dashboard.stripe.com/test/events/evt_1JCQSFDwblwKLRf7IF5dUHh9
And one for payment_action_required: https://dashboard.stripe.com/test/events/evt_1JCQSGDwblwKLRf7hdpBaGoZ
You'd do this by retrieving the invoice and using expansion to include the payment intent object:
https://stripe.com/docs/api/expanding_objects

const invoice = await stripe.invoices.retrieve(
  'in_1JCQlDLt4dXK03v54c2cVMgc',
  {expand: ['payment_intent']}
);

Then use the client_secret with Stripe.js confirmCardPayment

toxic quartz
daring lodge
tame fog
#

Hi, I'm quite new to stripe, so please forgive me for the question. Is there an API to get the payout associated to a payment intent?
In the GUI I can see the payment intents associated to every payout, but I would like to get them programmatically
Thanks!

daring lodge
#

@tame fog Hey there! Given a payout ID you want to see all of the payments that are included in that payout? Is that right?

tame fog
#

@daring lodge correct!
and, if it possible, the reverse: given a pyment intent, get the associated payout (if any)

fossil crystal
# hollow prairie <@!214831577207668736> Let me know!

Hi, that worked great thank you! I assume it works as everything went through ok and it did not complain about the MOTO/confirm flags. I cant see in the dashboard how to discern MOTO from non MOTO transactions so i'll have to assume it works as it never prompts me for 3D auth even when enabled. Probably used my card too many times on this machine πŸ™‚

daring lodge
#

@tame fog The latter case is a bit tricker, but payout -> payments is supported directly via the API. You'd start by listing balance transactions filtered to a given payout and then use expansion to get the charge/payment intent related to each BT:
https://stripe.com/docs/api/balance_transactions/list#balance_transaction_list-payout
https://stripe.com/docs/expand/use-cases#charges-in-payout

#

@tame fog you can expand that example above using expand with data.source.payment_intent to get the PI objects

tame fog
#

@daring lodge thank you for the hint, I'll check it but I'm sure it will work! πŸ™‚

daring lodge
#

For the "reverse" (PI to payout) we need to use expansion to first inspect the specific balance transaction for the available_on date.
https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-available_on
This is the same request as when looking at fees:
https://stripe.com/docs/expand/use-cases#stripe-fee-for-payment
But then you'd look at available_on to get the timestamp.
You then use that date to list all payouts on that day using the gte and lte created filters (gte set to expected payout day, lte set to the next day):
https://stripe.com/docs/api/payouts/list#list_payouts-created-gte
This might include multiple payouts, so you'd need to iterate through them and do the expansion we looked at first to see which contains the payment intent you're interested in.

#

(for @tame fog πŸ‘† )

hollow prairie
#

@fossil crystal Are you using a specific test card when creating the PaymentMethod?

daring lodge
#

@trim mountain That screenshot looked like it might have included personal information so I deleted the message, can you share just the error or a redacted image? Ideally a failing request id would allow us to see what was happening:
https://stripe.com/docs/api/request_ids

fossil crystal
hollow prairie
toxic quartz
daring lodge
#

@toxic quartz Yep, you'd get it from the payment intent associated with the invoice, and in fact you must use this one.

fossil crystal
#

A customer just used Elements on our site and the "uncapctured" transaction shows a Related Transaction with the "Failed" error of: The bank required 3D Secure authentication for this payment. Update your integration to set up 3D Secure authentication.

#

Yet above this in the PI the timeline shows: Payment started, 3D Secure authentication succeeded, Payment authorized, but not yet captured, This payment was verified with 3D Secure and is protected from being disputed for fraud

hollow prairie
#

@fossil crystal Can you share the pi_xxx ID?

fossil crystal
#

pi_1JCRRlISraJyVicTeye0KYQZ

toxic quartz
fossil crystal
#

@hollow prairie Mind you we just captured the PI and it went through ok, so not sure why it shows a Failed related transaction

hollow prairie
#

@fossil crystal Where specifically are you seeing a failed transaction?

hollow prairie
#

@fossil crystal Just double checking something

#

@fossil crystal Ok, so that related payment is the initial attempt to charge the card before the bank responded requiring authentication. So your integration handled the authentication_required flag, directed your customer through the 3DS flow and then we re-attempted a successful 2nd charge

bold basalt
#

@trim mountain hello, I've stepped in, can you bring me up to speed really quick?

dense pebble
#

CORS problems. I get this error message. "Access to fetch at 'https://www..com/create-payment-intent.php' from origin 'http://www..com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: ". I'm not sure how to even ask a reasonable question about this

ancient kraken
#

Hi all, I'm looking for help with building a custom Stripe integration for marketplace loyalty. Any developers/teams that have some experience and capacity?

wise nebula
#

How can I add a loading to the card input element using react stripe ? sometimes it takes to long to load the inputs please need help

bold basalt
#

@ancient kraken hello! are you looking for answers to any technical questions you have? Or looking to hire developers who have built Stripe integrations, in this channel?

bold basalt
#

@dense pebble looks like your server isn't set up for cross origin requests, I would recommend searching that error message and learning more about CORS and allowing your webpage origin to make a request to your server

cosmic storm
# daring lodge <@!634101093789335562> I see what confirmation that leads to an action required ...

Hi, I tried many things, but now even after I switched to {handleActions: true} all the cards that require 3DS just fail. We switched back to previous version of our app that was working and it's failing now. It's interesting that we are successfully redirected to the Visa 3DS page and click "Confirm". You can check the request/response here https://dashboard.stripe.com/test/logs/req_1TOrjqOOakayIs

bold basalt
#

@wise nebula hello, looking

#

@cosmic storm hello, answering your question, one sec

#

@ancient kraken just to clarify, this channel has engineers operating here who work at Stripe (like myself), we're happy to answer your programming questions about Stripe if you're building an integration yourself. For hiring developers, would recommend reaching out to external freelance solutions like Toptal or Upwork who have developers who build websites/integrations.

dense pebble
#

@bold basalt Thanks. The header needs to be added. Where should I add the 'Access-Control-Allow-Origin header? Is this CORS because I'm switching from https to http? Also it seems to be intermittent which is puzzling

ancient kraken
#

Thanks @bold basalt , is there an official directory for Stripe developers/agencies our team could reach?

bold basalt
ancient kraken
bold basalt
#

@dense pebble not sure I can answer that exactly, this is mostly on your integration outside of the Stripe parts specifically (just a webpage making a request to your server), I would recommend learning more about CORS properly, make the change then test it thoroughly.

#

@cosmic storm ok so a couple of things

#

@cosmic storm you should be using handleActions: true . What that does is, it handles authentication and also attempts a charge/payment. So what is happening is, your customer is authenticating and the subsequent charge is declining.
With handleActions: false, you're only authenticating but not actually creating the payment. The request you shared did not have a successful Subscription, the status is incomplete.
So the question becomes, why do you think a declining charge is a bad thing? Are you expecting it to work? and if so, it could just be that you're using a test token that always declines a charge? which would be expected?

dense pebble
#

@bold basalt Thanks for your help. I'm following the Stripe 'custom client' example. JS is requesting PHP which attempts to creates the Payment Intent. As I understand JS is on the browser, requesting PHP from Server. I did read some about CORS error before asking. I'm confused. Am I attempting to tell the browser to allow the server to make a request? If you have suggested recommended resources on CORS. Thanks

cosmic storm
bold basalt
#

@cosmic storm ok lets take a step back. handleActions: true should be the default and is what you should be using.
So now, with that said, you are expecting a payment to succeed but it isn't. So let's start there, send me a PaymentIntent or Request ID where you used handleActions: true and it didn't work, and I'll trace why

dense pebble
#

@bold basalt Thanks. I will study that. I found the idea that I would give client origin to server a bit confusing as how can I know the client origin? But ... I'll read what you sent and hopefully that will have all the answers! Thanks for your help

cosmic storm
bold basalt
#

@cosmic storm looking one sec

#

@cosmic storm so you haven't used handleActions here at all thought right?
You created a Subscription, passed off_session: true, which created a Charge on the PaymentIntent but that declined due to requiring authentication, and you haven't confirmed it client-side at all... so where is handleActions coming into play here, I don't see the PaymentIntent confirmed client-side, it is still in status: requires_action

cosmic storm
bold basalt
#

@cosmic storm what are you using on your frontend, what function?

#

@cosmic storm from Stripe.js i.e. are you using confirmCardPayment() ?

cosmic storm
#
            paymentIntent, {
            payment_method: paymentDetails
        });```
dim hearth
cosmic storm
dim hearth
copper pollen
#

Good afternoon, I'm still having difficulty with my stripe banking account connection.

dim hearth
cosmic storm
dim hearth
# cosmic storm Yes we are trying to configure the payment method for subscription with trial pe...

It's not required - it just depends on what you're trying to accomplish with your integration. If you're creating a subscription and default_payment_method (see https://stripe.com/docs/api/subscriptions/create#create_subscription-default_payment_method) is not set, then we'll use the customer's payment method set at invoice_settings.default_payment_method. Another question - is there a specific reason you're using the 4000000000003220 test card?

copper pollen
#

Yes, almost a year ago, my friend and I created this Stripe account and he put his name and bank originially for the transactions. The Stripe account is connected to my website for modeling and subscriptions. He's been going through some mental hardships so he's in and out of care. So we decided for me to just take over completely until he gets back on his feet. So we put my bank account to the stripe account so that way when we do payouts and transactions it'll go to my account. However, every time we try hitting payout it just says contact support. We've both done this already and explained the situation through support email with stripe. He even contacted Stripe saying that I'm taking over as primary and administer and he's leaving the account completely.

dim hearth
cosmic storm
copper pollen
#

Their email said we will be calling D**** C**** for confirmation during certain times etc. to confirm everything. I talked to my friend D**** and he said he answered and confirmed everything. So, I went on Stripe account today to see if it works and nothing still. However, it does show that I am the only one on the account and administer.

dim hearth
# cosmic storm We are passing the payment method created by the front-end, so it shouldn't be a...

I looked at one of the requests (req_1TOrjqOOakayIs) you sent over earlier, and it looks like you're not actually setting default_payment_method when you create the subscription so it's still using the customer's default. If you're trying to test out a flow where you set up the card for 3ds once and subsequent transactions don't need 3ds then you should be using a different card - the *3220 test cards needs 3ds for every single payment.

dim hearth
copper pollen
#

Okay thanks.

cosmic storm
vocal wagon
#

Hi there!

warped grove
#

Hello! I am a web dev and I want to build custom eCommerce websites for different customers. I have the following questions: Can I use one single stripe account to manage all of the integrations with all the customer websites? Or each of the customers are gonna have to create an account for them?

dim hearth
vocal wagon
#

Is there a possibility to get the fees for transaction programmatically

dim hearth
dim hearth
vocal wagon
#

Yes

vocal wagon
#

And in the creating proccesee itself

dim hearth
# vocal wagon And in the creating proccesee itself

Well during creation the fee would be something you'd have to calculate yourself based on our pricing model (https://stripe.com/pricing). For retrieving the fees after payment, you'd find the associated balance transaction and check fee (see https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-fee)

vocal wagon
#

Is it including all the fees?

dim hearth
vocal wagon
#

and Network costs

dim hearth
vocal wagon
#

Cool thanks!

cosmic storm
alpine ivy
#

Hello how are you? I have an account on Squarespace, with a store, and I would like to know how I can add the payment method via bank slip

dim hearth
south linden
#

hello

#

does stripe support discover bank for payouts?

shadow cobalt
#

Hi is there a JS SDK to use BBPOS WisePad 3 Reader

alpine ivy
dim hearth
south linden
#

anyone help me please

#

no but i want to make sure

#

can anyone check please or just make sure please

dim hearth
south linden
#

does stripe support virtual bank like monzo ?

dim hearth
shadow cobalt
#

RE: JS SDK on BBPOS WisePad 3 Reader, any plans to add that on if not available now?

dim hearth
silk hornet
#

What does the card_decline_rate_limit_exceeded error code mean?

dim hearth
#

@silk hornet From our docs (https://stripe.com/docs/error-codes): "This card has been declined too many times. You can try to charge this card again after 24 hours. We suggest reaching out to your customer to make sure they have entered all of their information correctly and that there are no issues with their card."

silk hornet
#

If you are from the USA, and you want to pay through stripe, do you have to be able to pay in ireland in order for you card to be accepted?

dim hearth
silk hornet
dim hearth
dim hearth
# silk hornet Yes.

What did they say? They (the merchant) should be able to contact support (https://support.stripe.com/contact) with details about the invoice for us to dig in further

wraith hound
#

Hi. I’m a developer building out a Vue-based application that will integrate with Stripe to handle automated invoicing for metered subscriptions. The Stripe API docs are excellent, but some things regarding the metered billing seem to be unclear or missing.
Questions: What happens with the subscription when users change metered products in the middle of a billing cycle? We are trying to figure out what Stripe does and what we have to do for various configuration options. What is the default behavior? Does Stripe automatically add the new subscription items to the account and then remove the old ones once the new cycle begins?

alpine ivy
dim hearth
# wraith hound Hi. I’m a developer building out a Vue-based application that will integrate wi...

Hello! When a metered billing subscription is changed to a new price in the middle of the cycle, no prorations will occur and the invoice that is cut at the end of the cycle will be calculated as if it was on the new price the whole cycle. If you want to calculate the cycle as partly being on one price, and partly being on the other there are some workarounds to do that, but it's not something that happens automatically

dim hearth
cosmic storm
# dim hearth You should be using the 4000002500003155 test card - if it's been set up properl...

Sorry to bother you again, but can you suggest me where to find more information on custom 3ds handling aka {handleActions: false}. Because everything started by one payment provider that requires unsatisfiable Content-Security-Policy inside our electron app. We tried to show the 3ds in the native browser, which worked well, but I'm not sure what to do after the 3ds is confirmed and the user is returned back in the app.

alpine ivy
dim hearth
alpine ivy
#

I don't know if I can suggest it here, but because I believe that Stripe and Squarespace are partners, I leave here the suggestion for payment via bank slip at Squarespace.

sick talon
vocal wagon
#

Hi there

#

One more question

#

We have 2 accounts in our platform

wraith hound
# dim hearth Hello! When a metered billing subscription is changed to a new price in the midd...

Thanks for the quick response @dim hearth To be clear, if a customer signs up for a subscription with metered products A and B and two weeks into a billing cycle decides to upgrade to metered products C and D, Stripe does not keep the usage data that we already posted for A and B and use it for the current invoice? Ideally, I would expect that all usage posted for products A, B, C and D for a billing cycle would be honored.

vocal wagon
#

One of the shops connected to the other account by mistake and we want to disconnect and connect it to the right account

#

Can you send me the link to do so?

sick talon
dim hearth
# wraith hound Thanks for the quick response <@!845165114360856596> To be clear, if a customer...

It depends on how you're doing things - one way to update the products/prices of a subscription is by changing the price ID for that particular subscription item (see https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#changing). So if you were to update subscription item for product A -> product C and update the subscription item for product B -> product D, then the usage would be preserved because usage is tied to a specific subscription item (not a product). The usage for the subscription item for product A would not be the usage for product C. Does that make sense?

shadow cobalt
#

Hi am I right in thinking that using BBPOS WisePOS E Reader, an intent cannot be created directly from the terminal itself? A checkout page is always required on the web?

sick talon
shadow cobalt
#

Would it be possible to create the payment intent directly from the terminal e.g. key in the amount on the terminal?

sick talon
shadow cobalt
#

So just to confirm, merchant opens app/webpage and creates an intent from there then in-person transaction is processed via terminal.

sick talon
shadow cobalt
#

Thanks, I just wanted to double confirm.

vocal wagon
sick talon
cosmic storm
wraith hound
#

After talking with Stripe support last week in an attempt to make sure that we were configuring our products/prices correctly, this is what we did. We created four products (prod_), A & B for the β€œProfessional” plan and C & D for the β€œEnterprise" plan. Each product has exactly one metered price (price_). Users can only have professional (A & B) or enterprise (C & D).

  1. Have we configured our metered products in a way that you’d recommend?
  2. Can we use the update api as you suggested with our current configuration?
const subscription = await stripe.subscriptions.retrieve('sub_49t...');
stripe.subscriptions.update('sub_49t...', {
  cancel_at_period_end: false,
  proration_behavior: 'create_prorations',
  items: [{
    id: subscription.items.data[0].id,
    price: β€˜price_CBb...',
  }]
});

atomic leaf
#

Hey, I am using the new stripe-react-native library

#

it's working and running fine in the simulator

#

but when I try to archive it

#

I keep running into: "Undefined symbols for architecture arm64"

#

I have tried A LOT of different ways to fix it but I can't figure out the right answer

sick talon
atomic leaf
#

I'm concerned that this might be the issue:

#

and therefore I can't use the library without it being rebuilt

sick talon
atomic leaf
#

Thanks for the response

#

This is the stack trace:

sick talon
atomic leaf
#

so it seems stripe related ... and this was the main change I made (moving from tipsi-stripe to stripe-react-native) before this issue

sick talon
atomic leaf
#

Thanks, slightly different, hence it not showing up in my searches, but I agree, similar enough, I'll check it out

wraith hound
#

we were puzzled at first because we saw four entries (A, B, C, and D) in a summary somewhere (forget the page at the moment) when we used the update api. we will try it again. Q: should we expect to see line items in the invoice for A, B, C and D if a user switched plans as described above for the current invoice, and then only C & D starting with the next billing cycle?

sick talon
wraith hound
#

but. these are metered subscriptions - no proration officially, right? but you are saying that we are effectively implementing a workaround?

sick talon
vocal wagon
#

I see this is to disconnect

#

How do I connect it?

#

to the new one

sick talon
wraith hound
#

thanks @sick talon and @dim hearth

atomic leaf
#

do you have any other recommendations

#

?

#

as you can see it does look related to the stripe sdk

sick talon
atomic leaf
#

There was nothing to delete from the library search paths because there wasn't anything mentioning swift

#

and I already had a file for a bridging header

#

so I've not been able to change anything

sick talon
atomic leaf
#

Thanks very much @sick talon

dire shadow
#

Hello. I'd like to get in contact with a technical resource from Stripe to walk through a specific use case. I'm a developer for a small startup and I've put together an early implementation, but I'd like to verify that I'm following best practices. Our solution is using quite a few stripe products in conjunction with each other (Connect, Checkout, Stripe Tax, Subscriptions, etc.), so I'd love to get an expert's opinion. Any advice on how I can chat with someone?

sick talon
bold basalt
#

@atomic leaf hello, what version of Xcode are you on? And what version of stripe-react-native are you on?

atomic leaf
#

Hi @bold basalt , Thanks for joining

#

I am on xcode 12.5 and the latest stripe-react-native 0.1.4

#

I've tried a few different versions of xcode though

#

just to try to make it build

knotty widget
#

I have been trying for two hrs now to get my info out so I can sign up with you to get conncted with Auto trader I do not know what I am doing wrong I have to complete this soon buyer is getting impatient. I am not all that great with stuff like this I need helpt please.

cerulean pineBOT
#

:question: @knotty widget 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

atomic leaf
#

I've tried different fixes from here:

bold basalt
#

@atomic leaf heading to a meeting, respond in a bit

atomic leaf
#

thanks hmunoz

#

any help would be really appreciated

#

it's nearly 10 in the evening here so I might not be around but I'll follow up in the morning

dire shadow
# sick talon We can answer specific individual integration questions here if you have any.

Background
Our product is similar to Stitch Fix or Trunk Club. Customers sign up to a monthly subscription (through Stripe Checkout), and once a month they are shipped products from various product suppliers. The product suppliers sign up separately with Stripe Connect. Customers are charged a reoccurring subscription fee for our service, and separately once a month when suppliers send them goods.

Questions

  1. For the once per month charge, the idea is to create a transaction between the connected supplier account and the customer. We'd like to reuse the payment method and shipping address the customer entered in the checkout session when they created their subscription. The only way I have found to do this is to create a Payment Intent and attach the payment method from the subscription. Is this the best / only way?
  2. Is it possible to use Stripe Tax alongside a Payment Intent charge? I've specified automatic tax enabled for the customer subscription. Can I do something similar on a payment intent? We need to collect Tax and set Shipping for the once per month charges, but I'm not sure the best way to go about doing that. I think I may be misunderstanding the payment intent object.
sick talon
dire shadow
#

I want the money to flow from the customer payment method directly into the connected account's supplied bank.

#

Or as close to directly as possible

#

So I think the answer to your question would be yes?

sick talon
dire shadow
#

Our platform for the reoccurring subscription fee. Connected account's business name for the individual once per month transactions.

sick talon
# dire shadow Our platform for the reoccurring subscription fee. Connected account's business...

You need to create separate PaymentIntents for each of the "individual once per month transactions" then. You can either use Destination Charges [0] with on_behalf_of [1] or you can use Direct Charges [2] by sharing the PaymentMethods to the connected accounts [3].

[0] https://stripe.com/docs/connect/destination-charges
[1] https://stripe.com/docs/connect/destination-charges#settlement-merchant
[2] https://stripe.com/docs/connect/direct-charges
[3] https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods

atomic leaf
#

Just for extra information @bold basalt if I add arm64 as excluded architectures then the build progresses but I get a new error: "frameworks.sh: line 131: ARCHS[@]: unbound variable"

#

and I feel like if I trying to create an archive I shouldn't be excluding arm64 architecture?

#

(I am fairly new to react native development)

#

also I've tried a variety of fixes when reaching that error but again I couldn't find a solution

#

thanks again

dire shadow
# sick talon You need to create separate PaymentIntents for each of the "individual once per ...

Great. I have it setup now to use Destination Charges, but I think Direct Charges is more in line with our business model. I assume Destination Charges = our business name on the customer's bank statement and Direct Charges = connected account's business name? This is how I've got it coded now. I'm pulling the payment method from the customer's subscription through the Stripe.Subscriptions API.

dim hearth
dire shadow
#

My only remaining question is on the amount. I'd like to leverage Stripe to help calculate the total amount I should be charging on the Payment Intent. We've got products and shipping rates entered in Stripe and we're signed up with Stripe Tax. Can I leverage those services to help me calculate Shipping and Tax amounts and add it onto the total?

EDIT: Similar to how I'm specifying automatic_tax, pricing, etc on stripe.checkout.sessions.create()

dim hearth
atomic leaf
#

I've just checked and enable bitcode is no in my build settings

sand tusk
dim hearth
dim hearth
sand tusk
sand tusk
#

@dim hearth I should mention the end goal is to test w/ Stripe Terminal (not sure if that matters...)

dire shadow
#

Maybe I'm missing something

dim hearth
sand tusk
dim hearth
dim hearth
sand tusk
safe fiber
#

hi πŸ‘‹ is there any way we can make some sort of artifact in stripe that an invoice was "refunded out of band"?

dim hearth
sand tusk
crimson needle
#

@sand tusk ah nice find and yes it seems you're using the sk_live_123 to finish the connection instead of the sk_test_123

sand tusk
safe fiber
rare wave
#

Hi, I have a query regarding the Connect product. what are the limit and requirements on charge and transfers. I believe charge will pull money into the Platform account and transfer will move money to the connected account from the Platform account. A link to the specific page in the documentation should also be fine.

crimson needle
rare wave
#

Thanks@crimson needle, its helpful. I am also looking for, if there is any limit on how much money the platform account and a connected account can hold if the transfer or payout are not triggered.

crimson needle
#

no limit that I have heard of no but you're unlikely to hold tens of millions of dollars and not want to be paid out right?

stark tide
#

stripe is not a depository institution

crimson needle
#

fair though it doesn't say anything about your own balance

#

and you could always pay out regularly but just get more money each month from new sales

stark tide
#

my non-lawyer, non-binding read of that is that it applies to balances both in the platform & connected account

#

but really the right place to ask a question with that level of specificity is support

crimson needle
#

yep totally though my read of the question is that it's mostly theoretical

rare wave
#

@crimson needle Thats correct, was just making sure that we are not building something which might break.
Thanks @stark tide - Though we have enabled automatic payout for our customers but keep it manual for customers who do not go through the IDV. Probably we will have to build a flow to refund money back after certain period to the source from which the charge was created. Please correct if my understanding is not right

misty spindle
#

Is it possible to mask credit card in stripe js v3 ?

crimson needle
#

^ reply to the same question in the other channel

echo spindle
#

Hey, so I wanted to ask, I run at tutoring business called Tutorvise with multiple tutors in my team who also do lessons. I want to automate my process with the ability for parents/students to book lessons with their tutors through a calendar system and for it to generate automatic invoices that mean upfront payment prior to the lesson. Is this possible through Stripe and Stripe connect?

crimson needle
#

I already replied in the other channel though to that question

#

yes all of this is doable with Stripe Connect
Parents/Students would be customers in your platform as they are going to pay for lessons. And Tutors will have their own Stripe account connected to your platform so that they can receive funds. You likely want to use Express accounts https://stripe.com/docs/connect/express-accounts

mossy cape
#

Hey team! With a test acss_debit automatic payout, if my payout last week Friday was scheduled for Monday the 12th (yesterday), then yesterday itwas changed to be scheduled for Tuesday the 13th (today), now today it says scheduled for Wednesday the 14th. What’s happening here? πŸ€”

echo spindle
cerulean pineBOT
#

:question: @mossy cape 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

mossy cape
#

how is this not technical πŸ˜‚

#

i’m trying to test my payouts before they go live

crimson needle
#

it's not technical at all though. It's just about why payouts are not happening on your account and are shifting dates, which is purely an account question

#

@echo spindle yes, you are the platform in my sentence. Like you are the business facilitating accepting payments from parents/students on behalf of tutors

echo spindle
#

yes okay that makes sense thanks.

split mirage
#

hey! i'm trying to build a platform that connects to my user's Stripe accounts. is OAUTH the preferred method?

dim hearth
# split mirage hey! i'm trying to build a platform that connects to my user's Stripe accounts. ...

Oauth isn't the preferred method - the recommended flow is to use out hosted onboarding flow (like we talk about here https://stripe.com/docs/connect/standard-accounts). However, if you're trying to connect already existing Stripe accounts (and not creating them from scratch) then Oauth is the recommendation (since hosted onboarding requires you to create a new account). If you're working on connecting existing accounts I'd recommend you read these two links:

split mirage
#

I guess the reason I ask, is I saw the note: "Starting in June 2021, Platforms using OAuth with read_write scope won’t be able to connect to existing accounts."...so it seems like I won't be able to read/write to existing accounts?

#

I guess my goal is to connect to existing accounts, read/write data within those accounts - mainly "read". It seems like this is no longer possible.

dim hearth
split mirage
#

That seems like a bummer to only have one app be able to read/write on an account

bleak breach
split mirage
#

I mean...you guys are the pros at this...so I'm sure this change was well thought out. But I would think an Account owner might want to connect two trusted apps to write data. One app to write to an account seems like a huge limitation

#

I assume there's hundreds of apps out there in that list

bleak breach
#

The problem is that in that scenario we're one malicious platform away from a disaster. Say a malicious platform decides to have a look through your payments and delete/cancel all of the ones made via a rival platform. Restricting standard accounts to only one platform with read/write limits that vulnerability

split mirage
#

Probably shouldn't connect an app that does that πŸ™‚ Doesn't seem like a Stripe issue, but something related to a Stripe accountholder knowing who to trust and who not to trust

bleak breach
#

True, but it is up to us to try and limit the possibility of vulnerabilities like that as much as possible

split mirage
#

For sure...always good to have some oversight. Even having some sort of app/extension approval process would be rad and help get around this to some degree. This limitation could prevent you from using a storefront app and another app to help manage shipments. It is what it is...just seems like a huge limitation and removes the endless possibilities apps and extensions could bring

bleak breach
#

Well in that example the shipping app wouldn't necessarily require write access right? I agree it's a huge change but I can confirm that the decision wasn't taken lightly

split mirage
#

Sure - might not be the best example. but you might want to be able to update a customer's shipping address via the shipping app for convenience sake

#

That said...I'm connected via oauth and using something like this... Stripe::Product.list({limit: 100}, {stripe_account: account_id})
but it only seems to only pull a Product I created via the oauth connection...not only created in the Stripe Dashboard. am i crazy?

bleak breach
#

@split mirage This is standard connect right?

split mirage
#

Should be

bleak breach
#

I thought you would get all the products on a connected account, let me test this real quick

split mirage
#

I would think so too...but just showing 1 of 2...the one i made via API instead of Dashboard

upper bolt
#

Hello, I have a problem with my webhooks. I would like to retrieve the name of the product the customer is buying but I have an error:

Uncaught Stripe\Exception\UnexpectedValueException: Could not determine which URL to request: Stripe\Product instance has invalid ID

#

I don't understand because it works for customerid

split mirage
#

hey @bleak breach any luck?

bleak breach
split mirage
#

OAuth

bleak breach
upper bolt
#

Ok thank you

gritty spindle
#

Hi there. I have made a payment through stripe subscription with trial_end param. After being charged, the dashboard displays it as Invoice. Was it not Subscrition creation?

split mirage
calm jay
#

Hello. Is there anyway to reset the Connected App Setting. I enabled it in test mode and it took affect in both test and prod. I contacted support but after 2 hours they seem lost. I basically want to get the connected Apps tab back to the getting started page below.

#

I'm currently seeing this.

bleak breach
bleak breach
# gritty spindle Hi there. I have made a payment through stripe subscription with ```trial_end```...

This refers to the billing_reason on the invoice. Since the subscription was already created you wouldn't get subscription_create: https://stripe.com/docs/api/invoices/object?lang=php#invoice_object-billing_reason

bleak breach
calm jay
split mirage
bleak breach
split mirage
upper bolt
#

Hello again, sorry to bother you but I still can't get the subscription productid with the webhooks
I don't have an error code anymore, just the value of productid is null :/

bleak breach
#

$productid is almost certainly null. data is an array, so you'd need something like $subscription->items->data[0]->price->product. You should add logging to your code to debug this on your end

upper bolt
#

Thanks a lot, it works now, it was "[0]" that was missing πŸ˜„

sonic basalt
#

I was looking to get some assistance integrating Stripe/Plaid into a website, can anyone point me in the right direction?

pale aspen
#

Hi Guys,

I'm wondering if Stripe has somewhere I can view orders that were made by customers in the dashboard?

Looking at the documents it seems that there is an Order object that you can call to view orders and information about them including the customer, order items, order items quantity, order amount, shipping address and etc. which is here: https://stripe.com/docs/api/orders/object

That said, I'm unable to find this anywhere within the dashboard so I can't see approved orders after they are completed.

Any help is appreciated!

sage burrow
#

I need help with invoices

#

When the trial expires and the subscription is inactive I lock the customer. When they enter their credit card after choosing another plan I void all outstanding invoices in order to avoid being charged for the default subscription. However I am noticing that they are not charged for the new plan and no new invoice is generated for the new plan. Any suggestions?

bleak breach
bleak breach
sonic basalt
bleak breach
worldly python
sonic basalt
bleak breach
bleak breach
sage burrow
#

@bleak breach I made added the 2 settings. I am waiting for the account to be locked so that I can try. By the way, for testing purposes I am using a trial of 15 minutes and the code listening to the webhook locks the account when the subscription status changes. This happens usually after around 45 minutes after the trial expires. Is there a way to speed it up?

bleak breach
sage burrow
#

@vocal wagonl. Coorect!

bleak breach
#

What do you have in your subscription settings? Is it set up to cancel the subscription after 1 failed payment after the trial period is up?

sage burrow
#

@vocal wagonl, makes sense. I don't have access myself to the dashboard. Can I check that through the API?

bleak breach
sage burrow
#

@vocal wagonl If it is only one failed payment it should be faster right?

pale aspen
bleak breach
bleak breach
# pale aspen Thanks, I'll keep it in mind. I was hoping to view past orders by the customer ...

Are you using Checkout? If so you can get that information from the Checkout Session object: https://stripe.com/docs/api/checkout/sessions/object?lang=node#checkout_session_object-line_items-data

sage burrow
#

@bleak breach event "customer.subscription.updated" and when subscription->status == 'past_due' I lock them.

brittle ridge
#

Hello everyone!

My name is Layla and I just joined the community. I was following along with this tutorial - β€œAccept a payment - Create a PaymentIntent with Java” - trying to build a Payment Intent on the server using Java so that I can add Stripe to an ios application I am building but I am encountering an issue. The server starts just fine but when I go to test the payment intent endpoint with a curl command in the terminal I get no response. I would greatly appreciate help. I have included an attachment that summarizes the whole thing more clearly if anyone who can help wouldn’t mind taking a look. Thank you!

sage burrow
#

@bleak breach , I am still missing something. Now the customer was not charged the full amount.

#

Is there a way to have the invoice always generated without using proration?

bleak breach
bleak breach
brittle ridge
#

@bleak breach Correct, and I'm afraid I am quite new to making API requests so I am not sure how to take the messages and errors I am getting from my server logs

#

I keep receiving a message saying "RTCReportingBackend(newBackendWithName): release_timeout

winter pumice
#

In case of downgrade, how we can initiate refund for the difference amount immediately

bleak breach
winter pumice
gritty spindle
#

Hi. I have tried to have trial payment for subscription. It said:
Once the trial period is up, Stripe generates an invoice and sends an invoice.created event notification. Approximately an hour later, Stripe attempts to charge that invoice.
However, at the time trial ends, I only got customer.subscription.updated and the payment is scheduled to pay within an hour. Why didn't I get invoice created webhook event?

brittle ridge
#

@bleak breach I'll try that then. Thank you for the advice!

sharp stump
#

Hello, i need some help setting up "name" from selected billing address field into the billing address for order itself.

here is the image
currently the name which is written in "NAME ON CARD" field is getting set.

const paymentBtnClick = () => {
try {
let pr = stripe.paymentRequest({
country: stripeRequestData.country,
currency: stripeRequestData.currency.toLowerCase(),
total: {
label: get(stripeRequestData, 'total.label'),
amount: get(stripeRequestData, 'total.amount')
},
requestPayerName: true,
requestPayerEmail: true,
requestShipping: isShippingMethodAvailable ? true : false,
shippingOptions: [
// The first shipping option in this list appears as the default
// option in the browser payment interface.
]
});

winter pumice
#

@bleak breach I am using proration_behavior as create_proration and billing_cycle_anchor = Now

I am not able to track the difference amount also difference amount does not gets refunded to customer account.

bleak breach
sharp stump
bleak breach
#

You'd look under ev.paymentMethod.billing_details

bleak breach
winter pumice
bleak breach
sharp stump
bleak breach
sharp stump
#

See this image.
i have set "TEST PLACE" as name in billing address

#

But in ev.paymentMethod.billing_details

I am getting different name (i.e name from "NAME ON CARD FIELD")
I hope it makes sense

bleak breach
#

What do you get when you log console.log(ev.paymentMethod)?

#

I'm afraid I still don't understand your question. Those screenshots both have the same name?

sharp stump
#

The name should be "Test Place" in ev.paymentMethod.billing_address.email

#

{
"id": "pm_1JCeedDsrXo4utiohp5lEwTa",
"object": "payment_method",
"billing_details": {
"address": {
"city": "Musselburgh",
"country": "GB",
"line1": "72 Albert Place Musselburgh",
"line2": "Scotland",
"postal_code": "EH21 8LE",
"state": ""
},
"email": "sudhir@dollskill.com",
"name": "Jinit Tiwari", /// This should be "TEST PLACE"
"phone": null
},
"card": {
"brand": "visa",
"checks": {
"address_line1_check": null,
"address_postal_code_check": null,
"cvc_check": null
},
"country": "US",
"exp_month": 12,
"exp_year": 2024,
"funding": "credit",
"generated_from": null,
"last4": "1111",
"networks": {
"available": [
"visa"
],
"preferred": null
},
"three_d_secure_usage": {
"supported": true
},
"wallet": null
},
"created": 1626155979,
"customer": null,
"livemode": false,
"type": "card"
}

bleak breach
#

Billing details are the details associated with the card in question

sharp stump
#

Let me make it more easier to understand.
Please have a look at these images

#

See "Billing address" field on gpay popup
Where "Test place" is added as customer name.
& "Jinit Tiwari" as in name on card,

#

On logging "ev.paymentMethod.billing_details" i get "Jinit Tiwari" inn billing details not "TEST PLACE"

#

I need to get & set "Test place" (i.e customer name from billing address field into billing address object)

#

@bleak breach

#

Awaiting response sir

tight parcel
#

Hi guys!

I’m trying to implement the Customer Portal in my app but for some reason I’m getting the following error:

The view customer_portal didn't return an HttpResponse object. It returned None instead

This is how I’m β€œtranslating” from Flask to Django, based on the example in the docs (https://stripe.com/docs/billing/subscriptions/integrating-customer-portal).

Flask
@app.route('/create-customer-portal-session', methods=['POST'])
def customer_portal():

Authenticate your user.

session = stripe.billing_portal.Session.create(
customer='{{ CUSTOMER_ID }}',
return_url='https://example.com/account',
)
return redirect(session.url)

Django
def customer_portal(request):
customer = get_stripe_customer(request.user)
if request.method == 'POST':
session = stripe.billing_portal.Session.create(
customer=customer.id,
return_url='https://localhost:8000/account',
)
return redirect(session.url)

Also added on urls.py
path('create-customer-portal-session', customer_portal),

Am I missing something? Thanks in advance!

bleak breach
#

@sharp stump I see what you mean but that doesn't appear to be possible. The values returned via the Payment Request API are the cardholder name rather than the value entered via the billing address field

bleak breach
sharp stump
#

@bleak breach Thanks for the revert.
oh i see, is their any documentation available where its mentioned that "The values returned via the Payment Request API are the cardholder name rather than the value entered via the billing address field" ?

I would share that to my manager, that will help.

tight parcel
bleak breach
bleak breach
tight parcel
sharp stump
#

@bleak breach okay, could you please share link or code referencing that the values returned via the Payment Request API are the cardholder name ?
That will definitely help

bleak breach
#

@sharp stump That also doesn't exist. It appears to be a quirk of the Payment Request API implementation in Chrome, where the name returned is the one provided in the contact info of the modal popup. The cardholder name is returned as the billing details name, whereas the name included in the billing address field in the modal is omitted

sharp stump
#

ok thanks for the info @bleak breach
i appreciate

vocal wagon
#

Morning!

boreal jolt
#

Hey all, just wondering if permissions have changed for the stripe dashboard? we're finding that read only users are no longer able to see metadata or receipts on the dashboard

vocal wagon
#

Anybody?

#

Hi ! Anyone would know if if it is possible to receive the full details of an external account (express connected account)? Thanks

river star
#

Hey,
I need some help with Google Pay feature for Stripe Connected Accounts...

"No such PaymentMethod: 'pm_1******************'; OAuth key or Stripe-Account header was used but API request was provided with a platform-owned payment method ID. Please ensure that the provided payment method matches the specified account."

Please let me know if someone can help me with this.

north ether
#

Hi team, Is there any way to get "re_" Id from "pyr_1JCgHtRUqffHcTNcYfFw676o" Id using REST API expand[] attribute?

earnest sundial
#

Hello, I have a payment problem not captured ... can someone help me?

drifting hatch
#

Hello all !
I use subscriptions, and I would like to allow customers to change their payementMethod (change their card number), but without paying something, just to save the new card number.
How does this work if there is a 3DS authentication ? How the new card must be verified without paying anything ?

crimson needle
vocal wagon
#

@crimson needle Morning!

#

We try to split the transaction to our connected acccounts

#

However everytime we get this message

#

Insufficient funds in Stripe account. You can use the /v1/balance endpoint to view your Stripe balance (for more details, see stripe.com/docs/api#balance).

#

I saw this

#

The issue is that is asking for SourceTransaction = "{CHARGE_ID}"'

crimson needle
#

@river star If you are creating a direct charge on a Standard account, you need to make sure you create the PaymentMethod on the connected account first

vocal wagon
#

In a stage the charge id still didnt create

#

The intent stage

crimson needle
#

@north ether it's not possible to link the pyr_123 and the re_123 directly today unfortunately beyond matching them on amount + created

#

@earnest sundial what's your issue?

#

@drifting hatch we recommend using SetupIntents for this, that way you collect card details and set it up through 3D Secure for future payments!

#

@vocal wagon The charge has to exist if you want to transfer funds after the payment. If it doesn't exist then there's no funds to transfer

vocal wagon
#

Thanks! Tried it. But when I'm trying to do it after the charge it gives me this message

#

No such charge: 'pi_1JCgNFFZIw.....

#

Because this charge not connected to the connected account

crimson needle
#

all of that is expected, we want a charge id ch_123 and you pass a payment intent id pi_123

river star
#

@crimson needle I'm tried creating a payment method and parse that ID to payment intent options. and payment intent's client secret to the client. Then there is a error "No such payment_intent: 'pi_***************************'"

Do I need to create a direct charge for Payment Intent?

crimson needle
#

@vocal wagon you want to pass what is in charges.data[0].id which is the ch_123 for the successful charge associated with a successful PaymentIntent

vocal wagon
#

Cool!

#

Thanks so much!

crimson needle
#

sure thing!

vocal wagon
#

What is the ch_ thing

#

Didn't realised it before

crimson needle
#

it's the Charge id

vocal wagon
#

So what is the PI?

crimson needle
#

the PaymentIntent is the state machine to accept a payment, with different stages. The Charge is the record of the payment attempt

vocal wagon
#

Gotcha

#

Thanks so much

noble sonnet
#

Hi I would like to ask about setup_future_usage params. Am I using it properly with Javascript SDK:

await stripe.confirmCardPayment(
paymentIntentId,
{
payment_method: ev.paymentMethod.id,
setup_future_usage: "on_session",
},
{ handleActions: false }
)

#

I am getting null in the request body if i check my stripe dashboard

crimson needle
#

@noble sonnet do you have an example payment intent id or request I can look at?

noble sonnet
#

pi_1JCghVF5utpDAv9TXnQF94pP

#

Also is it correct to assume that if I passed that to setup_future_usage on_session, Stripe will auto create the Payment Method under Customer Page in Dashboard?

crimson needle
#

yes that last bit is correct. And I can confirm the code you shared does not work, looking into why

drifting hatch
#

@crimson needle the SetupIntent seems to works differently from Subscription. Are both meant to work together ? Or is there an other way to update the card (if expires) when using subscriptions ?

noble sonnet
crimson needle
#

@drifting hatch they don't really work differently, they are separate APIs and they can work together yes

#

@noble sonnet yeah that's incorrect. Give me a few minutes to test something and I'll be back

noble sonnet
#

sure @crimson needle will wait for it thanks

crimson needle
#

@noble sonnet Okay I confirmed the code works for me. My guess is that you aren't running the code you think you are running. The example you gave is passng an existing payment method id (pm_123) but the PI you shared didn't do that, it used Elements to collect card details and directly confirm the PI with Elements, without an existing pm_123.
So the code you shared would work fine but it is not the code you are using/running

vocal wagon
#

Hello Stripe Team !

#

I have a strange behavior during attachment of a stripe customer to a payment method

#

I received that:

#

{
'error': {
'code': 'authentication_required',
'decline_code': 'authentication_required',
'doc_url': 'https://stripe.com/docs/error-codes/authentication-required',
'message': 'card_error_authentication_required',
'param': '',
'type': 'card_error'
},
'message': 'card_error_authentication_required',
'decline_code': 'authentication_required'
}

#

Can you help me ?

crimson needle
#

@vocal wagon that means you need to go through 3D Secure to attach that card, so you'd ned to use SetupIntent

vocal wagon
#

?

noble sonnet
#

@crimson needle I am not too sure if I understand

The example you gave is passng an existing payment method id (pm_123) but the PI you shared didn't do that, it used Elements to collect card details and directly confirm the PI with Elements, without an existing pm_123.

So what should I do instead?

vocal wagon
#

to attach a pm to a customer, I need to do 3DS ??

river star
#

@crimson needle Yeah, those are Standard Accounts... Thanks for the doc. But when I use the below code, the same error occurs...

RequestOptions requestOptions = new RequestOptions();
requestOptions.StripeAccount = stripeAccountId;
PaymentIntentCreateOptions options = new PaymentIntentCreateOptions
{
Amount = 1000,
Currency = "GBP",
PaymentMethod = evPaymentMethodId,
PaymentMethodTypes = new List<string>() { "card" },
ApplicationFeeAmount = 123
};

        PaymentIntentService service = new PaymentIntentService();
        PaymentIntent paymentIntent = service.Create(options, requestOptions);

        return paymentIntent;
noble sonnet
#

@crimson needle ok i think i got it

#

I will try again

crimson needle
vocal wagon
#

It's a non sens, I got the pm from the front, I sent it to the back, then I do the pi, but to do the pi (with 3DS) I need to attach the pm to the cus

river star
#

@crimson needle When I add payment Id the error is "No such PaymentMethod: 'pm_1**'; OAuth key or Stripe-Account header was used but API request was provided with a platform-owned payment method ID. Please ensure that the provided payment method matches the specified account."

When I remove the payment Id for creating payment intent, then the error is "No such payment_intent: 'pi_****************'"

crimson needle
#

@vocal wagon no it's not nonsense at all. It works this way, many banks in Europe are extremely strict and require 3D Secure to set up the card for future payments, this has been true for over a year now.
the doc I shared explains exactly how to securely collect card details and attach it to a customer while doing 3D Secure if needed via the SetupIntents API

vocal wagon
#

why a 3DS during cus attachment ?! I ask for the 3DS during the pi

crimson needle
#

@vocal wagon if you are doing a PaymentIntent, there's no reason to first create a PM and then attach it to the customer. Those are extra steps you shouldn't do

#

@river star all of that is expected. There are multiple separate steps, and you missed one I think. It's a bit hard to say because there are many ways to integrate and you don't seem to use the most common ones and I can't see your exact code right now

The proper integration path for PaymentIntent is
1/ Create a PaymentIntent server-side on the connected account
2/ Return the client-secret client-side
3/ Initialize Stripe.js with the right connected account info as documented in https://stripe.com/docs/connect/authentication#adding-the-connected-account-id-to-a-client-side-application
4/ Confirm the PaymentIntent client-side.

noble sonnet
#

@crimson needle btw I am using the Card Element using Stripe React. I managed to get the setup_future_usage working and wondering whether I can pre-populate the CardElement with a customer's current Payment Method. Is this possible?

crimson needle
vocal wagon
#

@crimson needle the reason of the pm it's to hide cb code/cvc

crimson needle
#

@noble sonnet no that is not possible. If you want to use an existing/attached PaymentMethod you would display the information such as last 4 or brand or exp date and ask them if they want to use that existing card.

#

@vocal wagon I don't know what that could mean I'm sorry. That's just not how you should integrate since it's more API requests, it's slower and it can lead to the error you just encountered

vocal wagon
#

@crimson needle setup intent cannot be used, it generates very disturbing 3DS at 0€

noble sonnet
#

Okay and is there a Stripe React Element for that to display that information?

crimson needle
#

@vocal wagon ignore SetupIntents, that was before you said you were accepting a payment.

#

@noble sonnet nope, no UI element for this today

noble sonnet
#

"you would display the information such as last 4 or brand or exp date and ask them if they want to use that existing card."

Lets say I create on my own and managed to display a UI with the last four digit and they opted to use that card, how do I tell CardElement to use that specific PaymentMethod? @crimson needle

vocal wagon
tiny cape
#

How do i get emails when customer payments are declined?

crimson needle
#

@noble sonnet you don't, there's no card element at all in this world. You would call the code you shared earlier where you explicitly pass the existing PaymentMethod id instead await stripe.confirmCardPayment( paymentIntentId, { payment_method: 'pm_existing', } )

noble sonnet
#

@crimson needle interesting so I just pass 'pm_existing' value, i will try this one

crimson needle
#

@vocal wagon sorry we're talking a bit past each other and I don't know anything about your integration. But it's what I told @river star earlier, the normal flow for accepting a payment is
1/ Create a PaymentIntent server-side. Pass setup_future_usage: 'off_session' if you want to save the card for future payments
2/ Return the client-secret client-side
3/ Confirm the PaymentIntent client-side.

There is no reason to create a PaymentMethod upfront or attach it yourself

noble sonnet
#

thanks

vocal wagon
#

Bonjour, puis je parler Γ  un dΓ©veloppeur franΓ§ais s'il vous plait ?

crimson needle
#

@tiny cape that's not something we offer today, so you'd have to use a third-party like Zapier maybe or build this as your own integration

#

@vocal wagon we don't really offer support other than English here usually. I speak French though! Quelle est votre question?

vocal wagon
#

Bonjour, super je vous remercie. Je sui sen contact avec klarna pour offrir une solution de paiement en plusieurs fois sur mon site internet. Ils viennent de me dire que vous Γͺtes en partenariat et que je dois me tourner vers vous , afin d'effectuer les dΓ©marches nΓ©cessaires, et l'intΓ©gration de ce mode de paiement sur ma plate forme internet.

vocal wagon
#

webador

digital mortar
#

I paid for a service and he gave me an error he took my money but it turns out to be unpaid

vocal wagon
#

je travaille deja avec vous concernant les paiements de commandes

digital mortar
crimson needle
#

@vocal wagon En effet. Mais Discord est une communautΓ© pour dΓ©velopeurs qui Γ©crivent leur code complet eux memes. Est-ce votre cas ou utilisez vous une plateforme tierce?

candid vine
#

Hello

cerulean pineBOT
#

:question: @digital mortar 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

candid vine
#

Can anyone confirm if Stripe allows recurring payments in the UAE?

meager oasis
#

@crimson needle J'en avait aucun idΓ©e que vous parlez FranΓ§ais

vocal wagon
#

C'est à dire ? Je pense que c'est à vous de faire l'intégration sur ma plate forme d'après klarna

meager oasis
crimson needle
#

@meager oasis I got it

meager oasis
#

ah ok

vocal wagon
#

Non, je ne pense pas c'est un site ou les modules sont dΓ©jΓ  prΓͺt

crimson needle
#

@vocal wagon non ce n'est pas vraiment comme cela que ca marche. Oui nous offrons la possibilitΓ© d'accepter des paiements avec Klarna, mais il vous faut soit intΓ©grer notre produit vous-mΓͺme, soit utilisez un produit tiers.
Vous semblez utiliser un plugin/module deja et donc il faudrait plutot vous tourner vers les developeurs de ce produit. J'imagine que vous utilisez quelque chose du type Prestashop or Wordpress ou Γ©quivalent?

vocal wagon
#

exactement

crimson needle
#

@candid vine yes we do

vocal wagon
#
  1. Front gets the stripe public key from the Back
  2. Front creates the PM with the stripe key
  3. Front sends to the Back the PM
  4. Back creates a CUS if needed, attach the PM to the CUS
  5. Back creates the PI whith PM/CUS and setup_future_usage=off_session, off_session=True, payment_method_options={"card": {"request_three_d_secure": "any"}}, confirm=True
  6. Back sends the client_secret to the front if requires_action
  7. Front calls confirmCardPayment(client_secret)
crimson needle
#

@vocal wagon dans ce cas, nous ne pouvons vous aider ici malheureusement car cette communaute est pour les developeurs qui ecrivent leur integration eux-mΓͺmes en gΓ©nΓ©ral. Il faut vous tourner vers la sociΓ©tΓ© qui dΓ©velope votre site internet

vocal wagon
#

merci

crimson needle
#

@vocal wagon yep, this is mostly the wrong way to integrate and causes the error you encountered when you first asked your question. So you need to change your integration and use the path I described instead. It's way faster/easier and less steps overall too

vocal wagon
#

C'est l'intΓ©gration qu'un mec du support m'a dit de faire

#

...

fossil crystal
hollow prairie
#

@fossil crystal Nice!

crimson needle
#

@vocal wagon I'm just answering your question here about how to fix your problem and how to integrate properly. There are many ways to integrate and it also depends on the information you share. Earlier you said you attach PMs to a customer without more context so my default recommendation was to use SetupIntents.

Ultimately, what I described is the right flow and it's also the one documented in our main doc page: https://stripe.com/docs/payments/accept-a-payment

#

@vocal wagon de rien, bonne chance avec votre dΓ©veloppeur!

vocal wagon
#

@crimson needle I do not use checkout

candid vine
crimson needle
#

@vocal wagon sure and you don't have to use Checkout. There's a selection at the top

noble sonnet
#

Hi @crimson needle I tried using

void stripe
.confirmCardPayment(paymentIntentId, {
payment_method: "pm_existing",
})

and I got this error:

No such PaymentMethod: 'pm_existing'

Is it correct that I pass the string pm_existing or i should pass smth else

crimson needle
#

@noble sonnet sorry pm_existing is just a placeholder/example. You would pass the real existing PM id that you get back from your own server for that specific customer

noble sonnet
#

okay got it

vocal wagon
#
  1. Back creates a CUS if needed
  2. Back creates the PI with CUS and setup_future_usage=off_session, off_session=True, payment_method_options={"card": {"request_three_d_secure": "any"}}, confirm=True
  3. Back sends the client_secret to the Front
  4. Front call:
    stripe.confirmCardPayment(clientSecret, {
    payment_method: {
    card: card
    }
#

@crimson needle it's that right ?

#

How to reuse the PM if the Back doesn't have it ?

crimson needle
#

@vocal wagon that's right. And after step 4, if it succeeds, then the new PaymentMethod is now attached to the Customer automatically

vocal wagon
#

it's a nightmare to integrate

#

a simple question, why attach a PM to customer create a 3DS ?

crimson needle
#

@vocal wagon I replied already twice though. You don't want it to work that way, neither do I, but that's not what banks decided. It's not all banks, but some block all attempts to use/validate a card until 3DS happens

#

If you integrate the right way, it's a lot easier with a lot less steps and it just works. I know it's not how you built your integration and it can be frustrating to have to change things, but doing so, and following our canonical docs will help you ensure you have the right set up and that this issue can't happen

vocal wagon
#

Don't create API if we can't use it !

crimson needle
#

You can use it, you understood how it works, you just did the steps in the wrong order and it causes that one issue that you now know how to fix

vocal wagon
#

Hi,
Since today, when I'm trying to uplad a file trough the api (/v1/file), I got : Access to fetch at 'https://uploads.stripe.com/v1/files' from origin 'https://www.tudigo.co' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

however, i did not change anything in the code.
There is any reason that the api is blocking my request on this specific route ?

crimson needle
#

@vocal wagon hmmm do you have an easy way to reproduce? The majority of devs upload files from their servers with our client libraries, but you seem to be doing it client-side

#

(it works client-side, I'd just like to see if I can easily reproduce)

vocal wagon
#

I'm upset, I work for one of the biggest french company using stripe and it's the support I have. "You don't do the right way, do that way, I don't care about your integration" !

vocal wagon
# crimson needle <@456226577798135808> hmmm do you have an easy way to reproduce? The majority of...

function uploadDocument(concernedBlobImage){ if(!concernedBlobImage){ return null; } var data = new FormData(); data.append("file", concernedBlobImage); data.append('purpose', 'identity_document'); return fetch('https://uploads.stripe.com/v1/files', { method: 'POST', headers: {'Authorization': "Bearer " + stripePublicKey}, body: data, }) .then(function success(response){return response.json();}) .then(function(json){ if(typeof json.error !== "undefined"){ throw new Error(json.error.message) } if(typeof json.id === "undefined"){ throw new Error("cant get token for uploadDocument") } return json.id; }); }

yeap, I'm working client side and this is the method that throw an error
When i'm doing a try-catch around it, i just got "fetch failed"

#

this is not at all professional!

crimson needle
#

@vocal wagon where did I say I don't care about your integration? I'm just explaining how to fix/approach this better so that it works. I understand it's frustrating to have to do that part of the rewrite but unfortunately with SCA some banks are becoming stricter and stricter over time with the rules

#

@vocal wagon thanks, looking!

vocal wagon
#

It's the 3th time I have to rewrite the stripe integration, 1 card/source, 2 setup intent with crazy 0€ 3DS, 3 now that !

crimson needle
#

@vocal wagon I understand but rules and regulations evolve over time. We couldn't have planned SCA when we designed card/source APIs.

vocal wagon
#

Rewrite your api to be compliant to the previous ones

crimson needle
#

that doesn' make sense. Whatever we would have done on Card or Source would still have involved changes on your end

#

If you don't want to rewrite anything you can disable card validation on PaymentMethod attachment entirely. It's not what I would recommend, but it'd unblock you. But 20 minutes ago you said support didn't give you the right advice, so I'm focusing on giving you the right/correct advice to integrate our product

torn stratus
#

Hi community! I'm trying to test a SEPA refund, it there a webhook event that I can listen to in order to know when a refund is 'succeeded'?

crimson needle
#

@torn stratus refunds are assumed to succeed by default, we send an event only if it fails

drifting hatch
#

@crimson needle Sais-tu oΓΉ je peux trouver une doc expliquant comment intΓ©grer un SetupIntent avec une Subscription ? Dans cette doc https://stripe.com/docs/payments/save-and-reuse ils expliquent comment lancer la facturation manuellement, mais dans le cas d'une Subscription, j'aimerais que Γ§a se fasse automatiquement en prenant le nouveau PaymentMethod.
C'est possible ?

vocal wagon
#

it costs me arround 40k€/month !

crimson needle
#

@vocal wagon so on card attachment when you call https://stripe.com/docs/api/payment_methods/attach you can pass the undocumented parameter validate: false to skip card validation with the bank which would avoid the authentication requirement for 3DS (which would then happen after at the next step)
But still you pass off_session: true which means you are bypassing 3DS most of the time and not protecting your business. If you are a large user like you said this is really not what you shold be doing or what should have been advised to you

vocal wagon
#

Give me my answer, why I have a 3DS error when I attach my PM to the csustomer ?.

crimson needle
#

wow

#

I answered you 3 times already

#

You attach a card, we talk to the bank to make sure it's valid by running a $0 authorization, and the bank says yes or no. Here the bank says "I won't tell you anything until you do 3D Secure"

#

most banks don't do that but some do, especially in the Nordics.

#

Others fwiw will simply say "nope" instead and make you think the card is bad, when it just needs 3DS

vocal wagon
#

"You attach a card, we talk to the bank to make sure it's valid by running a $0 authorization" : for what purpose ?

meager hawk
crimson needle
#

(and we lose the CVC after 10 minutes for PCI reasons, so it'd never be verified)

#

It's always worked like this even on the Card and Source APIs

river star
#

@crimson needle Thanks for your steps.
But stripe is creating payment_method from client-side with connected account for "Payment Request Button" (Google Pay). I parsed it to the server-side's payment intent creation.
Clone payment method using "PaymentMethodService" with client-side payment method ID.
Then parse created Payment Intent to client-side for confirmCardPayment.

meager hawk
#

but if you're cloning the PaymentMethod things can get complicated. Usually what you want to do is initialise stripe.js twice.

#

e.g.

var stripePlatform= Stripe(key);
var stripeConnectedAccount = Stripe(key, {stripeAccount:"acct_xxx"}); 
...
stripePlatform.createPaymentMethod(...)
// clone the PM on the backend server and create PaymentIntent on connected account 
stripeConnectedAccount.confirmCardPayment(...)
vocal wagon
meager hawk
#

@vocal wagon we're currently actively looking into this as I believe uploads.stripe.com should work

hidden ridge
#

Hello, so we have implemented Stripe into our android app and we use it to do payments to order taxi rides, but there seems to be a difference in how the adk handles the payments in the test environment and the live environment. example: if in test i start an iDeal payment the Stripe sdk will open up a browser window with a button to authorise or fail the payment, if i authorise the payment an intent is thrown and caught by my app and then the stripe sdk goes into the handle payment flow this is all correct.
but in the live environment when i start the iDeal payment the sdk will open up the browser window let me select my bank i complete the payment but then there will be no data send back to my app so the app will never go into the payment handle flow because there is no data to handle. could you perhaps help me with figuring out what is going wrong in the live environment? Thanks a bunch

river star
#

@crimson needle The client-side has the connected account ID. Therefore client-side only initilaize stripe.js once with that connected account ID.

This is the request ID = req_sB1pbcyWWUvlM4

meager hawk
#

@hidden ridge hi! It should be the same hopefully, the user should get directed back to the app but unfortunately it really depends. Like if the customer is sent to another app on their phone like their bank's app, it's not entirely guaranteed that the bank's app is clever enough to create an Intent to open your app.

crimson needle
#

@river star that request was made on the platform account and not the connected account. You didn't initialize Stripe.js properly on the connected account

meager hawk
#

@hidden ridge just to clarify, do you pass a returnUrl? (our docs are not very clear on this unfortunately) e.g.

val confirmParams = ConfirmPaymentIntentParams
                    .createWithPaymentMethodCreateParams(paymentMethodCreateParams, paymentIntentClientSecret, returnUrl = "myapp://ideal-complete")
            
            stripe.confirmPayment(this, confirmParams)
hidden ridge
# meager hawk <@!856775002690813952> just to clarify, do you pass a returnUrl? (our docs are n...

Hi. hmm yes for the ideal payments we do pass a return url in that function πŸ˜… . the problem in live is that the user selects their bank and they open their bank app and complete the payment then the bank app closes and they come back in the webview the sdk has opened and that webview should redirect to the return url which throws the intent right? but that does not happen the webview just closes and my app does not receive any data in the onactivityresult function

meager hawk
#

If the webview is closing then it means the return URL was hit so I can't imagine why that wouldn't result in your onActivityResult getting called, that's how the SDK should work(when it sees the return url getting visited it closes the webview and invokes onActivityResult )

#

unfortunately I don't have any way to test this myself with a real iDEAL setup and it works fine in test mode, if you're still seeing issues with this I would write to https://support.stripe.com/email with the full exact code of your Activity, what version of stripe-android you're using, a PaymentIntent ID pi_xxx of a livemode attempt, and other context like screenshots/screen recordings of the flow you're seeing so that we can dig into it.

crimson needle
hidden ridge
regal orchid
#

Hey guys, can the webhook send data even if I'm hosting locally?

meager hawk
regal orchid
#

Gotcha. Thanks

loud fable
#

Heya! πŸ™‚

meager hawk
#

hello there

loud fable
#

needing some help with a issue i'm getting on the stripe dashboard

meager hawk
#

@loud fable do you have the evt_xxx event ID where this happened?

loud fable
#

@meager hawk yip

#

@meager hawk happy for me to send it here or can I send it privately?

#

Or rather, point me in the direction I need to look? πŸ™‚

meager hawk
#

you can just paste it here

loud fable
#

evt_1JBIpQJKeVa5XhCE7Znno0pE

meager hawk
loud fable
#

nice!

meager hawk
#

To resolve this, I recommend visiting the issuer you bought the certificate from and re-installing your SSL certificate, including any 'bundle' file that comes with it. If you're having trouble with this, or have questions, I'd suggest sharing your SSL Labs results with your issuer, they can guide you in locating any intermediary certificates and resolving this.

loud fable
#

thanks @meager hawk

meager hawk
#

usually this comes from not installing the 'bundle' of intermediate certificates

#

browsers usually don't check this, but our servers that send the webhooks strictly check the full certificate chain

loud fable
#

awesome, thanks for that πŸ™‚

#

@meager hawk can you check one last event for me please

#

evt_1JCPopJKeVa5XhCE7aD85Luw

#

never mind πŸ™‚ same issue

#

thanks for your help!

vocal wagon
#

Hello there, I'm facing with this issue when launching my app on IE 11? Are you guys still supporting this browser?

SCRIPT5009: 'Promise' is undefined
stripe.js (112,1)

@stripe/stripe-js: ^1.11.0
Browser: IE 11
Node: v10.4.1
Thanks.

meager hawk
#

are you that sure the error comes from stripe.js and not some of your own code? (what is at stripe.js (112,1) ?)

#

ah, well, hmm, I suppose that is our script, but hard to say, I'd have to spin up a virtual machine

vocal wagon
#

@meager hawk here

winter moat
#

Hi there πŸ™‚

#

I have a question today about the ConnectedAccount "Lifetime total volume".
I want to get acces to this information with the API.
Do you think there is a way to retreive this amount ?

vocal wagon
#

It works fine when I remove @stripe/stripe-js so I guess

meager hawk
#

@winter moat hi! there's no direct way no

vocal wagon
#

Ahhh, maybe I should drop that browser from now on?

meager hawk
#

you'd need to calculate this by looking at all payments/transfers for the account and computing it

#

@vocal wagon that's your choice really in terms of what you expect the impact on potential customers is versus development effort

winter moat
#

ok thanks @meager hawk ! this will be a long way but I will try to do that then πŸ˜‰

vocal wagon
#

Ok. I will switch to stripe-js from now to see.

#

@meager hawk Thank you thankyou thankyou thankyou

rustic sand
#

Is possible to add Header data?

meager hawk
#

@rustic sand can you elaborate on that a little bit?

rustic sand
#

sure.. I am doing PayOuts via Stripe. here I used Dotnet Application with Stripe Dotnet packages. Here I need to add "Stripe_Account" in to Header data

meager hawk
#

but through the API there's no direct field for what you see in the dashboard as "lifetime total volume", it's a dashboard-only figure that's computed I believe

#

it shows how to use that header with all our libraries including stripe-dotnet

rustic sand
#

Thanks let me try

winter moat
#

I have currently 74,000 connected accounts... and a lot that will never be used.
So I need to clean a bit my account.

#

@meager hawk would you get any advises for me ?

meager hawk
#

@winter moat you can get reports from calling the API yes, the links there cover this. For your use case if it's a one off you might find it easier to just go to https://dashboard.stripe.com/test/connect/accounts/overview and sort by that column and manually take note of the accounts you want to delete then run a script to delete them

#

oh you said you have 74000

vocal wagon
#

Hi, when upgrading or downgrading plan with different interval. How to start the new plan after end of current billing cycle?

meager hawk
regal orchid
#

Hello! Will exposing the evt_xxxx ID of a payment bring any security risks or can only I and the buyer do anything with it even if it's exposed?

#

I'm not sure which one to store and show the user, ch_xxx, evt_xxx or txn_xxx

hollow prairie
#

@regal orchid Hey! They're all generally safe to share as any sensitive data will be limited to access with your secret key.

#

@regal orchid What is it you're building to show your user?

regal orchid
#

Thanks for the quick response. I'm making a section where users can view their previous payments, and they can see all info about the payments they made.

hollow prairie
#

@regal orchid I guess this depends on your integration, but I'd assume the PaymentIntent (pi_xxx) or Charge (ch_xxx) would be most relevant

regal orchid
#

Yeah well I'll actually use one of the IDs too, when a webhook gets sent, activate the user's product that they purchased. So after the webhook gets sent, I check in the database who the user is and what they purchased using one of those IDs

#

I think I'll use pi_xxx because it comes when a new session gets made.

hollow prairie
regal orchid
#

Right, but when the payment status becomes successful/paid the webhook that gets sent includes the same PI but with status 'succeeded' doesn't it?

hollow prairie
#

@regal orchid Correct, just wasn't sure if you were using the list endpoint for all PIs assuming they were successful payments πŸ™‚

regal orchid
#

Ah no, I store it in the database and set the status as pending. When the webhook gets sent with the status 'succeeded' I then change the status to paid in my database :))

hollow prairie
regal orchid
#

Yup, I was sending that as a test event from the Stripe CLI

#

Thanks for the help btw :)

hollow prairie
#

@regal orchid Np!

spiral rose
#

Hey, I have a simple solution: is that possible to receive payments on our website & directly payout to our users & pay one-time stripe fee?

river star
#

@crimson needle Thank you so much... There was an issue with initilization of Stripe with connected ID... πŸ™‚

hollow prairie
spiral rose
#

@hollow prairie I have seen that. Do we have any SDK in PHP or laravel package for this?

winter moat
#

@meager hawk thanks for youR detailed answer.
I will give it a try now with a API report in CSV then process the results

hollow prairie
toxic lily
#

Hey lovely people! Question: can I send a receipt using the receipt_email parameter to 5 people at the same time with just one API call? And if is possible, should I use 5 times the same parameter or should I create a nested list inside the parameter? I was taking a look at the web resources and this parameter doesn't seem to accept more than two values, but using 5 times the same parameter on a API call sounds weird too

spiral rose
#

@hollow prairie thanks I already reviewed both & fully aware of that. Just want to have an example that works with OAuth instead of creating accounts with Stripe Connect

hollow prairie
#

@spiral rose Your users will need to onboard and be verified with Stripe in order for them to process payments/payout

#

@toxic lily Hey! The receipt_email parameter can only accept a single email I'm afraid. There's no way to pass multiple addresses currently

toxic lily
#

I thought it could be emulated with the API too, since the Dashboard has this "multi recipient" receipt option

#

But it must be manually done

hollow prairie
#

@toxic lily Yep, that's a Dashboard only feature right now

toxic lily
#

That's unusual

#

Hehe. Thank you for your response <3 :)

hollow prairie
#

@toxic lily Np!

daring lodge
#

Howdy folks

timid plume
#

Hi, I launched my store with bigcartel and I connected my stripe account to it but my customers can't buy my items. I think it s due to the time limit for the verification of my identity but how many time it will spend ? (sorry for my english i hope you understand my problem)

sand tusk
#

I'm trying to test the Stripe Terminal w/ Connect in test mode and am missing something about how it's supposed to be setup. I've got the connected user ("Anonymous (a test-only account)") logged in but am unclear how to enable Terminal ("Only account administrators can able this feature")

cerulean pineBOT
#

:question: @timid plume 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

daring lodge
#

@sand tusk hello! what exactly are you trying to do? as in, where do you encounter that?

sand tusk
#

I'm trying to test the full Connect setup flow w/ Terminal in test mode (all the way through a purchase transaction).

daring lodge
#

@sand tusk The connected account is a full standard stripe acccount with dashboard access? ie, not a custom/express account? If so, AFAIK the account holder would need to enable this themselves when logged in. Have you tried the terminal integration flow already?

sand tusk
# daring lodge <@837064758452027464> The connected account is a full standard stripe acccount w...

I apologize but I'm coming into this project at a late stage. I don't know the answer to the first question but I'm going through the oAuth flow with an account that is attached to the primary account and then I'm clicking the "Skip this form" button so I don't believe there are any credentials created. I'm not sure what is meant by the terminal integration flow. The terminal has been added to a different (non connect) account and processed a transaction but I'm trying to test in test mode the full connect process. I'll see if I can find more answers.

daring lodge
#

@sand tusk gotcha. Can you provide the account id of one of these connected accounts you're using?

sand tusk
daring lodge
# sand tusk Here's one: acct_1JClhgEDcMJyyzfD

Thanks - yea this is a standard account. Your platform does have controls for it for payouts etc, though: https://stripe.com/docs/connect/platform-controls-for-standard-accounts
You should try to work through the steps of the actual integration to use the reader with the connected account and conduct a payment etc. I don't believe you should need to do anything special to get that working in test mode.

sand tusk
daring lodge
sand tusk
#

Ok I was thinking I could use the dashboard to setup a location and attach a Terminal

daring lodge
sand tusk
#

the Stripe dashboard

daring lodge
#

@sand tusk That wouldn't be how you manage this for a set of connected accounts, no

sand tusk
#

Ok clearly need to read the docs then. I was hoping to test but that will have to wait. Thank you.

vocal bison
#

How can I update a buisiness logo / icon through API?

I have read the docs on File and Account, and tried to update the account with a new file etc; however I receive the error 'This application is not authorized to edit this account.' - even though it has been connected

#
        Stripe_Account::update($account->id, [
                        'settings' => [
                            'branding' => [
                                'icon' => $file_id
                            ]
                        ]
                    ],
                    [ 'stripe_account' => $school->stripe_connect_id ]
                );

This is how I am updating it

vocal wagon
#

Hello everybody,

I am trying to retrieve the list of payouts from a connected account with API.
I have access to all report when i use chrome with "Connect as" dashboard.

And now i try with to get it with API,
I try \Stripe\Reporting\ReportRun but I have the error "Reports for connected accounts only reflect data from Custom but I cannot switch accounts to custom or express.
And i try with\ Stripe\Payout but there is no option to retrieve connected account payout.

Do you have an idea ?

Thanks for your help.

gleaming urchin
#

Hello, I’m trying to create a 1 year free coupon for an annual subscription. Would I just create a 12 month free coupon or should I extend a trial for 1 year?

daring lodge
#

@sand tusk I recommend testing things out as you read through the steps of the docs - we're here to help if you have questions!

vocal bison
#

It seems like my issue is because I have to use a standard account; and only express and checkout accounts allow you to modify the branding through API

sand tusk
daring lodge
daring lodge
sand tusk
#

I'm confused as this appears like it's in test mode but is acting like it's not (see error).

vocal bison
#

Unfortunately we cannot use these accounts as our business will become liable incase of transaction disputes, so doesn't seem possible unfortunately 😦

#

Thank you for your help however

daring lodge
south oracle
#

Hi there i don't know if i am in the right place but i have had money showing in my available balance on woocommerce account on Wordpress from a order placement. When will this be transferred in to my account. The order was placed 30th June but i only completed the order today as i didnt realise i had to do this part manually.

daring lodge
daring lodge
fossil crystal
#

Is it possible to disable certain types of cards in the Stripe Dashboard? (i.e AMEX?) Thanks

cerulean pineBOT
#

:question: @south oracle 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

daring lodge
#

@south oracle you can contact support (as above) but you also will likely need to reach out to woocommerce for support with their plugin.

sand tusk
daring lodge
daring lodge
fossil crystal
#

Because most customers ask "do we accept AMEX", and when we say no - they they provide a different card type - one that isn't 3% on our IC++ pricing

#

We would ideally just stop accepting AMEX due to its extortionate rates

sand tusk
daring lodge
# fossil crystal Because most customers ask "do we accept AMEX", and when we say no - they they p...

@fossil crystal If you wanted to change your app behaviour based on card brand, you can programmatically inspect the payment method card.brand and process the payment or raise a suitable error at your discretion:
https://stripe.com/docs/api/payment_methods/object#payment_method_object-card-brand

fossil crystal
#

Excellent, thank you

daring lodge
#

quite welcome πŸ™‚

fossil crystal
#

Another quick question!

#

I just logged into the dashboard to see Discover and Diners is now accepted in the UK

#

Is this true for JCB, Unionpay (as shown in the available brands: "Card brand. Can be amex, diners, discover, jcb, mastercard, unionpay, visa, or unknown.")

sage burrow
#

I am having a hard time to find a way to simply charge a customer the right amount. Any one here can look at the subscription and let me know how I can fix the issue?

vocal wagon
hollow prairie
#

@sage burrow Sure, do you have the ID of the subscription?

hearty jewel
#

Hi all πŸ™‚ I have a question.. When you look at a customer in the dashboard, you get a field called "Spent", a summary of how much this customer has spent. Can you get this from the API?

hollow prairie
#

@hearty jewel Hey! There's no field for this on the Customer object, no. You'd need to compute this yourself

daring lodge
sage burrow
#

@hollow prairie sub_JqIoyQSukbwhnl. let me know if you want more information

hearty jewel
#

@hollow prairie Ah, that's a shame, OK never mind, thanks

hollow prairie
#

@sage burrow Looking. If you could let me know what the expected behaviour is, and what you're seeing

daring lodge
#

@hearty jewel You could populate the current total using payment intents / charge data today then update it dynamically by listening to suitable payment webhooks

hearty jewel
#

@daring lodge Yeah, I think we also store amounts from payments in our local db so that's another optoin for us, I was just hoping for a lazy solution πŸ˜‰

sage burrow
#

@hollow prairie sure. we have several plans/prices. The default one costs $588 and it has a trial period of 15 days. The example that you have is in test, so I am overriding it to 15 minutes. After the trial expires and the subscription status changes to past_due, my webhook receives that and locks the customer. The customer enter their credit card after choosing another price/plan which costs $1140. The customer should be charged $1140 instead they are charged 551.93. Based on the suggestions that I got here I m voiding oustanding invoices before changing the plan and also yesterday I added these as per the suggestion here: "payment_behavior" => "pending_if_incomplete"

#

and 'proration_behavior' => 'always _invoice',

daring lodge
#

@sage burrow what do you mean when you say you "lock" the customer?

sage burrow
#

@hearty jewel I mean in our app to force them to pay

#

I lock them in the app

daring lodge
#

@sage burrow As you mentioned if you do not want to credit for the existing plan period then you should disable prorations

sage burrow
#

@daring lodge how can I let tripe know that I need the full amount to be charged and ignore the previous one because it is already voided?

#

@daring lodge I tried proration none but it didn't work

#

I cn give you another subscription using that

daring lodge
#

@sage burrow do you have an example i can look at disabling proration for the update not doing what you expect?

#

yes please

sage burrow
#

@daring lodge yes I do give me a sec

daring lodge
#

@sage burrow while the invoice is voided, the subscription is active with an existing plan. The credit is related to that current subscription period, not the invoice.

sage burrow
#

@daring lodge here is the subscription id where proration is set to none: sub_JqKQIl2uP60oZx

daring lodge
#

@sage burrow taking a look, but i'll point out that proration is only disabled per request -- it is not a persistent setting on a subscription

#

you must indicate that you want to disable proration in the update request that might cause a proration

sage burrow
#

@daring lodge that what I did in the second example that I gave you

vocal wagon
#

Hi ! Is someone know the SOMU subscription plugin on WP ?

sage burrow
#

@daring lodge I am using these parameters in the php call

#

'proration_behavior' => 'none',
"payment_behavior" => "pending_if_incomplete"

vocal wagon
sage burrow
#

@daring lodge Can you tell me what should I do?

daring lodge
#

@sage burrow this looks right, the new plan is applied and no prorated invoice was generated. the next invoice should be for the full amount of 1140, and you can check that by looking at the upcoming invoice:
https://stripe.com/docs/api/invoices/upcoming
what are you trying to accomplish with pending if incomplete? What part of this is not what you expect?

daring lodge
sage burrow
#

@daring lodge I am trying to charge them right away. Can I accomplish that?

hollow prairie
#

@vocal wagon Hello! It's unlikely, you're much better off reaching out to them directly for support. I'm happy to help with any Stripe questions you have though!

daring lodge
#

@sage burrow Yea just a sec

sage burrow
#

@daring lodge awesome!

daring lodge
#

@sage burrow it looks like when you make that change the subscription is already out of trial, so that trial_end parameter isn't doing anything.
If you want to effectively ignore the unpaid period after the trial, you might want to instead reset the billing cycle to restart now which should invoice for the new period on the new plan
https://stripe.com/docs/billing/subscriptions/billing-cycle#api-now
(still disable prorations to avoid the credit being applied)

#

eg: replace trial_end=now with billing_cycle_anchor=now

sage burrow
#

@daring lodge awesome! Small question: that would work also if the trial didn't end right?

daring lodge
#

yea if it was still under trial when you changes the plan etc, ending the trial would actually do the same thing

#

(but doesnt in your case because the trial was already over)

sage burrow
#

@daring lodge This makes sense. I think you solved the problem I've been asking for help for for a while now. I'll test this now but it takes around one hour for the account to be locked ... Hopefully you'll be still here so that I can give you an update.

crimson needle
#

why does it take an hour?

sage burrow
#

@crimson needle I am not sure why probably some settings in dashboard that I don't have access to. The trial ends in 15 minutes but the subscription status doesn't change to past_due right away after the trial expires

#

@crimson needle my webhook relies on that to lock the customer and force them to pay.

#

@crimson needle maybe it doesn't make a difference in this case but I prefer to wait until the subscription status changes to past due just to be safe.

crimson needle
#

but yeah you don't have to wait for the status change, it all works the same

#

you can also do a trial period of 1 or 2 minutes instead of 15

steady thorn
#

Hey, i'm sorry to bother you, but i'm stuck with something since this morning,i want to integrate sprite to my website (still in local), i used the basic integration to checkout my products, its worked, now, when i want to put dynamically my 'line_items' (when i create my session) i get a json syntax error, i'm knew to this, so i dunno how to fix it, actually, i just for the test copied this thing and assign it to a var, well the code will talk himself (i'm french sorry for the bad english lvl)

 $temp=  [
        'price_data' => [
          'currency' => 'eur',
          'unit_amount' => 200,
          'product_data' => [
            'name' =>"AZE",
            'images' => ["/assets/test.jpg"],
          ],
        ],
        'quantity' => 1,
      ];

$checkout_session = \Stripe\Checkout\Session::create([
  'payment_method_types' => ['card'],
  'shipping_rates' => ['shr_1JCkYyKOHeNM9A4HUkXrtVo0'],
    'shipping_address_collection' => [
      'allowed_countries' => ['FR'],
    ],
  'line_items' => [$temp],
  'mode' => 'payment',
  'success_url' => $YOUR_DOMAIN,
  'cancel_url' => $YOUR_DOMAIN,
]);```
#

Note : its exactly the same things, but it caused an error :/

crimson needle
#

@steady thorn do you have an example request id (req_123) that you can see in your logs

pale aspen
# bleak breach Are you using Checkout? If so you can get that information from the Checkout Ses...

Hi no, I am using the charge object to create a charge and then posting the customer information to Stripe with the Customer object (which checks if customer exists first).

I will try with Checkout to see if this can work though, thanks.

That said I'm also unable to connect an existing customer to a payment with the charge object:

** $stripe->charges->create([
'amount' => $stripe_amount,
'currency' => 'cad',
'source' => $order['token'],
// 'customer' => 'customer_id',
'description' => 'Order Charge for ' . $name,
]);
**
I use the customer key to try and do this as mentioned in the docs and the value is a string however the payment does not succeed, even if the customer_id value is returning an existing customer value. It works otherwise though. It will show in the payments page in the dashboard but there is no customer attached to the payments so I don't know who the charge is for.

Do you happen to know why this would happen? Or is there a way I could turn on debugging to print out the errors to see the issue?

steady thorn
#

the error is caused when i'm calling the create session, not when i'm 'buying' the products, i dont even have the page to buy something

#

btw im checking

#

ooooh, i have logs, lmao tks for that, I'll keep you informed

crimson needle
#

I think it's just an issue with a double array or similar

#

if you show me a request I can help

mossy wren
#

Hello Stripe folks. I have an issue with Stripe Subscription update, specifically with the proration behavior when the Subscription price changes.
The example I have is for this user: https://dashboard.stripe.com/test/subscriptions/sub_JqDaKrY12rYw6d
User initially subscribed to a Subscription that is $0 (free). The owner of that Subscription later created a new price to amount 567, which triggers our event webhook to update the Subscriber's price to that new price object. This is done by using the subscription update endpoint; the proration_behavior is set to "none" at the time of Subscription creation.

The expected behavior: User remains at $0 until next billing cycle (monthly).
Actual output: User was invoiced $5.67 immediately when their subscription is updated to the new price.

Any insights for us?

steady thorn
#

error with the image directory

crimson needle
steady thorn
crimson needle
#

@steady thorn It needs to be a full URL yes

#

@mossy wren when you switch from a free plan to a plan with a fee, the billing cycle is immediately reset. That's how it works. You can stay on $0 until the next billing cycle that way
You need to use SubscriptionSchedule and defer the price change to the next period

mossy wren
#

@crimson needle Just to confirm, this is only when we're going from $0 to a paid plan. If it's a change from paid plan to another paid plan, then the proration_behavior of "none" should work as expected?

crimson needle
#

correct!

mossy wren
#

@crimson needle Awesome. Could you give me more guidance on SubscriptionSchedule?

crimson needle
#

Ah for Schedules, the idea is to control multiple phases for the Subscription. So you have a phase that is on the free plan for a month and then a second phase that ends after the current period and that one will be on the new price

strange flax
#

Hello everyone. I'm trying to find out if Stripe sends out a WebHook event when someone completes the Connected Account onboarding form for our platform. I can't see anything here https://stripe.com/docs/api/events/types that seems to describe that scenario. I'm trying to find a way to know when someone has created a Connected account even if the final redirect to our site on completion fails.

crimson needle
#

@strange flax you would listen for account.updated to know the state of the account mostly and information being filled out and whether we need more details

strange flax
#

Ah, i thought that was your own account. Will try it out now, thanks!

crimson needle
mossy wren
#

@crimson needle Thanks for providing the resource for SubscriptionSchedule. Just a couple questions:
If a user is switching from free sub to paid sub, would that mean:
(1) We'd create a SubscriptionSchedule with the new price to start the same date the free sub is ending, and (2) put an end date on the existing free sub so they're only on one sub at a time?

strange flax
crimson needle
#

@mossy wren no you would basically turn your existing subscription in a schedule. The schedule will "change" your subscription at each period

mossy wren
#

@crimson needle Got it, I'll play around with it. Another use case: if the Subscription owner changes a price with fee to another price with fee, and the subscriber already has a SubscriptionSchedule pending, instead of creating a new one, we'd simply update the SubscriptionSchedule to the new price with fee, correct?

crimson needle
#

correct!

mossy wren
#

@crimson needle You're the best. Thanks!

crimson needle
#

I would agree I am the best. Just need my team to notice :p

worldly knoll
#

I'm pretty sure I have the solution but just want a sanity check. I have to update multiple customer's subscription charge date. Most were created with a subscription schedule. I would update the subscription schedule instead of the subscription in most cases with the first phase being my new recurring billing date, correct?

crimson needle
#

@worldly knoll yep but be careful with proration and such so that you don't give credit or charge them by mistake

worldly knoll
#

@crimson needle What would you suggest is the best way to deal with this, some customers may have be billed say the 28th and the new billing date may be the 2nd of the following month.

crimson needle
#

it's always tricky but you set proration_behavior on each phase I'd say

pure island
#

Hi guys!

crimson needle
#

and you test it in Test mode first to be safe

worldly knoll
#

Thanks @crimson needle !

vocal wagon
#

Hi

#

Can someone help me with invoice draft that i want to delete

#

It has been created by the subscription process

crimson needle
#

you can't delete those

vocal wagon
#

So the draft will remain in my invoices list ?

pure island
#

I'm using react native with graphQL and typescript and trying to list all cards but I have a problem with the return type: listAllCards: async (_: unknown, { userId }: { userId: string }): Promise<Card[]> => {
const cards = await stripe.customers.listSources(userId, { object: 'card', limit: 4 })
const cardsList = cards.data
return cardsList

crimson needle
#

@vocal wagon yes

#

@pure island what's the problem exactly?

pure island
#

the server crashes with error saying: Type 'CustomerSource[]' is not assignable to type 'Card[]'.
Type 'CustomerSource' is not assignable to type 'Card'.

sacred totem
#

Hi! I have a list of Plans from stripe api, I was informed that I could just plug the plan id’s into the β€œitems” array as β€œprices” in order to generate subscriptions, but these plan ids don’t look like the ones in the api docs, looks like they were created in 2016. They look custom made. Do I have to change them or something? Plus, they don’t seem to work.

pure island
#

don't know what type to use. i just need to get the array of cards so i can get the brand and last4 and use them in the frontend

crimson needle
#

@pure island type of what? I'm sorry I'm a bit lost. Usually you list cards server-side and then you loop over the response you get and return a subset of properties you want

pure island
#

yes i'm doing it server side but it's not returning the card object.

crimson needle
#

what does that mean? what do you get, what's not working?

pure island
#

it's saying: Type 'CustomerSource[]' is not assignable to type 'Card[]'.
Type 'CustomerSource' is not assignable to type 'Card'.

#

i have the Card type as {

crimson needle
#

okay so you're using stripe-node + Typescript server-side?

pure island
#

{ brand: string, last4:string}

#

yes and using a resolver to query the list

crimson needle
#

not sure what a resolver is

pure island
#

i have a file resolvers.ts where i have the mutations and queries, when i add the loop, it doesn't recognize the brand and last4...undefined

gloomy girder
#

I've noticed in a few places it mentions setting the type of a Product to "good" or "service", but the API docs for it don't mention it. Is it an old deprecated parameter or does the API doc need updating? https://stripe.com/docs/api/products

crimson needle
#

@pure island I'm sorry I don't understand the words you're using, what's a mutation and a query and a resolver?

pure island
#

that's graphQL

sacred totem
#

Wow @crimson needle are you the only person answering questions? You’re doing great, thank you!

crimson needle
#

@gloomy girder it's a really old parameter that is actively deprecated/unused

pure island
#

sorry ab that

crimson needle
#

@pure island all good it's not your fault I must not be familiar with your stack

#

@sacred totem thank you! We're a team but we're doing it alternatively

pure island
#

thanks @crimson needle

crimson needle
#

@pure island but mostly you list sources, you cast them to card and then you turn those into an object with the properties you care about

pure island
#

yes i'll try again thank you.

crimson needle
#

let us know if you're stuck, someone else on my team might be more familiar with it!

pure island
#

sure thanks

sacred totem
#

Sorry, just reposting my question since I realized I wasn’t asking anyone specifically…. @crimson needle Hi! I have a list of Plans from stripe api, I was informed that I could just plug the plan id’s into the β€œitems” array as β€œprices” in order to generate subscriptions, but these plan ids don’t look like the ones in the api docs, looks like they were created in 2016. They look custom made. Do I have to change them or something? Plus, they don’t seem to work.

crimson needle
#

@sacred totem I replied earlier

#

[6:34 PM] koopajah: @sacred totem all Plans work as Prices so you pass the plan id in price and it will work! (also please use #dev-help for questions like this!)

#

did that answer not work for you?

#

Let me know if that was unclear!

sacred totem
#

@crimson needle I got back an invalid array message. I’m basically sending something like this to create a subscription: (in php). [[β€œcustomer” => β€œcus_… β€œ, β€œitems” => [β€œprice” => β€œtest_plan_here”]] where β€œtest_plan_here” is what Plans is giving me for the plan id.

crimson needle
#

yeah that's not plans that is the issue here, items is supposed to be an array of item.

#

you want 'items' => [ ['price' => 'test_plan_here'] ]

sacred totem
#

@crimson needle I’m getting back some different errors, I’m going to dig into this until I hit another wall. Thanks for your help!

crimson needle
#

let me know the error I can help you fix it!

sacred totem
#

@crimson needle actually it might have worked, the error must be on my end. I’m pretty excited, tried setting this up for days thanks!

crimson needle
#

yay!

vocal wagon
#

Hi

#

Hi again,
I would still need help.
I am unable to retrieve the information of a bank account for a connected account (ID : "ba _...").
With $destination = \Stripe\Account::retrieveExternalAccount($account_id, $ balance->destination);
I get the error "You cannot perform this request as you do not have Platform Controls for Standard on the account."
Can you help me ?

Thank you in advance.

#

Where can i contact Go support?

abstract compass
#

We are having trouble implementing Stripe Subscription where it stays in incomplete status. We started with the c# example from the fixed-price-subscriptions example https://github.com/stripe-samples/subscription-use-cases/tree/v1.0/fixed-price-subscriptions. We then replicated the code from BillingController into our own code (we are using Azure Functions). We are able to create the customer, payment, and subscriptions. However, the Subscription stays in the incomplete status. The code is almost verbatim from BillingController

dim hearth
dim hearth
vocal wagon
#

thanks

dim hearth
abstract compass
#

@dim hearth Here is an example sub_JqWKWZQMus4aCD

#

It's in our test environment.

abstract compass
dim hearth
dim hearth
dim hearth
vocal wagon
abstract compass
fierce flume
#

Hello ! i have a question about order refunds : i have a marketplace of clothing, if a customer return any articles, i have to refunds money to my customer ( i have 30 days on legislation rules ) do i have any fees by stripe for this kind of transaction ?

#

Also, i make funds transfer to seller Stripe Account after charge, if a refund is asked by customer, how can i refunds money to customer ( with fees keep by my marketplace + money trasnfered to stripe account of seller )

dim hearth
dim hearth
# abstract compass Oh - I was under the impression that by attaching the paymentMethod to the subsc...

Yes, when you create a subscription with payment_behavior: default_incomplete you need to confirm the first payment intent separately - if you want payment to be attempted when the subscription is created you want to be using payment_behavior: allow_incomplete which is a slightly older flow. You can read more about it here https://stripe.com/docs/billing/subscriptions/fixed-price

dim hearth
# fierce flume Hello ! i have a question about order refunds : i have a marketplace of clothing...

Hello! For your first question about fees on refunds - there are no additional fees for a refund, but Stripe won't refund any of the fees from the original charge ( see https://support.stripe.com/questions/understanding-fees-for-refunded-payments). For your second question, are you using destination charges to automatically transfer a portion to the connect account? or are you doing separate charges/transfer?

abstract compass
dim hearth
fierce flume
dim hearth
# fierce flume thanks, separate transfer because after customer order, the seller can " accept ...

If you're doing separate charge/transfer then you would reverse the transfer (see https://stripe.com/docs/connect/charges-transfers#reversing-transfers) and then create the refund (https://stripe.com/docs/connect/charges-transfers#issuing-refunds)

fierce flume
#

@dim hearth okay thanks, i haven't got any fees to reverse transfer ?

dim hearth
# fierce flume <@!845165114360856596> okay thanks, i haven't got any fees to reverse transfer ?

I don't believe there are any Stripe fees for reversing a transfer, but if you want to be sure (or have more questions about fees) I'd suggest asking support https://support.stripe.com/contact

mossy wren
#

Hi Stripe. I have a question about creating a SubscriptionSchedule for an existing Subscription. If the existing Subscription already has attributes such as proration_behavior, transfer_data, and application_fee previously set, do I need to explicitly set them again in my SubscriptionScheduleCreateParams?

dim hearth
gleaming urchin
#

Hello, I have a customer who has an annual subscription with the billing period of August 21st… The customer pays manually, so we have it setup to send the customer an invoice on August 21st and they have 30 days before the account goes into β€œpast_due”…. We want to send out the invoice to the customer 1 month BEFORE August 21st and have it go into β€œpast_due” after August 21st.

#

In this case, should we just update the billing cycle?

mossy wren
#

@dim hearth Thank you, I'll leave out the transfer_date and application_fee but continue to set proration_behavior (it's really just a boolean anyway). Just for my own sanity check since it's my first time playing with scheduling a subscription, could you double check if this is all I need for my SubscriptionScheduleCreateParams:
customer (customerId), start_date (same value as existing subscription's next billing period date), phases.items.price (id of the new price), and from_subscription (id of the subscription we're targeting).

exotic rain
#

Hello everyone
I need a help
i want to schedule a cancellation of subscription, basically i want to cancel a subscription in future date. I have gone through the subscriptionSchedule doc but i haven't found schedule of cancellation of subscription.

dim hearth
vocal wagon
#

HI! I made a stripe payment on my new webpage hosted by aws. After that the page shut down (it always returns error 500: internal server error. I tried a lot of things, also shutting down the instance and rebooting it. It still returns error 500. I'm not very experienced in this topic so I don't know what information you may need so feel free to ask. I also don't know if this is more of a stripe or aws issue. I would be very happy if someone could help me to get my webpage back running normally. Thank you in advance!

dim hearth
gleaming urchin
#

The goal is for it to go into past_due on August 21st @dim hearth

dim hearth
dim hearth
dim hearth
mossy wren
#

@dim hearth I'm a little confused with the from_subscription param and the suggestion of making 2 separate calls. May you walk me through how to achieve what we're attempting to do with subscription schedule? Our goal is when a Subscription's price changes from free to paid, we don't want the billing cycle to reset immediately; instead, we want the billing cycle to finish running its course before charging users at the new subscription price.

dim hearth
mossy wren
#

@dim hearth we are updating them from one price ID to another.

#

@dim hearth I initially thought setting proration_behavior to none would suffice, but I learned from koopajah this morning that it only works for plans with a fee. This is why I'm trying to remedy the situation of Free to Plan with a fee setup.

exotic rain
# dim hearth There are multiple ways to cancel a subscription in the future, and you don't ne...

okay but i didn't get you, let me explain my use case
so i have a requirement where in YEARLY subscription if the user cancel or switch the subscription in the last 3 months of the subscription period then this will cancel their 3 period subscription not the next period
Example, i have a subscription from 1 jan, 2021 to 31 dec, 2021, so if user cancel or switch the subscription in the last 3 months then it will cancel the subscription period from 1 jan, 2023 to 31 dec, 2023 not the next upcoming subscription period from 1 jan, 2022 to 31 dec, 2022.

dim hearth
# mossy wren <@!845165114360856596> we are updating them from one price ID to another.

Ahhh, gotcha - yeah when you transition from a free -> paid plan we will always reset the billing cycle. So what you want to do is first make a request to create the subscription schedule that just sets from_subscription - this is just turning your existing subscription into a schedule, we don't allow you to set other parameters when you set from_subscription. Once you've made that request, you can then update the created schedule and add an additional phase for the upgrade to the paid plan. Does that make sense?

coarse panther
#

Hey, I have linked my stripe account to Docu-sign. I have save payment info for recurring charges....

#

But not sure where it goes lol

bold basalt
#

@coarse panther hello

#

@coarse panther that would be a good question for the Support team at https://support.stripe.com/contact , please write in to them and they should be able to help you!

lost turtle
#

Hello! I plan to use Connect for a savings jar app, where users can add money to savings jars. If all the deposits go to the same bank account, how should I distinguish between jars? For example, how would I use the Stripe API to check how much money is in a particular "jar"?

coarse panther
#

Awesome,t hanks

bold basalt
#

@lost turtle hello, why do you say "If all the deposits go to the same bank account". If you're using Connect, the savings would go to each Connect account's Balance, and would eventually be paid out to whatever external account they have connected to their Connect account.

dim hearth
# exotic rain okay but i didn't get you, let me explain my use case so i have a requirement wh...

Yes, for that case cancel_at is still an option - you would set cancel_at to the timestamp of Dec 31 2023. The only problem with this option (as I mentioned earlier) is that it'll generate prorations unless you have the cancellation timestamp to be exactly when it's supposed to renew. If you want to do this with subscription schedules you would turn your subscription into a schedule using from_subscription (see https://stripe.com/docs/api/subscription_schedules/create#create_subscription_schedule-from_subscription), you'd make sure the current phase has an end date of Dec 31 2023 (either by setting end_date or iterations on the phase, and then set end_behavior to be cancel (see https://stripe.com/docs/api/subscription_schedules/create#create_subscription_schedule-end_behavior)

lost turtle
#

Ok, I'm still unfamiliar with how it works. Connect was recommended to me by the IRC chat. They said since money is moving into the app and then back out to the users, Connect would be the way to do that

narrow whale
#

Hey guys, I am with a small startup, and we are just starting out. We recently purchased a verifone p400 plus reader (thru Stripe), and we were wondering how we can get it to interact and display a GUI. Does Stripe handle that? Or do we need to build our own pos system in order to use the reader?

bold basalt
#

@lost turtle yeah I think you need to read up on Connect more thoroughly. Basically in a food delivery scenario, there's say Doordash, the "Platform", then drivers who are Connect accounts (with individual attached bank accounts) and customers. Customers pay the Platform, the Platform pays the Connect accounts.

#

@narrow whale hello, all of Stripe's Terminal readers require you to develop an integration to interact with the reader. So you have to build the GUI and integrate with the SDK and to Stripe's APIs to get an up and running integration

serene spoke
#

Hi, is there an account link page to add bank accounts to a custom connected account? or is this something I need to handle myself?

bold basalt
#

@serene spoke hello, you have to add support for that on your end, it isn't supported on the Custom Connect onboarding "hosted UI"

lost turtle
#

@bold basalt ok, will do

#

Is there a way to add tags or labels to transactions? So I could add for example a savings jar's id to some transactions, to query them later?

bold basalt
#

@lost turtle in metadata

#

@lost turtle but metadata isn't queryable

#

@bold basalt so really you should store your internal jar ID and the PaymentIntent ID on your end.

serene spoke
exotic rain
# dim hearth Yes, for that case `cancel_at` is still an option - you would set `cancel_at` to...

I also got you from your last reply, but as you mentioned the timestamp of dec 31, 2023, i guess this timestamp will cover the 2023 year also, i only need to cover the next year if the user cancel the subscription in last 3 months of the period.
I think i will need the timestamp of starting date of the next year subscription and this will also cover the year and also perform cancellation after that year.
Please correct me if i am wrong?

bold basalt
narrow whale
#

@bold basalt does the verifone have a functionality which senses when a credit card is inserted?

bold basalt
#

@narrow whale your integration asks P400 to "collect" a payment method, and then it supports dip, tap and swipe.

dim hearth