#dev-help
1 messages · Page 114 of 1
@ripe spindle Yeah, you can hit the API with an obviously-invalid account number in test mode and see what you get back.
Ah duh of course let me try that
Thanks for the help @fast mantle and @mighty hill. May be back with some more questions soon.
It seems like after voiding an unpaid invoice, the next invoice carries over balance from the unpaid one. Is that what we should expect to see, or am I reading that wrong? (sub_JkxACll2aOctuP example)
I think it's the proration adjustment, but not sure why that would carry over from a voided invoice.
@acoustic dew Hello! @dim hearth had to step away, but I'd be happy to help! What do you mean by "carries over balance" exactly? Is there a specific Invoice I should be looking at on this Subscription?
No worries. Thanks for picking it up!
Here's the invoice that has a proration adjustment from the previous invoice, (which is the one we voided) in_1J7RHMFDAbcSpTlWMi4Bu85h
I wouldn't expect to see a $99 figure anywhere on that invoice, because the user in question didn't pay the previous invoice, and we voided it when they downgraded to our free pricing.
Hey can somone please help. My account was just frozen for no reason. Over 150 payments and only 1 dispute from someone with buyers guilt. I deliver digital goods ...
Please help me, how can i get all the people i have on recurring payment off stripe or how can i get my account unfrozenm thanks
just broke 30k MRR and this happens... im distrought!
@acoustic dew Taking a look, hang on...
Anyone with any advice , much appreciated
@half wren Hello! I wish I could help, but this chat is focused on developers and technical questions. Our support team will be able to assist you better than I can: https://support.stripe.com/contact/email
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I emailed tons of times not a single response yet 😦
@half wren They should respond shortly. There's nothing we can do to help here I'm afraid.
I have a question regarding transfers and different types of balances. Is anyone available to help me out?
@vestal trench What's your question?
@mighty hill We have available money in one type of balance, but not the type we are trying to transfer from. Is it possible to move the available amount from one balance type to another?
or do I actually have to verify balances and transfer from that account
This Invoice was paid for by the Customer's credit balance: https://stripe.com/docs/invoicing/customer/balance
Learn how to use the customer credit balance.
@vestal trench The balance type needs to match; I don't believe you can move funds from one balance type to the other.
@mighty hill ok so I would have to retrieve the balances, and then pick the type to transfer with based on the response
@vestal trench Correct.
@mighty hill is it standard practice to retrieve that balance before every transfer?
But why would they have a credit balance in the first place? Their only non-zero invoice was "open" (before we voided it) and their subscription was "unpaid".
@vestal trench It depends on your integration, but it's not unusual to do so.
@acoustic dew Let me look...
I have a question about webhook events. If I want to listen for Connect Accounts changing their externalAccount (card or bank account), would I use the external_account.updated or external_account.created event?
@mossy wren The .created event only fires when the account is created, so you want .updated for changes to the account.
@mighty hill Great. Since externalAccount could contain either card and bank_account data, what data do you recommend I examine from the payload to know when user has updated?
From what I can see, if externalAccount.object is where I can see if user switches between card or bank_account; if the object is the same, then I would check externalAccount.account for difference in bank_account id, or last4 for difference in card. Does that sound correct?
@mossy wren You can look at the object property; it will be either card or bank_account
@acoustic dew Just letting you know we're still looking, thanks for being patient! 🙂
No worries, and no rush! It's just test data, so I'm not waiting on anything critical! Thanks
@acoustic dew Okay, so our Subscription system assumes that previous Invoices on a Subscription are paid or will be paid, so when you switched them from the paid plan to the free plan the system credited them for the unused time left on the paid plan. That's where the credit came from. To avoid this you would need to disable proration when switching from the paid plan to the free plan.
Hello! I have a question about Card Readers and Subscriptions--Right now I am creating a payment intent and charging a once-off payment that generates a payment method, then I am adding a Subscription and attaching the payment method to the Subscription with a 30 day trial. Is there a way to rather create the Subscription first and then charge the Subscription the first payment?
@weak linden Hello! To clarify, what does "Card Readers" refer to?
@mighty hill The Veriphone card reader
@weak linden The P400 Stripe Terminal reader?
Correct @mighty hill
@mighty hill I had asked some questions before about transferring money out of different balances, and as im looking at some balance responses here I am seeing that instant_available only has money for transferring from the card balance. Is that the only balance usable for an instant transfer?
@weak linden Hm, good question. Have you tried passing the client secret from the Subscription's pending_setup_intent to the collectPaymentMethod function in the Terminal SDK?
Thanks @mighty hill I will give that a try
My stripe i no longer have access to it email been change
it got hacked
still no reply
@still sable Hello! I wish I could help, but this chat is focused on developers and technical questions. Our support team will be able to assist you better than I can: https://support.stripe.com/contact/email
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I filled out that online form and still no reply been 3 days
@still sable I'm sorry, there's nothing we can do here.
@still sable Support should be able to help you once they reply.
How long is max i should get response
@still sable I don't know, it depends on several factors.
I don't think that's the only balance, the API reference shows there are others: https://stripe.com/docs/api/balance/balance_object#balance_object-instant_available-source_types
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@mighty hill yeah i see the other balances listed in my response, its just they are at 0 in the "instant_available" section, while they have an amount in the "available" section, so I just wanted to double check I don't have to account for that on an instant transfer
@still sable Please don't try to DM people here for help, there's nothing we can do. You need to talk to support.
@vestal trench What do you mean? Can you tell me more about what you're trying to build?
Currently I am using the default transfer source which is "card", but we want to use money from a difference balance, so I need to check balances first to determine which balance to use. If I can send you an event ID you might be able to better understand my question, but while "card" has an amount in both the available and instant available hashes, another one of our balances only has a positive balance available, while it is 0 in instant_available
so im wondering if it will error out if I try to do an instant transfer out of a balance other than "Card"
@vestal trench You can share an event ID here, they're not sensitive.
evt_1J7QiZAw2Z7l0KWZpzhmgTHT
@vestal trench It will error out if you try to instantly transfer from any balance where the amount won't cover the transfer. You shouldn't be as concerned with the type and more with the amount of the transfer vs. the amount available.
@mighty hill I guess just in my case here, if I try to instant transfer out of "financing" what will happen? Instant vs standard is an option we give our users, so I just need to make sure I am accounting for that in the correct places
@vestal trench Just to make sure we're on the same page, you're talking about Instant Payouts, right? https://stripe.com/docs/connect/instant-payouts
Send Instant Payouts to your connected accounts
Thanks. Disabling proration is fine in this case, but this is somewhat surprising behaviour if the invoice previously hadn't been paid, then we voided it, making it impossible to pay in future. Would there be a better option than voiding the invoices we don't expect users to pay when downgrading?
@mighty hill sorry yes instant payouts
@acoustic dew No, I think voiding them is the right move here, it's just that prorations don't take into account the fact that it was voided.
@mighty hill i was confusing myself here then, it wont matter, because i need the balance for. a transfer
not a payout
for some reason i was thinking the method was on transfer and not payout
@vestal trench Yeah, so in that instant_available property in the event you shared, the balance in the source_type must be equal to or greater than the amount of the Payout which has that same source_type set: https://stripe.com/docs/api/payouts/create#create_payout-source_type
Hi All! Is there an easier way to get the PaymentIntent from a Subscription object. Right now I am creating the Subscription object, then I am retrieving the Invoice (using the Invoice id), then I am retrieving the Payment Intent (using the Payment Intent id). Is there an easier way???
Are you doing this in three calls right now (sub creations, invoice retrieve, payment intent retrieve)? If so, you can do it in one using expansion (see https://stripe.com/docs/expand). You'd create the subscription and expand latest_invoice.payment_intent
ok roger that @dim hearth and thanks!
Hi there, have a question about the balance object when someone has a few minutes
@vestal trench Feel free to ask!
@dim hearth I see the available attribute on the balance object is an array of hashes. Im wondering when that array returned has multiple elements. Basically I just want to make sure that grabbing the first element in that array is always the currently available balance
available will have multiple elements when you have balances in different currencies, or have balances with different source types (card, bank_account, fpx). So yes, if you're grabbing the first element that will always be at least a portion of your total available balance, but won't necessarily be all of it
Oops - I actually mispoke. It won't be broken down by source types. The break down by source type will be in the same element
hm ok is it possible that might be different currencies only? I currently have 3 balances, but still only one hash in available
oh
cool so its currencies, only dealing with USD for now so the first one should suffice. Thank you
yup! sorry about that - was looking at the wrong thing
@dim hearth sorry, one more question. To create a transfer from a financing balance, is that what fpx stands for?
FPX is a specific payment method available in malaysia (https://stripe.com/docs/payments/fpx), so when you create a transfer for fpx balance, it's only for funds that came from fpx payments
ok, so can i even create a transfer with a financing balance, I just dont see that specified in the docs
I'm not entirely sure what financing balance is - can you be more specific?
I guess let me send an event id, thats just what I saw in this response I got from an event
@dim hearth evt_1J7QiZAw2Z7l0KWZpzhmgTHT
so my balance is returning 3 source_types one of them being financing
@vestal trench Give me a few minutes to do some digging - I don't know very much about this kind of balance (it seems to be related to Stripe Capital)
ok thank you, basically I just wanna set that as the source type on a transfer
@vestal trench I'd suggest just going ahead and trying it out - I don't have any financial balance on my own testing account right now, otherwise I'd try it out myself
ok ill see how it works out, right now on our test account we only have a card balance, and they didnt give me enough permissions to add more hahaha
For a Stripe/Plaid integration, are any events triggered/webhooks called when the bank account token is attached to a Customer outside of customer.update ?
I would figure something else would fire (like payment_method.attached ) but I can't see anything in the logs or in the documentation
@echo pollen Hi! Since you're making an API call to do this synchronously - and therefore you know it's happening - there isn't anything that fires, no.
I guess that makes sense
I'll just have to get the Bank name/last 4 after updating the customer then. Thanks!
Hi there, couple questions around pre-auth payment intents.
- Can I simulate a uncaptured pre-auth expiring without waiting 7 days? (If not whats the expected webhook that happens? and would it look different to a manually cancelled pre-auth?)
- Are there any restrictions around debit cards and pre-auths?
hello, guys.. why is that I set my unit_amount to 160 currency is AUD, but when I'm on the actual stripe checkout it's only A$1.60?
- There's no specific "uncaptured pre-auth expired" event. Instead you'd get a
payment_intent.canceledevent which you can simulate by manually canceling the PaymentIntent - No restrictions on Stripe's end, however the card issuer might have restrictions in place
Does anyone have any pointers for passing a custom attribute along when pulling up the Stripe payment page? I'm looking to use Stripe as a gateway for my Discord bot's premium purchase handler and want to be able to store "customers" as the servers they're paying to upgrade, not the people buying the upgrade themselves. I'm not sure what the correct way to do something like this is, any pointers on this would be helpful.
Stripe uses the currency's smallest unit. In the case of AUD, unit_amount: 160 translates to 160 cents, which is AUD $1.60: https://stripe.com/docs/currencies#zero-decimal
See what currencies you can use for making charges and for paying out to your bank account.
The flow I'm envisioning is the user clicks on "upgrade" for a specific discord server from a list on my website. I send them to Stripe's subscription payment page, passing along the ID of the server they're trying to upgrade. If the purchase goes through, would I be able to store and retrieve some custom "ServerID" attribute from Stripe's end when I want to check if a specific server has premium?
Can you elaborate a bit more what you're trying to do? What do you mean by "payment page", are you referring to Checkout?
@strange tiger You have a few options here, the best is probably to store the server ID as metadata on the Checkout session itself when you create it: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-metadata
You can then retrieve the metadata after the subscription has been completed to do purchase fulfilment
Ah so does this metadata get sent with customer.subscription.created?
Not quite no, you'd want to listen for checkout.session.completed since that represents a Checkout object. customer.subscription.created represents a Customer object
Ah ok, thanks
Thank you, mate.
Thanks Paul. So no way to distinguish a automatic cancel vs manual cancel? (I can handle on application side just thought I'd check to save me some time)
And when you say card issuer, do you mean the bank itself? or the network (visa etc)? is that documented anywhere or have any idea what the error responses might be?
I'm just asking around on the distinguishing between automatic vs manual cancel bit. As for your second question, "issuer" refers to the bank itself. "Networks" is the term commonly used for visa and mastercard and the like. If an issuer doesn't allow placing holds on debit cards you'd very likely get a generic "declined" error code. However it's highly specific to issuers so not something that Stripe documents as we have no control over that
Cool, thought that was the case re issuer. Thanks for the info!
Hello, I have a scenario where I want to give a 30 day free trial for one of my subscriptions. The user does not need to enter any payment information in this period.
If the user chooses to buy the plan, he is shown a new checkout session to enter the payment details. But here, I would like to continue the old subscription without creating a new one.
Is this possible?
You have a few options here:
- Use the Customer Portal to give the user the option to add a payment method to their subscription: https://stripe.com/docs/billing/subscriptions/customer-portal
- Use Checkout in
setupmode to collect payment details for a customer. After which you'd update the subscription via the API to use the newly created PaymentMethod: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-mode
The simplest way to offer subscription and billing management functionality to your customers.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
of the two, option 1 is probably the easiest to set up
@bleak breach Thank you for the answer. I already have the 1st one implemented. Why I would like to change it is that it is breaking the user flow. The user is supposed to be able to add the card details and pay the amount on one screen.
I see that the 2nd one is also for collecting the payment later. Which means user does not see how much he is paying on this screen, right?
is there a way we can put money into a "finance" balance in a test environment. We have tried to put more money into our test balance but it just goes to card.
The exact flow that you're suggesting isn't available via Checkout or the Customer Portal. I would recommend rethinking your business model though. If you offer a 30 day trial period without first collecting payment details then it's unlikely that you'll see many conversions to paying users. I recommend collecting payment details up front and automatically charging for the first invoice after the trial period has completed
Is there a way to use the API (not the dashboard) to filter transactions by metadata values? Specifically, I need to take a subset of charges and find the total amount receives for those charges. Are there no filtering parameters available in the API?
That's not possible unfortunately
Thanks @bleak breach!
You're talking about Stripe Capital right? I unfortunately don't know much about that particular product, but if you want to quickly add funds to your test account balance then you can use the 4000000000000077 test card to skip the "pending" state and add it directly to your balance: https://stripe.com/docs/testing#cards-responses
Learn about the different methods to test your integration before going live.
@bleak breach I guess thats what im talking about, Im trying to test if I can transfer money from that balance to a connected account, but the docs dont say you can and karbi wasnt sure either
@vestal trench Honestly I think your best bet is to reach out to support directly here: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
cool ill reach out to them
@bleak breach Thank you for the suggestion. If we ask them to enter the payment info at the beginning, some of them might not even try to use our product. Plus, it is faster for a new user.
Right now, I am creating a separate subscription which is only for the free trial, and create the checkout session for a new subscription when the user wants to pay. Thanks again for the quick reply 🧑🏻💻
You could also use Elements to collect the payment details in your own UI and then update the subscription with the new default PaymentMethod
Hmmm, never tried Elements. Thanks, I will check it as well 👼
Elements looked powerful, but I decided I'd rather trust Stripe for everything and just create checkout sessions now
plus, it looks better than anything I'd ever be able to style
Checkout/Customer Portal is for when you want Stripe to take the wheel and handle all the UI bits for you. Elements is if you want everything to stay on your domain and match your own UI
Hi there. Is there any chance we can use the real card in the test env while making a payment?
There are a couple caveats to Checkout, however. Saved Payment methods, knowing the address beforehand (for shipping calculations, for example) and the mandation of using customer objects (if you don't pass it one, one will be created). So it's worth weighing out your service's needs. But Checkout is very cool
Nope, only test cards will work in test mode
does anyone here have experience with stripe multiparty payments? i’m still a bit confused on exactly how it works. do sellers need to create a stripe account to claim their earnings? does stripe automatically handle taxes? do you know of any good way to do this all serverside on an api?
Hi there and welcome! It depends entirely on the "flavour" of connect you're using. With standard connect your users tend to have their own Stripe accounts which they connect to your platform account. With express and custom you create and manage the Stripe accounts for them. I suggest you have a read through the docs where all this is explained in better ways than I could: https://stripe.com/docs/connect
Learn how to route payments between multiple parties.
awesome, thank you! i am trying to gain some insight into how all this works, however if I look to hire someone, is there a channel I could post the listing in?
@vocal wagon Not in this Discord, but we do have a verified partner page here: https://stripe.com/partners/expert-services
Awesome, thank you! :D
I'm having issues with payment processing - I work for a charity organisation and we use the WordPress plugin 'Give' for our donations, and we have it connected to our Stripe account. It has been working fine for a couple of years but something has happened recently and now payments aren't being processed. The connection with Stripe is working and the Stripe dashboard tells me there's no issues. The new donors are coming through to both Give and Stripe but with no amount attached to them. Any ideas? Happy to provide more info.
This sounds like something you'd have to talk to the makers of 'Give' about. If there's no errors in your Stripe logs then there's not much we can do to help you here
Ok thanks @bleak breach
Hello. I have a question on Stripe Card charge. We are using the following code to hold funds on a card
But hold is successful on a expired card also. Is it expected ?
ChargeCreateParams chargeCreateParams = ChargeCreateParams.builder()
.setAmount((long) (amount*100))
.setCurrency("USD")
.setCapture(false) //to hold the funds
.setSource(cardId)
.setCustomer(custId)
.build();
Charge.create(chargeCreateParams);
@agile hinge it's ultimately up to the issuing bank whether to accept a authorization on a card, whether it be expired or not. As such it's possible that issuing banks accept charges for expired cards, but it's not something you should rely on
Is there a way to fail such transactions using Stripe API ?
What do you mean? Are you looking to test a failure with the API?
I mean, I want to identify if the card is valid or expired before making the hold
Since you're using the old Sources API you can check the Card object: https://stripe.com/docs/api/cards/object#card_object-exp_month
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@sudden forge If you want a no-code or javascript only approach, I suggest using Payment Links: https://stripe.com/payments/payment-links
I need javascript because I am working on a complex project so that I need to have javascript
Like a code version
You can use client-side only Checkout, but it's quite limited in what it can do: https://stripe.com/docs/payments/checkout/client
okay let me see this thank you
@bleak breach
I am gettting this error
The provided success URL domain (example.com) is not enabled in the dashboard.
I went to the link it give it to me
but could't find what to do
@sudden forge That error should also have a link to the dashboard where you can add the URL
Scroll down to the "CLIENT-ONLY INTEGRATION" part
Yeah I already did it and the place where it says domains I placed my domian in there
not the success one tho
if you literally set example.com then it won't work unless you happen to own the example.com domain
I did put my own domain not the example.com
OH
this is an issue I had too
Is your application potentially passing the URL with a port number appended to it?
Odoo tends to do that with email links sometimes, redirecting users to crm.example.com:8069, rather than crm.example.com
are you running your application over HTTPS?
I have specified the live key and point to the server from my end. Do you know why I can't make a payment with real card?
This error means you're still passing the test mode key somewher
yeah
Nevermind I fixed it and now it is working
Thank you 🙂
I was under the impression that, when updating a schedule, "iterations: 1" would set a phase to end on the next iteration of the billing cycle anchor
however, this request with "iterations: 1" in the first phase seems to cause that phase to end one month from its start date: https://dashboard.stripe.com/logs/req_S9nEQDOeK5TcXf
this was the last update to that subscription just before the request I linked above, and in the response body you can see billing cycle anchor is the 1st of the month: https://dashboard.stripe.com/logs/req_eFxhR6EL5h6zDr
@light hawk Hi! It would cause one (more) iteration to run - which is what it sounds like it did.
@mellow spear you're saying "iterations: 1" doesn't do anything to align the end date of a phase with the billing cycle?
If you want to adjust the billing cycle, you should do it this way: https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#resetting-anchor
Learn how to use subscription schedules.
I don't want to adjust the billing cycle
I want to update the phases, but keep them aligned to the current billing cycle
I swear I was told a while ago that the proper way to do that was to use iterations: 1 everywhere, but maybe I misinterpreted the advice
Do you want to adjust them immediately?
no—when I want to adjust the current phase I just update the subscription directly
if that's what you mean 🙂
Then I'm not understanding what you're trying to do here.
In the case of the first request I linked, the billing cycle anchor is on the first of the month (and I'd like to keep it that way). I'm updating the second phase in the schedule (the quantity, IIRC), and I'd like to keep all billing dates aligned to the subscription's anchor (1st of the month). Because I updated the quantity of the subscription directly that day (the 26th), Stripe created a mid-cycle phase that starts on the 26th and ends on the 1st (as expected). When updating the schedule, it is my understanding that I have to pass in all active and future phases. I was also under the impression (that I'm trying to confirm now) that "iterations: 1" means "end this phase on the next iteration of the billing cycle anchor (and "iterations: 2 would mean end on the anchor after next, and so on). And so, I passed "iterations: 1" in with the first active phase, which, because of the previous update directly to the subscription, began on the 26th. Unexpectedly, this seems to have caused the first phase to end on the 26th instead of the 1st. This is more in line with how the docs describe iterations, but I seem to remember being advised to use iterations in exactly this way.
So I'm trying to understand whether "iterations" is "smart" by setting the end date of a phase to the next anchor, or "dumb" by just multiplying the billing period by the number of iterations
And if it's dumb, what should I have done to properly schedule an update to the subscription for when the current period ends
So you're trying to update the quantity without affecting the current period?
I believe that request is trying to update the quantity of the phase after the current one
I'm a bit tired, so apologies if I'm not explaining well
Maybe try this https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#upgrading-subscriptions but with the start_date you want?
Learn how to use subscription schedules.
that's what I want, but the schedule already exists
so I'm updating an existing schedule
which, IIRC, means I have to pass in the start_date of the existing active phase
and I vaguely remember some problem with passing in just the start_date by itself
Damn, all these examples are just create. huh
Learn about the Subscription Schedules object and how to use it.
Ya, you need to send in the current and all future phases you want to keep.
so it seems like the way to do it is to pass the start_date and end_date of the existing phases
I think the 3rd example there is what you want?
I swear I was doing this before, and some issue arose from it so I switched to iterations
yeah the last example
If you're trying to stuff a new phase in between existing ones, I suspect you need to do some date tomfoolery.
just updating the second (and last phase)
thanks
appreciate the help!
as some api feedback, I suspect iterations would be a lot more useful if it was smart and always ended the phase on the next instance of the billing cycle anchor after the phase's start date
the current implementation of creating off-cycle phases that match the length of the price's period must be very niche
Guys, So I switched my account into live mode but how do I put it into demo mode
@light hawk They're fairly intricate, but that's to handle all the possible cases I think - which are ~immeasurable.
@sudden forge You change the mode by changing your API keys.
@mellow spear but if you did want that niche case, you could just pass in the start and end dates explicitly
whereas the current implementation makes them unreliable for the significantly more common case where you want your phases to align with the underlying subscription's billing cycle
Does it request used to create an invoice?
POST /v1/customers/cus_JkeQ9VIIQh4NKA/sources
Thank you
No, that request adds a source to a customer
Is there any way to track metadata somehow so that I can know who actually added billing info in the billing portal? (For my case, a Stripe customer corresponds to one team, and any member on the team may enter billing info, but then I want to block the billing portal for everyone except that person)
Can I have the official docs mentioned these request?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
So the purpose of this request is to attaching the payment type to the chargeable due, right? Do it is called before or after creating an invoice?
This is using the Sources API, which is deprecated in favour of PaymentMethods. This specifically is for attaching a source to a customer to be charged later. I suggest you read up on how invoices work: https://stripe.com/docs/invoicing
We did actually setup the create an invoice using the create(). When I am trying to pay in test env, it is failed (because I used the declined card as I expect) and it responded with the POST request: /v1/invoices/in_1J7YteKscTKNxsxlWipyGt2I/pay.
But when I use the real card in the live env, it only responded the POST request:
/v1/customers/cus_JkeQ9VIIQh4NKA/sources
Can you explain?
Hi folks!
I'm trying to setup AvaTax (sandbox) for the subscription. I asked support to enable pay_immediately flag. How can I confirm that the flag is enabled? (somehow in dashboard/hit api endpoint?)
Right now, trying to create subscription, I'm receiving typescript error (
pay_immediately does not exist in type SubscriptionCreateParams)
e.g. usage
const subscription = await stripe.subscriptions.create({
customer: CUSTOMER_ID,
items: [
{price: PRICE_ID},
],
pay_immediately: false
});
I don't understand what you're saying here. What do you mean by "it only responded the POST request"?
What exactly are you trying to do? pay_immediately isn't a valid parameter. Did you mean charge_automatically instead? https://site-admin.stripe.com/docs/api/subscriptions/create#create_subscription-collection_method
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Sorry if I confuse you. So in live, I use real card to pay, then it sent the POST request with /source at the end of request url, but in the test's one, it sent the request with /pay at the url. Why does it happen?
I still don't understand you, what is "it" here?
It is our backend. sending the request to Stripe API
@Rita If you make that API call and it doesn't error out due to an invalid parameter, it is enabled.
It is the live logs:
@gritty spindle Okay, why are you using the Sources API? What exactly are you trying to do?
And it is the test log:
@gritty spindle I don't know why your backend is calling two completely separate endpoints, that's probably something you should debug on your end
According to the AvaTax for Stripe documentation pay_immediately should be enabled after contact with the support ( it is mentioned here: https://help.avalara.com/FYHP/Avalara_for_Stripe/AvaTax_for_Stripe_Invoicing/Install_and_Configure_Avalara_AvaTax_for_Stripe_Invoicing#Configure_sales_tax_calculation_for_subscriptions)
to make sure that the sales tax is calculated for subscriptions, set the "pay_immediately=false" flag
There's no much documentation, but looks like sth that was working (at least a year ago)
https://dev.to/jonathanges/using-avalara-s-avatax-with-stripe-subscriptions-3k21
@barren otter I'm not sure of the status of this, so you should reach out to Support so they can confirm it for you (and confirm if the flag is enabled).
@barren otter You can get Support at https://support.stripe.com/contact/email
I emailed support, they claims it is enabled. And now I can confirm that I think
I'm able to curl api without error:
curl https://api.stripe.com/v1/subscriptions \
-u [secret] \
-d customer=cus_Jl60O1JVIDqzz0 \
-d "items[0][price]"=price_1J7ZpqKpJcQYpR3WJdNweNs0 \
-d pay_immediately=false
I see the log on customer (invoice item created description": "Sales Tax calculated by AvaTax") - so there's hope 😉 . I can listen for the event.
but going back to the code - assuming the flag is correctly enabled.
The param is invalid for SubscriptionCreateParams. How can I handle this? Do you have any example to follow?
Is this .NET?
@mellow spear node.js + typescript
Oh, @barren otter if it's Typescript you'll just have to add an ignore to it.
@bleak breach Consider I am migrating data out of stripe, I read that stripe does not provide a single API to export all data(invoice, subscription, etc), rather I would need to individually invoke each API to get data. What is the best practices I can employ when offloading all my companies data in stripe-
- Missing any data
- Not breaching rate limits
You should write in to support, who can help you export your data: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Stripe can't export any of that stuff though, so you're on the right track. You'll need to go through each API's list endpoint.
@mellow spear thank you. I wish stripe atleast provided some documentation on how to go about this
This is a teeny tiny razor sharp corner case so I'm not sure it makes sense to document it. Also it's mostly just "list all the things" which is documented.
@mellow spear you mean companies do not migrate to different payment providers once they utilize Stripe?
Hello. I have a Gatsby and WordPress as headless CMS setup. Currently, I'm using the hardcoded data in my functions > data > products.json. Is there a way to make this dynamic? Pull the data from WordPress? Thank you!
@ashen heath They do - and they often come back later 🙂 - but we only provide export of payment methods; the rest is up to you. https://stripe.com/docs/security/data-migrations
@halcyon raptor Hi! I have no idea. Is this a Stripe question?
@mellow spear I am sure that is true. But from a company standpoint, we try to mitigate risk. Anyway, thank you.
Somewhat yeah.. haha nvm 😆 thanks!
@halcyon raptor It sounds like it might be really specific to maybe some part of a Stripe plugin - is that right?
No.. I just made a simple Gatsby site with Stripe + Afterpay checkout which is working great, but currently the products.json part is hardcoded. I'm thinking a way how user can change it via a CMS like WordPress..
You'd have to build some kind of datamodel that represented a product, make an API that returned a list of them in the same JSON format, and then an admin interface to create/update/delete them. ¯_(ツ)_/¯
@mellow spear I have seen Stripe customers,
- Call Stripe APIs and store responses in local db, and fetch data locally when possible OR
- Call Stripe APIs, but not store any data locally
Do you have any recommendation on above approaches ? Is there a drawback in 2nd approach of more latency? Or simplicity of second approach leads to better integration with stripe.
Also as you said I need to export data manually, storing information in local db helps mitigate the need to manually do migrations later
You should store whatever data locally that makes sense to store for your application, that minimizes the number of API calls you need to make as part of your user flow or reporting needs. You can use webhooks (https://stripe.com/docs/webhooks) to keep your local models up to date based on changes in Stripe.
@mellow spear That makes sense. Thank you. Maybe documenting this helps newbees ¯_(ツ)_/¯
Thanks for your help. I figured out why it happens. We have a legacy code use
await global._Stripe.customers.createSource(customerStripeId, { source: source.id });, so the source is added to the customer first.
In the live env, I use the real card and our code calls above function and it stops because of 402 Error Code due to await.
But when I use the failure card in test env, our code passes the function above and then calls the create to create invoice and pay. Do you know why?
I facing some issues on my payment page with Stripe : my website link: quickaro.com
kinldy look into this
I have no way of knowing why your code isn't working, you really need to debug this yourself. You should start with trying to find out why you are attempting to attach a source and what the exact error is.
Are you getting an error?
Yes i am getting an error.
What's the error you're getting?
This is the error.
Are you a developer yourself?
Yes but not a full time developer
Okay well that's not an error, that's just you alerting a javascript object. If there's an error it would show in the developer console
How to ressolve this?
I use my stripe api keys to accept payment from another website but now it is not working on my second website
@vapid crescent You'll need to debug this. You should start by figuring out what exactly is going wrong and work backwards from there
hello everyone!
i have this error whereas i have put confirm = true in payment method..
The parameter payment_method_options[card][network] cannot be used when creating a PaymentIntent unless confirm is set to true.
do you know what is happend
Request req_bE7V0tny1ahHBF
Hello all, I might have a very very basic question for you guys. I have a stripe payment link embedded into my typeform and I want to find out how I can charge VAT for domestic (UK) based customers. Is there no way other than to change it to a billing system (from the payment link I use currently) asking for the customer address so i tcan enter the appropriate tax rate? Is there something I can do with Zapier for this?
i want to change the card i get payments into. how can i do so ?
Hi, I am trying to integrate Stripe, and just want to authorize the card with 500 USD but dont want to charge yet
I want to charge on some conditions, if customer doesnt fullfil promise we will charge 500 otherwise not
anyone did htis with Stripe?
@quasi flicker I'm not sure why that's not working. Have you tried removing capture_method and setup_future_usage?
@polar orchid Hi! I'm not sure how you'll be able to do that without Checkout and server-side code at this point. https://stripe.com/docs/payments/checkout/taxes
@violet bane Hi! I'm not sure what you mean?
@copper hull Hi! You want to use auth and capture: https://stripe.com/docs/payments/capture-later
I am confused, I want to get authorization for 500 USD But dont want to charge
@copper hull Yes, you need to use the code at the link I just sent you, for auth and capture.
that amount will take from customer account or not?
It will put a hold on their card for that amount.
thanks a lot
I have remove all useless thinks
@quasi flicker Ok ya, you need to have a payment method for this.
I suspect you're trying to make this only accept VISA cards, but I don't think you can do it the way you're trying to do it.
In that example case, they have the Payment Method ID.
yes i want choose the network for my dual brand card
Oh, ok. Then you need to have the Payment Method already created, and use its ID.
okkk because i don't have it.. it's at the moment of the creation of payement intent
Then how do you know it's a dual brand card? You'll have to create the Payment Method before you can know that - and before you can do what you're trying to do here.
when there is 2 items in network like "carte_bancaire & visa || carte_bancaire & mastercard )
Right, but you can't know that until you have a Payment Method.
So you need to use that Payment Method here.
After you've created it.
ok i will check how create paiement method and return id into my paiement intert
intent
thanks a lot @mellow spear
Hi everyone.
I am wondering how to integrate Google Pay in Android app with Stripe. I followed this guide – https://stripe.com/docs/google-pay, but I can't understand how is it possible to react on payment confirmation results with Stripe at the very last step (marked on screenshot). Under the hood this method starts some coroutine, which is not clear how long it could execute and which results it could provide.
As far as I understand, there may be errors in the payment, or it may be required to proceed the 3D Secure authentication, or something else. Where should I add some special handling for such a cases ? Or maybe it is not necessary at all ?
Tried to find some explanations in Stripe docs, but to no avail. Can someone give me advice about it ?
@rustic yoke hi there! you get the results/errors in onActivityResult
look at https://stripe.com/docs/payments/accept-a-payment?platform=android&ui=custom#android-submit-payment (since that's the guide for using confirmPayment, the Google Pay doc only touches on it, you need to kind of combine both guides here)
but in terms of .e.g 3D Secure, that function will handle showing it, you get the overall result in onActivityResult
fyi, 429 object lock issue seems to be ok for us today. We had 8 failed transfers this morning, but they were all from yesterday afternoon (uk time). So looks like you did manage to resolve that
@frosty coyote yep, there was a response yesterday and a fix deployed
Yeah, just confirming back it seems to have done the trick 👍
glad to hear it solved the issue! Thanks for raising it, you flgged it at the same exact time someone else internally pinged @meager hawk to discuss this which allowed us to react quickly
@meager hawk so do i understand correctly, that after the call to "stripe.confirmPayment(CheckoutActivity.this, confirmParams, null)" there may appear some results in "onActivtiyResult()" of Activity ? But at the same time they may not appear, if the payment is confirmed successfully ?
@rustic yoke there is always some result, either success or failure
@meager hawk thanks a lot !
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// Handle the result of stripe.confirmPayment
stripe.onPaymentResult(requestCode, data, object : ApiResultCallback<PaymentIntentResult> {
override fun onSuccess(result: PaymentIntentResult) {
val paymentIntent = result.intent
val status = paymentIntent.status
val outcome = result.outcome
Log.d("onPaymentResult", "got status $status")
Log.d("onPaymentResult", "got outcome $outcome")
if (status == StripeIntent.Status.Succeeded) {
// "Payment succeeded"
} else {
// "Payment failed (like a decline)"
}
}
override fun onError(e: Exception) {
// "Payment failed w/exception"
}
})
}
it's vaguely like that, but the docs linked above also cover it
Hey guys!
Do you know if it is possible to prefill the address form on checkout? Since the customer already filled something like that on my website, I don't want him to repeat the address on the checkout.
@analog marsh hi! It's not possible right now I'm afraid.
I'd maybe refactor things so you have only Checkout collect that information and then you can read it from the API (https://stripe.com/docs/api/payment_methods/object#payment_method_object-billing_details) for your own records.
I think I'll just take the shipping out, and pass it as an item, I don't see any better way. Plus if a customer already has an address from past orders, makes no sense to fill it again on stripe checkout, so I'll avoid that flow that you suggested.
Any reason why stripe doesn't allow the payload to have the shipping address?
I don't speak Spanish I'm afraid, is that section the Shipping address or the Billing address?
Shipping
It's portuguese actually 😛
I'm using a shipping rate, that's why I have that form
but I guess I'll just remove it and do what I've said, pass the shipping as an item, unfortunately.
I see. We don't support prefilling this right now or loading it from the Customer object in any case. It's definitely a feature request we're tracking though.
Hello again support.
Do you have a list of the different payment workflows Stripe supports?
I was working on a metered subscription model, but my employer would like me to list all "normal" workflows and estimate the implementation time and the business will assess which one they like more.
Thinking there's probably a list somewhere?
Probably something like
1: Subscription
2: Metered Subscription
3: New Invoice + Create new customer
4: New Invoice + Charge existing customer
But put into Stripe terms (because I can google your lingo).
@drowsy glen there's not really a list no. It's more like you would think about what flow makes sense for your business needs and then see from Stripe's documentation how to implement it. Everything you mention there is supported(I can give you links if you want).
https://stripe.com/docs/billing is probably the closest to a list but not quite the same
Yea that's what I imagined as well.
Are there any flows that I have not listed there that would be "normal"?
I've already got links to Subscription and Metered subscriptions. Happy to grab links for the others though :)
I'm not sure what you mean by "normal", since it really depends on your business needs
Mmm bit hard to define what I don't know myself.
Stripe is just providing the tools/infrastructure, your business should decide what payment flows it needs.
yep but it's your business to decide how you charge your customers and when really
Alright well I'll go with the assumption of the 4 workflows then that I have above. I'm sure if theer's anything else it will show up in your docs.
taa
1: Subscription
https://stripe.com/docs/billing/subscriptions/checkout
2: Metered Subscription
https://stripe.com/docs/billing/subscriptions/metered-billing
3: New Invoice + Create new customer
https://stripe.com/docs/invoicing/integration
4: New Invoice + Charge existing customer
same as above but instead of this step : https://stripe.com/docs/invoicing/integration#create-customer-code you just load the cus_xxx ID of a Customer object you previously created on Stripe
Hello everyone, I would like to know who can help me or shed light on my problem.
I have a Stripe account that I use as a payment gateway, now they tell me that I must activate the fraud radar to avoid problems.
I have already acted, but they send me an email where they suggest that I write rules for payments, but I do not understand the documentation or how I should do anything. I am not a developer.
:question: Have a question about your account @vocal wagon?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
I just want to report that taxes might not work properly. I reported that yesterday for my case specifically (it was tax calculation for Croatia), now it's fixed. I'm testing for other countries like USA and taxes are not being calculated
Yesterday Stripe's feedback: "Looks like a bug in tax calculation at the moment that we're working on a fix for. The origin address in Luxembourg, account not registered in Luxembourg (registered only in Croatia), and we treated the tax location as Luxembourg. No registration there => tax is zero. (again, that's a bug, not expected behavior)"
I'm not sure if that's general bug or it is specific for someone's account
@vocal wagon well for the US, part of this might be https://stripe.com/docs/tax/supported-use-cases#physical-goods , as I understand it we don't calculate tax for a physical good because "Stripe Tax will apply the zero rate if the country from which the goods are shipped is different from the country to which the goods are shipped."
maybe try with a Price for a Product with a digital Tax Code like software/e-books
I'd really suggest raising the feedback with https://support.stripe.com/email though as this is a new and beta feature and it's easier to have a longer dialogue and sync with the product teams when you're in touch with our support team with access to your account than ad-hoc on Discord
Thanks for that
Hello, I have a question on Amex Card. Our customers trying to register thier Amex Card but unable to do so. Looks like stripe is not allowing the Amex . We had the same issue with multiple customers
Stripe accepts the amex brand, so there shouldn't be a problem there. What error specifically are you getting?
Hi All! I am using the Veriphone Card Reader for capturing payments and I have a question for handling Subscriptions. When I create the Subscription I can extract the Payment Intent from the Invoice object, however I need to set the 'payment_method_types' to 'card_present' in the Payment Intent--is that possible?
PS. This would just need to happen for the first Subscription payment
@weak linden it wouldn't work exactly that way as such unfortunately. What you would do basically is process a one-off payment for the amount of the first billing period at the start of the subscription and save the card to a customer during it(https://stripe.com/docs/terminal/payments/saving-cards#saving-payment-intent-card)
When the payment completes you can create a subscription for the customer to charge that card on a recurring basis. You'd want to set trial_end when creating the subscription to the intended first recurring date(or use https://stripe.com/docs/billing/subscriptions/billing-cycle#new-subscriptions with proration disabled) when creating the Sub to avoid double-charging.
ok roger that @meager hawk and thanks!
I do agree it would be better if you could just confirm a Subscription Invoice's first PaymentIntent with a card_present payment
hi, there is still some issues with India taxes.. GST
In the long run I think that will be possible but it's not integrated that way right now.
@short owl hi there! Can you clarify your exact question or confusion or how I can help you?
Thanks @meager hawk -- Yes, the problem with having the the first Subscription payment as a once off payment is that it messes with our integrations. We need to build a way to tag the once-off payment as being part of the recurring payment. We will figure out a way!
I completely understand, it's not great, since you won't have an Invoice for that first payment. The "process a one-off payment then start a subscription with a trial period" is a bit of an escape-hatch hack but I do agree we should have a tighter integration here between the products ideally :/
on the subscription page I cannot see the additional tax which my client has to pay while taking our subscription.. In India we have ''Amount + GST'' but in stripe I am unable to add the GST (Goods and Services Tax)
@short owl I'd start with https://stripe.com/docs/billing/subscriptions/taxes to explain how you would configure things to add tax(it's not automatic)
Hello Team, I have a question on Stripe card hold . One of our customers, tried using a debit card with low balance. And hold on the card went thru fine without any errors
the code we are using to hold
ChargeCreateParams chargeCreateParams = ChargeCreateParams.builder() .setAmount((long) (amount*100)) .setCurrency("USD") .setCapture(false) //to hold the funds .setSource(cardId) .setCustomer(custId) .build();
Charge.create(chargeCreateParams);
but while releasing the holds/funds we are getting insufficient funds error. We want to capture this error while holding the charge .is it possible ?
thanks... will follow the steps
@agile hinge hmm, interesting. Do you have the ID of the Charge ch_xxx in question where this happened?
one last query.. to setup the Taxes do we have to code it or it can be done on UI itself ?
You can configure TaxRates through the Stripe dashboard yes (https://dashboard.stripe.com/test/tax-rates)
@meager hawk there are two charges 1 with hold another one with transfer
charge id: ch_1J6GZWKSH5Oaf4kseHq83MlQ (hold - successfull)
charge id: ch_1J7U3xKSH5Oaf4ksiam20kF8 (Transfer - failed)
@agile hinge I'm not sure what you're asking really. That's just a normal decline, it's not an API issue, any card can be declined by the issuing bank at any time for any reason.
but while releasing the holds/funds we are getting insufficient funds error
that's not what you're doing
you charged the card once with ch_1J6GZWKSH5Oaf4kseHq83MlQ and then you charged it again in ch_1J7U3xKSH5Oaf4ksiam20kF8
if you wanted to transfer funds you would use https://stripe.com/docs/api/transfers/create for example, not create a new PaymentIntent(which charges the card again)
please test in Test Mode too using your test mode API keys, not live mode.
@meager hawk Here is the usecase
- we have an app where customer creates an order. while creating the order, we hold the funds on the customer card
- A day after, supplier comes-in and takes the order and completes in a week
- Now we reverse initial hold and create a PaymentIntent with destination account
so we are not charging twice
This is an old plan we created
{ "id": "price_1IkvpQLABPmBqoeeJcf6Cw99", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1619548812, "currency": "gbp", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "Genei Basic", "product": "prod_JNhDPO3Ju25CwY", "recurring": { "aggregate_usage": null, "interval": "year", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 4788, "unit_amount_decimal": "4788" }
Vs a new one
@fallen ether hey! what are you seeing?
{ "id": "price_1J7UB3LABPmBqoeeUlsT9d2z", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1624924065, "currency": "gbp", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": "Price 29/06/21", "product": "prod_JNhDPO3Ju25CwY", "recurring": { "aggregate_usage": null, "interval": "year", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 899, "unit_amount_decimal": "10788" }
see unit_amount
vs unit_amount_decimal
called using the same nodejs stripe client instance
@agile hinge well you are charging twice, you're just refunding the first charge. So as I said really, I'm not sure what I can say. It's a decline, any payment can be declined at any time for any reason so this is something you'll have to be able to handle. You can't assume things about how much balance the card might have, that's not really how this works. You are charging the card again for the supplier taking the order, so that's its own individual payment and you'll need to handle the possibility of it declining.
@fallen ether thanks, looking..
cheers @meager hawk
@meager hawk we checked with our customers, he confirmed that he didn't have balance by the time we initiated the first charge (hold) . We see the same behavior with multiple customers
@fallen ether how exactly are you getting the JSON for that second example, what code/endpoint do you call? I'm not seeing where 899 could be coming from directly
@agile hinge any payment can be declined at any time for any reason. You can't assume things about how much balance the card might have, that's not really how this works.
just calling stripe.prices.retrieve(plan.priceId)
//Idempotency keys (https://stripe.com/docs/api/idempotent_requests)
//are added where appropriate to prevent duplication.
maxNetworkRetries: 2,
apiVersion: '2019-12-03'
})```
the old plan was created a while ago
the new plan was created yesterday
@meager hawk let me make my question clear. When I try to hold the funds on a card (capture =false) which doesn't have sufficient funds in it, the Stripe API will throw the exception or not ?
@fallen ether hmm, this is very strange. Digging into it
let me log them serverside
this is in our react app
maybe something is mutating the result
@agile hinge depends. That's not how it works. We try to charge the card, the bank might decline it. If they do, then yes we'll throw an exception. But the bank might decline it even if the card has the funds, or they allow it when it doesn't, you and Stripe don't have insight into that and it's not an exact science.
as the merchant you just need to catch declines when they happen and robustly handle them by asking the customer to try again or try a different card.
yeah I was going to say that, I can't see how the JSON we'd return can have anything but 10788 in it so it might a display-side problem
Hi, is it possbile to get from the API the fees that stripe will charge for a payment?
(i got the webhook, expanded the properties with a following call, but can't find details anywhere)
It's in the Charge's balance_transaction object -- https://stripe.com/docs/api/charges/object#charge_object-balance_transaction and then https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-fee_details
hey i need help
What's up?
i m creating an app and i have intgrated the stripe in ios and android both . The scenario is like that the person can login from different social logins like facebook and apple but my problem is that its showing different payment methods for same stripe id how it is possible
When you say "stripe id" what type of object are you working with?
customerid you can say
ok, and how are you retrieving the payment methods? Do you have the ids of two different requests from your Dashboard logs that aren't getting what you're expecting?
let vc = STPPaymentOptionsViewController(paymentContext: paymentContext)
navigationController?.pushViewController(vc, animated: true)
i m using this to show payment methods by passing paymentcontext
which is Stppayment context by passing customercontext with empheral key
this is under ios
Hello,
I would like to know if it is possible to recover the customers of my STRIPE account that have been deleted by an API.
My customers were registered with all their information, is it possible to recover all these customers with all their information that were overwritten?
Thank you 🙂
@meager hawk a have successfully caught the result in onActivityReulst() after call to stripe.confirmPayment(CheckoutActivity.this, confirmParams), but then call to stripe.isPaymentResult(requestCode, data) returns false, and attempt to get payment result using stripe.getPaymentIntentResult(requestCode, data!!).intent leads to InvalidRequestException. Could you please tell why this is happening ?
Sure. Whether its on iOS or Android shouldn't really be involved here though (other than needing to change some code). You can find the request id underlying the GET request via https://support.stripe.com/questions/finding-the-id-for-an-api-request then share that id here. If you can find two requests that give different results, I can advise on what's different there.
You'd need to know the id of each deleted Customer and then you can still retrieve them individually https://stripe.com/docs/api/customers/retrieve
This property cannot be expanded (balance_transaction) (calling the payment intent) > i need to call the balancetransactionservice
Thank you
karllekko likely stepped away but I can see if I can help -- what's the request id where that exception gets thrown? That can be found from https://support.stripe.com/questions/finding-the-id-for-an-api-request
It's on the Charge, not the PaymentIntent, so you'd expand charge.balance_transaction if you're looking at a PaymentIntent
Another question, for the recovery of the customers they will be able to be reimported in the customer part of my stripe account ? As if they were never deleted ?
Nope, you'd create a new Customer. The deleted ones are deleted for good but still retrievable for historical purposes.
Right now I cannot access my dashboard due to lack of credentials. Is it possible to retrieve this request ID from some object in runtime while debugging ?
How to know if the user has finished onboarding or not using https://stripe.com/docs/api/accounts/retrieve?lang=python
You'd look for the appropriate capabilities to be enabled (usually that's card_payments) https://stripe.com/docs/api/accounts/object#account_object-capabilities
and what is the diff between charges/payments/payouts disabled or enabled in accounts details
Those fields are also one you can check, depending on what you're looking to verify.
They're self descriptive. Charges is the account can create payments, Payouts is the account can receive payouts. see https://stripe.com/docs/connect/account-capabilities
after registering on our website, people will be taken to onboard for marketplace payments. and the users who haven't finished onboarding, I want to offer them a chance again and give them link to onboarding page
Greetings, I have a question about saving cards. How would I get to save a user's card so that we can charge them if they are late with payments or save them for easier use? We are currently using NodeJS and React native for our stack. I am using the prebuilt UI for checkouts, and once the user fills out his form and selects "Save Card for future use" we dont get any info about it on the server
I am using Express
since express is for marketplace according to docs
so if "charges_enabled" is true this means that they have completed onboarding or it also means they have passed the verification?
requestId in InvalidRequestException is null. I think it is worth noting, that I currently use TEST environment of Stripe, and as for PAYMENT_INTENT_CLIENT_SECRET, that I have to obtain from my backend – right now I use simple mock string instead, because backend is not configured yet. Could there be a problem because of this ?
If you're saving a card as part of an initial payment then you would list the CheckoutSession's Customer's PaymentMethods https://stripe.com/docs/api/payment_methods/list , or if you're just saving the card it's https://stripe.com/docs/payments/save-and-reuse?platform=checkout
then it's https://stripe.com/docs/connect/express-accounts#return-user for Express
essentially
in step 5 https://stripe.com/docs/connect/express-accounts
They say, "details_submitted"
If you're trying to complete a payment, even in test mode, you'd want to use a real (test mode) PaymentIntent and client secret
As that same section notes:
This doesn’t mean that all information has been collected or that there are no outstanding requirements on the account. This only means the flow was entered and exited properly.
If you continue reading you'll see:
A user that’s redirected to your return_url might not have completed the onboarding process. Use the /v1/accounts endpoint to retrieve the user’s account and check for charges_enabled.
Thanks a lot !
correct me if I am wrong
details_submitted = All the documents are submitted and no new docs are required at the moment
charges_enabled = onboarding is completed + verified
I wouldn't even worry about details_submitted, just check charges_enabled
but in this way, I can't differentiate if the fault is at user side or stripe need time to verify
Meaning, why should I force user to onboarding page if they have already submitted the documents and they are under verification process
unless verification takes a min and not 48 hours
Then you'd check https://stripe.com/docs/api/accounts/object#account_object-requirements-pending_verification to see what's pending verification
Hello there, I have a question regarding invoice item. How do I send the unit_amount of 0.00001 ? Somehow my unit is not matching. Since the quantity will be around 700,000 - 800,000 this amount is also significant in our billing,
If we have a platform in the US and have international connected accounts, but handle all our payouts in USD, are there any additional fees for that? It's difficult to tell from the docs
In that case does it matter whether the connected accounts are in the US or not?
When I try to submit my card using confirmPayment api, I submit it as per the docs , however I get an error saying {"code": "Failed", "declineCode": null, "localizedMessage": "Card details not complete", "message": "Card details not complete", "stripeErrorCode": null, "type": null}
Generally you'd only have to worry about currency conversions https://stripe.com/docs/connect/currencies
Okay. So if we're dealing strictly in USD, there's no downside to using standard accounts and direct charges for all our users, whether in the US or international?
I wouldn't be able to speak to the "no downsides" question, the support team can confirm your specific account's details and concerns via https://support.stripe.com/contact
really depends on what you consider downsides, specifically
Yeah we've been trying to contact support for about 2 weeks and had no luck whatsoever
Hey, how can I make it possible to send the payment id in the email when completing a payment?
@warm nimbus hey! it depends a little by what you mean by "payment ID". If you add a description to the PaymentIntent/Charge when creating it though, that will appear on the email receipt the customer gets so you could use that for some unique ID you want them to have : https://stripe.com/docs/receipts#customizing-receipts
@vocal wagon this is using React Native right? This is maybe a dumb question, but did you actually enter a full credit card number/expiry/CVC into the CardField when testing this? If not I'd expect to get that error.
how long it takes for Stripe to verify documents and enable charges/payouts?
@upbeat grove I don't think I can give a specific timeframe since it depends on many factors, it's as soon as it can be.
I am just wondering if there will be a waiting period. So that I can show my users that you have already submitted your documents and you should simply hold your hourses
I managed to fix it, yes I didn't realize it was connected to the CardField component under the hood. We are one step closer, however the card is still not getting saved for some reason
@meager hawk I get a positive response once the payment is finished, with things like amount, client secret , payment method Id and so on, but I still don't know how to retrieve/save the card afterwards
@warm nimbus I'm not sure what that is exactly or what it's a cropped screenshot from or what you're trying to accomplish. I'd maybe start by reading https://stripe.com/docs/receipts which describes how customers get a receipt email. Your screenshot doesn't seem to directly relate to Stripe though(you can listen to a webook in your code and generate your own entirely custom receipts if you wish with your own custom data and IDs, maybe that's what that is).
@upbeat grove yes, there's a wait, it's an async process and you get a webhook when the status is updated. https://stripe.com/docs/connect/identity-verification-api#verification-process for example. So you should tell the user something like what you say, yes.
@vocal wagon there's a mistake in the docs I think, at https://stripe.com/docs/payments/save-during-payment?platform=react-native#react-native-create-payment-intent , you need to pass customer when creating the PaymentIntent
@meager hawk So, natively there is no way to send the payment id, I would have to do a webhook and customize the emails...
if you do that and confirm client side with SetupFutureUsage the payment method would get saved, unfortunately the docs there don't mention you have to pass customer . You can see the other languages have that : https://stripe.com/docs/payments/save-during-payment?platform=ios#ios-create-payment-intent . Sorry for the difficulty that causes.
Good morning Stripe. We have a couple people who are connected to Stripe Accounts but could not link up their card or bank account info for payments/payouts. I believe the reason is that they are international and could not change their country in Stripe to anything other than "US". If that is the case, how could we remedy that?
An example account is: https://dashboard.stripe.com/acct_1J6qgdRV36svnh7s/test/dashboard
@warm nimbus I wouldn't say that. As I said : it depends a little by what you mean by "payment ID". If you add a description to the PaymentIntent/Charge when creating it though, that will appear on the email receipt the customer gets so you could use that for some unique ID you want them to have : https://stripe.com/docs/receipts#customizing-receipts
@mossy wren could you expand on what "could not link up their card or bank account info" means? Do they see an error message of some kind or what are they trying?
You mean I should pass the customer on the client side when setting up an intent?
@vocal wagon no, you pass it on the server side, when creating the PaymentIntent.
@meager hawk I don't have direct communication with the customers at the moment, but I believe they are unable to change their country in stripe.
@mossy wren this sounds like something you'd want to contact support for instead, but have a look at https://dashboard.stripe.com/settings/connect/express , since that controls the countries users can select from.
the example you have is an Express account you created and prefilled as US and then the user changed it to the UK during onboarding I believe.
Hi. When switching from a connect integration to an express integration, we have some concerns about refunds. There are some automatic refunds on our platform, e.g. if a yoga teacher cancels their class, the students get a refund. If they yoga teacher moves from their connect account to their new express account will their be any issues?
@meager hawk Thank you. We've previously selected all the countries on the connect express dashboard you've shared. Prefilling it with US was an oversight on our part but we've already removed that property when we're creating Stripe Accounts. I'll reach out to support and see what they can do for these accounts experiencing issues. TY.
@lyric iris I'm not sure what "from a connect integration to an express integration" means(Express is also Connect). It's hard to answer really since I don't know what you mean by automatic refunds, since it's not 'automatic', it's some business logic you've written to call our API so it's really hard for me to have context on it.
Refunds work very differently depending on the charge funds flow you use so https://stripe.com/docs/connect/charges#refund-creation might help! If you have more specific details I can try to help clarify things.
So right now we have customers who are connected with a regular connect account and use direct payments. We have automation in our platform that refunds people based on certain scenarios. If 1) a buyer makes a payment to a seller, 2) seller signs up to our new express integration, 3) a refund is actioned, will this all flow through as prior to the express account?
@lyric iris it depends if you're going to be using Direct Charges or Destination Charges with the Express accounts.
you'd usually use Destination Charges for Express, so the refund flow is completely different than with Direct Charges — the payment objects are created on your platform account and the refund comes from your platform balance and so on. So it's different and I wouldn't expect your existing code/flow to work, at a high level.
OK thanks
@meager hawk I logged into my computer and played exactly what I want to do, is it possible to do it natively or do I need webhooks?
@warm nimbus I don't follow. It seems like you've successfully gotten what you want?
Currently automated payouts have 7 days delay. If I do manual payouts, Can I use the funds which customers has given or those won't be for 7 days either and I will have to use my own money to payout?
@upbeat grove there's no way to pay out in less than the payout schedule no. So it's 7 days for the country your accounts are in, that's the minimum time it will take. If you use manual payouts, you can only pay out available funds (https://stripe.com/docs/api/balance/balance_object#balance_object-available) and funds move from pending to available after the delay, so like 7 days in that case.
aha, so basically it's not the payout delay. but the delay for the funds to be available
which is eventually delaying the payout
yup, it doesn't really speed up unless I manually add funds in advance
so it depends on the Stripe account of the platform or the business location which is running business on the platform?
because you have to wait for the funds to be available, and then create the Payout object and wait for it to transfer/settle to their bank. On automatic payout schedules we actually create and send the Payout a little early so it actually arrives to the bank on the 7th day
I believe it depends on the platform's location, if using Destination charges
so if we register our Stripe account in USA then we can do the payout with 2 delays to any country
USA to UK in 2 days and UK to USA 7 days
hmm. Not sure. That doesn't sound right actually. It's a good question, I don't have a great grasp on this
it's easiest to just test it in test mode and look at available_on on the balance transactions
sorry, I'm really busy right now or I'd test it directly for you
good idea, will do that 🙂
and the rule of delay, effects only connect feature or also Payments/subscription?
@upbeat grove it's for all incoming payments really
it doesn't really change depending on it being a one-off payment or part of a subscription or Connect set up
@meager hawk For the express onboarding process, we are using Stripe API's stripe.accounts.create to generate a connected account for our user. One question we have is how we could let the user select their own country. We've seen examples of other apps using express onboard and it allows users to select their country from a dropdown; however, our customers are not seeing the country-select option during their onboarding process.
reposting: #dev-help message
@mossy wren they should get an option, and can pick from the countries you have on that Dashboard settings page from earlier. That's what I see when I use stripe.accounts.create and pass country:IE for example .
@shut blaze ah, sorry it was missed. But hmm, not really. Stripe doesn't do any authentication of the customer. We assume you do that and then you just create the PortalSession for that cus_xxx. If you want a certain member of the team that cus_xxx corresponds to , to not have access, then you need to have that as part of your authentication layer involved in deciding who the Customer is to create the PortalSession for.
Hi , we r integrating stripe into our flutter app following this link https://github.com/flutter-stripe/flutter_stripe . I have a question at the checkout page , is that customisable? Also, the country & region field is that neccessary ?
@meager hawk @mighty hill
@summer wyvern it's a PaymentSheet from our native SDKs basically, so it's slightly customisable per https://stripe.com/docs/payments/accept-a-payment?platform=react-native#customization for instance. Not sure how you do it in Flutter.
and the country is asked for because collecting the customer's postal code helps to prevent fraud(https://stripe.com/docs/disputes/prevention/verification#avs-check) so it's not recommended to disable it(and I'm not sure you can, it's a very strong recommendation).
can we save the credit card info , so that next time user doesnt need to key in again? just seamless checout
as i can see from the article, it seems it is only customisable as for the design style and merchant name . How about adding a reminder sentence? for example we want to tell the user that this transaction is PCI compliance and secured.
As far as I know that's not an option, no.
u r referring to the question of savin cards info or the adding text?
adding text.
got it
to do that , we have to use the custom checkout flow method right?
not pre-build
yes
how about this?
as for saving cards, as far as I know it works
it works in my iOS app that uses that same PaymentSheet component
flutter?
can u guide me how to enable that?
I can't really, since I don't know how that Flutter library works if there's documentation for it. But I think it just works out of the box.
That's the point of the PaymentSheet and it's why you create a Customer object and Ephemeral Key : https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet#add-server-endpoint
it just works if you set it up to use those objects, as described there.
ok thanks!
Can somone PLEASE HELP ME ...... I need my customer payment info and data migrated to FreshBooks
Stripe says to contact them and they will help with data migration...... nobody has answered for days and its almost time for the recurring payment to hit
When you initially contacted them was it in an email or through chat? There isn't much I can do in this channel, but I would suggest trying to contact them again
Hello again. Is there a way I could un-reject a rejected stripe account? I meant to delete it initially but chose the reject on accident.
Hello! I don't know of a way to do this yourself, but I know that this is something we can do internally. If you write into support they should be able to help you out (https://support.stripe.com/contact)
How do I get the "Custom unit label" on my product to show up on Stripe Checkout? Right now Checkout shows "Qty". I want it to show "Seats".
Hello! Let me try a couple of things out and get back to you
@robust relic Unfortunately, the only place where Checkout displays customized unit labels is for metered pricing. This would be controlled by setting unit_label on the Product, and would look like this in the Checkout session:
Thank you. Could this be added as a suggestion for a future update?
Yup! I can definitely take your feedback and pass it on 🙂
Awesome! Thank you.
chat and phone have be "unavailbale" for me
I'm sorry about that - the only other suggestion I have is to contact Freshbooks and see if they have any processes they can start on their end to get the migration moving faster
yup doing that now thanks boss, so sad to be leaving stripe
got banned with 40k in mrr first month of launch 0 disputes....
"frozen"
No actually i want to know if this is possible to do without using webhooks?
@warm nimbus Hello! @meager hawk isn't on right now, but let me take a look
@warm nimbus Are you just asking if it's possible to send your own custom payment success/receipt email without using webhooks?
Anyone know how datamigration works? I see stripe prepares a JSON file
Are there any reasons why I couldn't have multiple "locations" at a single physical store front? One of our locations will have two active terminals at all times, but they will basically be assigned to specific employees. If I call the locations "Employee #1" and "Employee #2" vs having both readers in that location and force them to first select their location, then select reader I'm worried it might be more complicated than just having them select which reader they want things going to in one go
I don't think there are any issues with having multiple "locations" at a single address/store front - and I believe other users will have multiple locations w/ the same store front that have different desk numbers/floors/etc.
okay, just easier for me and the end users if the "locations" are basically 1:1 with a single active reader. I'll still present both locations for the people in that storefront, so if they need to send the transaction to the other counter a few feet away they can, but easier to just select once vs selecting "City A" then "Employee #1"
I don't know any of the specifics 😦 - I know there's a lot of rules because of PCI compliance, but that's about it
Hi. I have a question about Stripe Taxes. Is it designed to automatically calculate taxes on checkout based on user's address?
Hey,
I want to set up a payment link where my customers have 2 options
- Pay 1 payments
- pay 2 payements
is this possible?
Are you referring to taxes + checkout (https://stripe.com/docs/tax/checkout) ? If so, then yup! It's designed to automatically look at billing or shipping addresses that the user provides during Checkout to calculate tax
Unfortunately no, payment links do not give the option to break up a payment like that.
Okay
no problem
How would you suggest for best practice execute my plan?
Currently I have a link set up for 1 payment (I can send them that, if they ask for full payments)
How could I create a second link, that only allows me to charge 2 months worth of payments?
There isn't a way to do that - payment links are pretty limited right now, and there's no way to create a subscription w/ an already agreed upon cancellation date (after two months). The only solution with payment links would be create the subscription and cancel is separately in another request
Hello, it does not allow me to log in
@dim hearth hi, you gave me some help yesterday regarding payouts and transfers, and helped with some questions around different balances. You didn't know too much about the financing balance and stripe capital, so I thought I would let you know it does seem to work even though the docs do not include that type. We are currently successfully paying from financing balance.
Awesome! Thanks for circling back 🙂
Hmm.. Okay not ideal, but nevertheless a solution I can work with
Do you guys have a feedback systems?
Also do you have a product road map I could look at?
hello,
i have a new setup in my website, i sell Jewel box by subscription.
Since Two week, my customer pay, i have all card information and everything but no "CUS......" so i can't make a rebill.
Do you have any idea if i can make something for make rebill or the only one solution is to send a mail to my customer ?
Because i have like 200 customer without "CUS" and i don't want loose
Thanks in advance 🙂
I can provide that feedback for you on my end, but there isn't a public product road map
ps: i have "pm" and "pi" for futur payment
Hello! Are you saying you have no saved customer objects (cus_xxx) on your account?
Exactly, but I have the future payment data
@dim hearth Awesome!
Keep up the good work!
very strange, before i have all data and "CUS_XXX" and now only data but no "CUS_XX"
By "future payment data" do you mean payment method objects (pm_xxx)? These are only usable with future payments when attached to a customer - if they aren't attached they are only good for one-time use (see https://stripe.com/docs/payments/save-and-reuse#web-create-customer)
@dim hearth yes i have only "pm_XXXXXX" / "pi_XXXX"
Yeah, that's not going to work then. You'll need to mail your customers to re-collect their payment data and attach it to a customer object to make sure it's reusable (see https://stripe.com/docs/payments/save-and-reuse). If you send over a pm_xxx object ID I can double check that this is the case
@dim hearth ok but i have this information
This payment configured pm_XXXXX for future off-session payments
So normaly if i send ocer a pm_XXX object ID it should work no ? 😩
@junior terrace Can you send over a pm_xxx object ID? I can double check how you've got it set up
yes i send you in 5min (iam on my phone and stripe on my computer)
But i don't find doc about this
@junior terrace Which doc are you looking for?
for make rebill with pm_XXX
@junior terrace It's covered in the link I sent over earlier - the specific section you want is https://stripe.com/docs/payments/save-and-reuse?platform=web#web-create-payment-intent-off-session
Good afternoon. How do I set up a recurring payment on woocommerce?
@dim hearth yes but this solution ask "CUS_XXX" as weel and i don't have ...
Estou no Brasil
Yes, that's because these pm_xxx objects are only resusable when they have associated customer objects - that's why I said you'll probably need to contact your customers and re-collect their payment data
this is bad news but ok id i don't have choice
Most woocommerce customers use a plugin to integrate with Stripe - I'd suggest you start here (https://woocommerce.com/products/stripe/)
Yes, I already installed the plugin and enabled it, I even made a successful payment. But nowhere is how to set up a product for recurring billing.
In the link I sent over it say that for recurring payments you need to use https://woocommerce.com/products/woocommerce-subscriptions/
When you create product you can choose "recurring payment", you need to create new product
I also installed this plugin
Have you checked woocommerce's docs? We don't build the woocommerce plugin, so this is not the best place to ask these questions
I created a product configured as recurring.
Maybe I didn't express myself correctly. If the customer buys this product, will the recurrence be automatically configured on Stripe?
yes
but you don't see nothing on stripe in "subscription" but woocommerce make payment every month
@dim hearth i see my old partner delete all my customer so is a reason why now i don't have nothing .... i loose all my customer
if CUS_XX is delete, I can't get them back?
i just saw this ....
There may be a way to undelete customers - I would check with support (contact them at https://support.stripe.com/contact) and they'll be able to confirm if we can undelete these
How do I set a specific billing period?
@neon gust Hello! Can you provide more detail about what you want to do? Are you asking how to set the billing period on a Price, modify the billing period on an existing Subscription, or something else?
yeah how do I modify the billing dates, For example, our billing period is every 2 weeks but some of our clients are going to start 5 days before the billing period ends. How do I set it up?
@neon gust We have a guide for modifying the billing cycle dates on Subscriptions here: https://stripe.com/docs/billing/subscriptions/billing-cycle
thanks
@junior terrace and @dim hearth Thank you very much for the tips, I'll wait for the first processing of any customer who subscribes to this product.
@wanton token try with you. Make payment and change date or rebill at today like +15min on woo commerce subscription and you will see if working good or not (sorry for my bad English)
@junior terrace My English is terrible too, lol I speak Portuguese and Spanish. I'll try this tip, tks
Hello,
Sorry to bother you at this late hour (9:30 p.m. in France :)) Just wanted to know how long would it take for the Stripe team to migrate customers from one Stripe account to another?
thank you in advance
@quiet vortex Hello! Unfortunately that's not a question we can answer here; you'd need to ask the migrations team via support that question: https://support.stripe.com/contact/email
@quiet vortex And no worries about the time, we're here pretty much 24 hours a day on business days!
Thank you for your quick feedback
Happy to help!
hi team! perhaps silly question, but is the file link in the test "sigma.scheduled_query_run.created" event valid?
@safe fiber What do you mean by "valid"?
i'm trying to listen to this webhook and process it, but we don't actually have sigma in our test account
we pushed to prod and we are getting bugs where the code can't seem to download the file
but since we don't have sigma in our dev account i can't really know what is going on 😅
@safe fiber Do you have an event ID we can look at?
@safe fiber How are you trying to download the file? What errors are you getting when you try?
asking if the test event is something i can actually test against?
@safe fiber Oh, no, the test event contains bogus test data.
i suspect it is not a real file 😄
damn... i guess i can only test in prod then
what permissions do i need on a restricted key to download that file
@safe fiber I don't think it's possible to download that file with a restricted key. The docs state your live secret key is required.
i don't have much insight into why it is failing to download into prod, i'll probably add more logging to see
oh
damn...
that could be it then
@safe fiber Have you read this section of the docs about this? https://stripe.com/docs/sigma/scheduled-queries#receiving-results-as-webhooks
yeah, when using the rk locally i'm getting a 403, i would have expected a 404 if i had access but the file didn't exist...
let me try with the live secret key and see if i can get past this 403
yeah, that doc is the thing that inspired me to try this 😄
@safe fiber 403 is forbidden, meaning you don't have access, yeah.
yeah, i'm gonna try with the unrestricted key
@safe fiber I'm not seeing any permissions on a restricted key that would grant it access... maybe "Report Runs and Report Types", but I doubt it.
@safe fiber Or, actually, maybe that + "Files"
How do you get a hold of straight when somebody place an online order my printer won’t print
oh i will try that, yes the unrestricted key is giving me a 404 so i think i'm getting closer
thanks rubeus, i will try that
Strip not straight
@frozen stream You mean Stripe? What do you need exactly?
Yes stripe
When someone use my online ordering through straight their order does not print out on my printer
Stripe
@frozen stream Stripe doesn't typically handle printing to your printer... are you using a plugin or third-party integration with Stripe that handles printing orders?
I have stripe online ordering, I figured the printer is connected to their online ordering system
This was all set up by the guy that sold me all these packages and now he’s fled and I can’t find him anywhere
I think I’ve been scammed
Is there a phone number to stripe
@frozen stream All of our support contact options are here: https://support.stripe.com/contact
I’ve noticed all these businesses that want your business there’s no phone number to actually talk to people in person which is something I need
@frozen stream It sounds like you need to talk to the people who made the online ordering system you're using though.
👍👍👍
does stripe migrate data to Authorize.net?
@half wren Our migrations team can help with migrations to other processors. You can read them via support: https://support.stripe.com/contact/email
thyere so slow its concerning
1 email reply in 48 hours
i have bills to pay and payments that needed to be collected....
@half wren Sorry about that. Our support team tries to reply as quickly as possible.
Do you have Xamarin SDK that runs on Android and IOS platforms. I'd like to integrate this to my custom aplication.
@buoyant shadow Hello! We don't have an official Xamarin SDK, but I believe there are third-party options you can use.
Hello,
I cannot really find it but does Stripe support mobile payments with the sdk?
We are developing a platform for the African market but can't find of we can let users pay with mobile money if we use Stripe.
Also we use Flutter for developing
@slow tartan Hello! Can you provide more details about specifically what support you're asking about? What does "mobile money" mean?
@slow tartan Also note that Stripe doesn't have an official first-party Flutter SDK, but third-party options exist.
Mobile money is the most used way of payment form in Africa?
I'm asking if it's possible to send the payment id that has a prefix of "pi_123" next to the receipt that is emailed after a purchase without using webhooks.
@slow tartan All of the payment methods Stripe accepts are listed here: https://stripe.com/docs/payments/payment-methods/overview
@slow tartan I don't think "mobile money" is listed there.
Assuming from your answer I can understand that that is a no.
Is there any future plans for also being a solution for the African market?
@slow tartan Have you looked at PayStack? They were recently acquired by Stripe and have much better support for local African funds flows
Mobile money is the number 1 payment form of payments in Africa
I will take a look for at that thank you 🙂
@warm nimbus Hello! @dim hearth isn't around right now, but I'd be happy to help! I don't believe what you're describing is possible without webhooks, no.
I'll explain again what I said before what I want to do.
- Generate a payment...
- After the paying I can get a payment id like "pi_abc123" from the control panel
I want to know if it is possible to send this id to the buyer's email after he makes a purchase. type a transaction id.
@warm nimbus You can do that by using your own custom receipts powered by webhooks, but I don't believe that's possible with Stripe's receipts. Let me confirm though...
@warm nimbus Yeah, Stripe's receipts don't include that ID. Can you tell me more about why you want to include that ID? Maybe I can recommend another approach.
Using a Checkout Session in "setup" Mode to save a credit card that will be used for future off-session payments, is it possible to make the card that is entered/attached to a customer their "Default" source with some parameter/switch? Or do I need to do that after the card has been attached successfully?
@echo pollen There's no default_source anymore with Payment Methods. The closest analog is invoice_settings.default_payment_method, but that only applies to Invoices/Subscriptions. Is that what you want to set?
No, I'm not generating Invoices or using Subscriptions
I'm just looking at my dashboard and see a "default" tag next to some payment methods, and when that is set, they show up in my customer list
I'll tell you about my application, then you can tell me what is the best thing to do.
1. My application requires people to activate the product themselves whenever they want. (Verifying payment, so I need buyers to have access to it).
2. After the buyer pays for the product, he receives the payment id, where he can type a command in my application like: "/activate <pi_abc123>".
What this command does: Afterwards a REST is done to check whether the payment is really complete or not.
@echo pollen If you set them as invoice_settings.default_payment_method they should show up in the Dashboard as the default.
@warm nimbus Ah, okay, so Stripe receipts have a receipt number at the top, like this:
Receipt #1312-0022
That same number is available on the associated Charge: https://stripe.com/docs/api/charges/object#charge_object-receipt_number
right
@warm nimbus Actually, one other question: are you using Customers in Stripe?
what do you mean using Customers?
@warm nimbus Are you creating and using Customer objects? https://stripe.com/docs/api/customers
@warm nimbus Oh, okay, that makes it a bit harder then, but still possible. You would need to list recent Charges, check to see if any of them have the receipt number you're looking for, if not check the next most recent Charges, and repeat until you either find the Charge or hit some threshold/timeout: https://stripe.com/docs/api/charges/list
wow
@warm nimbus Alternatively you can store receipt numbers and Charge data in your own database as they happen and look them up there.
@warm nimbus That second option is probably best.
@warm nimbus If you were using Customers you could list the Charges belonging only to a specific Customer, which would make the first option more viable.
t would be interesting to have a REST where we put the receipt number as a parameter and find the payment id
@warm nimbus Specifically I would recommend setting up a webhook endpoint that listens for charge.succeeded events and writes the associated receipt number to your own database.
@warm nimbus Then, when someone tries to /activate, have them supply their receipt number so you can look it up.
@warm nimbus You should probably also have them supply the email address it was sent to and check for the combination, and mark them as used up once activation is successful.
@warm nimbus Receipt numbers can probably be ~easily guessed, so using them alone would be dangerous.
is there any button on the control panel that creates "Charges" ?
@warm nimbus Payment Intents create Charges.
hmm
how to get clients card details?
Thank you, it seems more feasible to search the payment intent list
i need my clients payment information so i can add it to a new processor
is the only way to ask for data migartion?
I dont mind having data migrated and encrypted but its taking too long and i have people i need to charge for the month
@half wren Oh, yeah, a migration is the only way to do that.
Howdy! Right now I have a single price point billed yearly, but I'd like to add a monthly option at a different price too. I think I understand how to handle all of that, but I don't want to send a renewal reminder email for the monthly option but I do want to send one for the yearly. Does Stripe support that scenario? Thanks!
That when the person provides the receipt number at the command, I will search the payment list to see if there is anything.
@crystal fox Hello! How far in advance of the renewal do you want to send the emails?
@warm nimbus You mean search manually in the Dashboard?
@mighty hill Whatever Stripe supports out of the box. Right now I send my own renewal notice emails and I want to get out of that business. 😄
No. I will see the list of "Changes", and check if there is any receipt number that matches the one given by the customers.
@crystal fox You can configure events for upcoming invoices to fire 45 days before a Subscription renews and then turn on upcoming renewal emails. For Subscriptions with a period shorter than 45 days (i.e., your monthly Subscriptions) no upcoming event would fire and no email would be sent.
Like this, here: https://dashboard.stripe.com/settings/billing/automatic
@mighty hill I just ask autorize.net to request for the migration
they say they do it every wednedsay and friday
@warm nimbus That may not be practical if there's a delay between when the payment is made and when they activate and you have a lot of Charges since you would need to list every single one.
do i need to do anything or will stripe deal with authroize.net directly no?
@half wren I'm not sure how migrations work at that level, sorry.
@mighty hill Ah OK, so if I want to send my yearly renewal 15 days out, I couldn't do that and not send a monthly one, is that correct?
@crystal fox Correct, setting it to 15 days would mean any Subscription with a period that long would get reminders, which means both monthly and yearly.
@mighty hill So 32 is the lowest then?
@crystal fox No, 45 would be the lowest. You can't configure 32, it's not an option.
Oh, OK. Haha. Thanks for the help!
Feature request: enable disable them at the Product / Price point level. 😄
Specifically I would recommend setting up a webhook endpoint that listens for charge.succeeded events and writes the associated receipt number to your own database.
``` Is there a link to the documentation that talks about this?
@warm nimbus We have documentation about setting up a webhook endpoint here: https://stripe.com/docs/webhooks
configure it through the control panel, something like that?
@sacred latch You can configure a webhook endpoint in the Dashboard, but it needs to point to a URL that runs code that knows how to handle the events being sent to it.
yeah, i found
thanks
the webhook when it sends something to my url, does it send the secret? because then I can check the veracity, and not that a person accessed the page and placed that...
@warm nimbus You can verify the event is from Stripe by checking the signature on the webhook request: https://stripe.com/docs/webhooks/signatures
hmm
stripe, although you guys are kicking me out. this discord is pretty friendly and im going to find myself chatting amongst you guys quite often during my work day.
I sadly have to move all my data to authroize.net as stripe booted for 0 chargebacks and 40K MRR in 30 days
I love u all, thanks to the dev team for making this chat a warm place called home
@half wren Good luck with your migration!
thanks if theres anyway you can let the support or data migration team know that i need them to answer authorize.net
they are waiting on stripe for the file
@half wren There's no way for me to verify your identity here, so I can't really tell them much as I don't know you're associated with any particular migration.
Hi! I hope all is well.
Quick question; is there a Stripe Support Email Address?
@potent plaza You can send Stripe Support an email here, which is the preferred approach: https://support.stripe.com/contact/email
We also have a direct email if required: support@stripe.com
You too!
Thank you!
Hello, We have a store built with WordPress+WooCommerce, and we use WooCommerce Stripe Gateway plugin to integrate with Stripe.
Everything fine, but now we are trying to add Afterpay payment method to stripe, I discovered the dashboard payment methods setting and I did found Afterpay payment method, but there is no configuration for it, just a link to its documentation. anybody here had the same issue and was able to fix it? Thanks in advance.
@sudden idol Hello! Unfortunately we can't help with WooCommerce here as we don't own or control the code. You'll need to reach out to WooCommerce for help.
@mighty hill I appreciate your reply, thank you. I hope that there is a developer had the same issue and was able to fix, and he can share here.
@mighty hill Don't have any code that can show me how the capture of webhook variables works?
We have example webhook code that you can look at here: https://stripe.com/docs/webhooks/integration-builder
In case I'm making a webhook information receiver, I want an example in PHP
That link has examples in all the languages we support - you just need to select PHP In the dropdown
Is there a way to collect billing address when saving card information in "setup" mode in a Checkout session? CVC and Zip are present, but not the full billing address (to help with fraud checks down the line)
Have you tried setting billing_address_collection: required? ( see https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-billing_address_collection)
yah, but I just want to read a webhook...
like this ```php
<?php
foreach ($_POST as $key => $value) {
echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>";
$fp = fopen('receipt.txt', 'w');
fwrite($fp, $key. " = " . $value);
fclose($fp);
}
?>
Hi! When making a direct charge against a connected Standard Account, is it possible to roll the stripe fees into our platforms application_fee_amount?
If you want to parse the raw body of the webhook we don't have any examples from that - it really is much easier to follow the example, which is reading the webhook event with this code: $event = \Stripe\Event::constructFrom( json_decode($payload, true) );
Can you clarify a bit - when you say "roll the stripe fees" do you want the stripe fee to come out the application fee and not the connected account's funds?
Sorry, yes exactly. So the connected account only sees the application fee
Got it! ```php
$payload = @file_get_contents('php://input');
I don't believe there's a way to do this - tagging @fast mantle just in case you know of a workaround
There's not, no. In this case, the standard account is the one paying the fee, not your platform. When you make a direct charge, you're having the connected account (which you don't own/control) make the charge. In a way you're sort of using the standard account as a puppet to make the charge for them.
A good mental model for standard accounts is that they're "just regular stripe accounts" that you can act on behalf of.
FWIW, if the connected account in this case has better pricing than you (e.g., they are doing volume and negotiated a lower rate), you'd want them to have that lower rate, which we can't do in the situation you're describing
Ok thanks, makes sense. It seems like destination charges have that functionality? We were directed towards a Standard account when onboarding
Yes, destination charges will work better. And then you just set the transfer amount to what you want them to see
Keep in mind that this may have cross-border implications
Are there any changes needed on our platform to try out destination charges? We've started a integration assuming we'd use Standard with direct charges
I see the docs say that destination charges are recommended for Express or Custom accounts, will they also work for Standard accounts?
They technically work, but we really really don't recommend it.
It comes with a lot of issues and limitations, so if you're planning on using destination charges definitely use express or custom accounts
Ok, yeah I think we'll stick with direct charges. Thanks so much for the explanations
I'm trying to integrate with Afterpay. What it's source type? please
I can not see the source type of Afterpay ..
The type of the source. The type is a payment method, one of ach_credit_transfer, ach_debit, alipay, bancontact, card, card_present, eps, giropay, ideal, multibanco, klarna, p24, sepa_debit, sofort, three_d_secure, or wechat.
I think you're looking at sources? sources are deprecated, and are replaced by paymentmethods: https://stripe.com/docs/api/payment_methods/object#payment_method_object-type
the enum value for afterpay for payment methods is afterpay_clearpay
(afterpay isn't supported on sources)
Thanks @stark tide . I appreciate your response. The current code relays on Sources.. I will try to make it work with PaymentIntent. Do you recommend a document on how to migrate from Sources to Payment Intent
https://stripe.com/docs/payments/payment-intents/migration is a good reference
Hey, I was wondering what the easiest way is to integrate the stripe client sdk with vuejs
Hi @strange tiger, I recommend vue-stripe: https://github.com/vue-stripe/vue-stripe
Thanks
Hello, hope you are all doing well. Is anyone from Stripe available to assist with a few questions regarding invoicing integration please?
Hi @rough badger, what's up?
Thanks @bleak breach I am about to integrate Stripe Invoicing into our solution and we have a requirement to bill our customers 7 days after they receive the invoice. The reason for this is to allow our customers time to review the invoice before being charged. Essentially what we will need to do to achieve this is:
- Create a custom invoice per customer per month with line items corresponding to their orders and subscriptions.
- Email the invoice to the customer at their 1 month billing anniversary.
- Automatically collect the payment after 7 days of the invoice being sent to the customer.
Are you able to provide the technical details/documentation, API details etc on how we might achieve this please? Assuming it's possible?
Hello my first time here. I have a question. When one of my customers made a wrong purchase, instead of me canceling the product ( because the initial fee won't be paid back), is there a way to switch to a different product or subscription on my side?
Is your intention to automatically pay the invoice after 7 days, or only allow your user to pay the invoice after 7 days?
Automatically collect payment after 7 days.
Would you want that to apply to the very first invoice as well? It's the one that gets created and paid on subscription creation
No, once a payment is completed you can't update anything on Stripe's side except for a description and metadata. Instead of refunding the charge you could apply a credit to your customer and ask them to order a different product: https://stripe.com/docs/api/customer_balance_transactions
We have a provision for free trials for 1, 2, 3 months etc where we will apply a 100% discount to those invoices, however any other invoice will need to be charged automatically after 7 days.
So this is definitely possible but it's a bit finicky since it's a bit of an edge case. When a billing cycle is created Stripe will automatically create an Invoice in the open status, after approximately one hour the Invoice transitions to the finalized state where it can't be edited anymore and Stripe will automatically try to pay it. What you could do is listen for the invoice.created webhook and update the Invoice to have auto_advance set to false: https://stripe.com/docs/api/invoices/update#update_invoice-auto_advance
This will prevent Stripe from automatically trying to collect payment. Then after 7 days you can manually pay the Invoice via the API: https://stripe.com/docs/api/invoices/pay
Sorry missed a step, with auto_advance: false you'd first have to finalize the Invoice manually before paying it: https://stripe.com/docs/api/invoices/finalize
More details here: https://stripe.com/docs/invoicing/overview#update-auto
Thank you. There is no other product to purchase, so the credit would not be an option for me. Would there a fee for refunding the partial amount of the purchased product?
Thanks Paul, by "Manually pay the invoice via the API", this will trigger the payment automatically?
The Stripe fees don't get refunded, so if you partially refund you still eat the fees
Yes, Stripe will attempt to pay the Invoice with the saved card on file when you call the Pay endpoint
Ok, cool. This sounds like a potential solution. Let me get one of my colleagues across it..
Hey I'm not sure if this is the place to ask specifics about vue-stripe but I'm having an issue getting it set up. I have a couple buttons on my site that allow the user to buy 2 different subscriptions. I want to redirect them to the checkout using a sessionId generated by my server as I need to pass metadata as well. As far as I know, the only way to provide the sessionId to the stripe-checkout element in vue-stripe is by passing it as a prop when first loading the page. How would I:
- fetch the session id from my backend only when they click the button
- then use that session id to redirect them to the checkout using vue-stripe
Oh wait, so I'm a bit new to vue/react stuff so I might be getting this mixed up
If I do something like this:
You'd want to first fetch the session ID from your backend. Once you have it you'd pass it as a prop to the vue-stripe Checkout component: https://vuestripe.com/stripe-checkout/getting-started/
Can I just update this data value whenever they click on the button and THEN redirect them to checkout?
This is what I'm trying to figure out
I don't know what that data value is, so I can't really answer that
Ok thanks. Sorry, just to make sure I get this right, I eat the fees for the initial purchase, but there is NO additional fee when I refund the partial amount, correct?
Because the way I have it set up is my stripe-checkout component is actually part of the button since there will be multiple different products
There's no additional fee for refunds, no
Ok thanks!
To confirm, on the 7th day for invoices that are due, we are making a request via Stripe API to change the auto_advance status to = true which will then result in payment collection?
Sorry I misread your question, instead of setting auto_advance: true after 7 days you'd pay the Invoice manually (after finalizing if you didn't already do that)
Thanks for your help Paul - much appreciated. We will see how we go. Have a great day 👍
Hi @strange tiger sorry I am not always online here on discord during my work hours. You can tag me or pm me if you have concerns with vue-stripe.
Thanks @bleak breach for taking over.
(@smoky rover is the author of vue-stripe)
Oh awesome!
Actually, the main question I have right now is whether or not I should be using one stripe-checkout component per page, or if I can use one for each button on a single page
For example, right now on my pricing page, each of the 2 pricing options has a purchase button, and each of those buttons are made up of the button's style and a stripe-checkout component inside of it
Right, there are 2 approach that I can suggest.
- Use two separate
stripe-checkoutfor each pricing option, each should have its own uniqueref. - Use loop and dynamically provide
refandsession-idvalues. You have to be careful with using refs in a loop tho. Vuejs will convert the ref to an array which will result to a confusing situation. You'll understand once you try it. 😄
And yes, you should use stripe-checkout component. @strange tiger
I think I'm going to stick with the first option - I have the session-id set to an empty string data value when the component is created, and then when the button is clicked it asks my server for a session id with some metadata, and then updates that data value with the session id from the server
That's one way to do it. Let me know if you have any more questions. ❤️ Good luck with your work.
Thanks, still trying to learn how vue works exactly haha
Hi there! I just wanted to inquire the developers about the date when you are planning to include Russia to Stripe.
@terse frost You can follow along and register interest on which countries Stripe supports here: stripe.com/global
Yeah, I know that it is not there yet, but I am just wondering, when it will be.
We don't have anything to share on that
Of course, if it's not a secret 😉
Alright, thanks Paul! Looking forward to this addition! Have a great day!
You too!
Hey team how are you? I had a question about stripe-go library. We're trying to attach payment-methods to customers but sometimes we get this weird trailing slash error. Anybody know hot to deal with that or where to report the issue?
Hmm that doesn't look like a trailing slash but rather a missing ID. The path should be /v1/payment_methods/{ID}/attach. In your code is the ID of the PaymentMethod perhaps undefined or empty?
Hello,
I want to integrate stripe on my website.. and i think the sandbox version is working, and i want to go live. How can i do that ?
You're so right, I missed that.
Hi there! All you have to do is swap out your test mode keys for your live mode keys
Your integration will use Stripe API keys for instance pk_test_123 for a public test key and sk_test_123 for a secret test key
To go live, you just swap out your test mode keys for live keys, which look like pk_live_123 for publishable keys and sk_live_123 for secret live keys. You can find your keys at https://dashboard.stripe.com/apikeys
i don't understand, where should i put this publishable key ?
hey there, is there a way to know stripe fees during payment intent creation ? https://pastebin.com/WVwNLcnm would like to avoid doing direct charges but
we need the stripeFee to be deducted from the stripe connect user account and not from the platform acc, so i thought i could find a way to add it up to the application_fee_amount
@cobalt pendant are you in blended fee like x%+ycents?
if so, you can calculate the fee by some solving an equation (charge amount + fee)*x% + y = fee
yeah yeah i got that part, what i meant is how to know the actual stripeFee, cause some transactions are 1.4% some 2.9%. We use stripe connect custom and we onboard non profits. These non profits can raise funds thru our platform. The platform takes an application fee for each transaction. But we dont want the platform to pay the transaction fee.
Hello! I'm setting up Stripe subscription plans on my Django app. Currently I'm testing the stripe webhooks using Stripe CLI. For some reason though, I get the following error:
[ERROR] Failed to POST: Post "http://localhost:5000/hooks": dial tcp [::1]:5000: connect: connection refused
Do you know what I might have missed? Could be something really basic, I'm not very experienced with this. Thanks in advance!
@cobalt pendant hmm, do you know why the fee are different? is it because of different payment method are used? or because of the region?
@lucid raft
@cobalt pendant in this case you will have to get the customer card information before initialise the transaction. You tokenise the card by creating a payment method, the payment method will give you the card country information https://stripe.com/docs/api/payment_methods/object#payment_method_object-card-country
then you get the fee structure which you can use to calculate the fee
@tight parcel looks like there is some issue to your localhost:5000/hooks; are you able to sent POST request using http client like curl command or POSTMAN
?
so for each payment intent (1 time payment) created i gotta create a pm ?! atm the payment intent is created on the server as shown in the pastebin, i return to the client the payment intent id, then the client tokenizes the card from customer input and use confirmCardPayment with both values to perform the actual payment.
@cobalt pendant yeah, you will have to have a way to find out the payment method's county to get the fee structure for calculation.
Actually you don't have alter too much of your integration path
instead of confirmCardPayment with the card element directly, you create a pm first in your frontend, then call your server side to either update or create a new PI with the updated amount, and then confirm it with the PM.
Hi guys, sorry for bother you: But unfortunately my stripe integration creates an error regarding apple pay. It always says shipping address invalid after trying to pay with Apple Pay. Any clue why?
I think I got it, I was missing the creation of the webhook view on my Django app side. Thanks!
Hello Stripe dev teams,
we also have a question about applePay integration. We'll be decrypting the ApplePay CC and after decryption we receive the following fields:
"card": {
"expiryMonth": "{applicationExpirationDate}",
"expiryYear": "{applicationExpirationDate}",
"holderName": "{cardholderName}",
"number": "{applicationPrimaryAccountNumber}"
}
So after the card is decrypted, can I just pass the decrypted card details to your PaymentIntents APIs, as if it was a regular cc number?
@vocal wagon interesting, are you integrating directly with Stripe or you are using third party plugin? Do you have a testing URL that I can confirm?
Somewhere in your code you're making use of Stripe API keys. To go live you'd change those test mode keys to live mode keys
Is there a way to interact with stripe to know the exact fee with a pm ? I don’t wanna risk overcharging due to country logic or external events if that makes sense
@cobalt pendant not before the transaction no
You can, but we don't recommend that integration path as that requires you to be PCI compliant
I am, level 1
so as long as I can send this as a regular cc info, I'm good to go?
Hey everyone, I'm new to the group
Okok i guess making direct charges would be safer in a way. To do that do I need to to build stripe config object with the account id or can I do it with my regular platform config object
I have a question with the payment links, is it possible to create a link for products with a volume price ?
I am, level 1
so as long as I can send this as a regular cc info, I'm good to go?
And 2nd Question as I'm already on it, is there a ApplePay CC token to test my flow with?
@vocal wagon currently metered billing is not supported https://stripe.com/docs/payments/payment-links
@strong gazelle Stripe will treat ApplePay CC the same as normal credit card number thus there will be no such testing card number or you can use any number https://stripe.com/docs/testing
I see in the js file i have this ok, so i can replace it there. However when a customer pays.. and the transaction is success, how can i know that ? So i will redirect him to the proper page ?
@shut perch that really entirely depends on the exact way you integrate(do you use PaymentIntents directly or Checkout, or some third-party plugin?) so there's no generic answer.
sorry, but i don't know PaymentIntents or any other third-party plugin. I use clean php code (no plugins or third party code) and i took the code for stripe integration from their website and with the test cards everything worked fine. The transaction is success. That's great! However.. my application needs to know after a success transaction where should i redirect the customer.. i need some kind of ... "flag" that the transaction is success...
@shut perch
took the code for stripe integration from their website
what link was that from?
there are many ways to use Stripe so I need a more specific reference than just "PHP"
if you need a notification that charge succeeded, why not use Stripe webhooks?
@shut perch so you're using PaymentIntents.
Look at the orderComplete function in client.js, which is when your frontend code knows when the payment is completed as it's called with the response from https://stripe.com/docs/js/payment_intents/confirm_card_payment#stripe_confirm_card_payment-with_element. At that point you can do anything you need to do like redirecting the page.
As @strong gazelle mentions, you should separately use webhooks on your backend server to update your database or kick off order fulfillment : https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-fulfillment
is this what you mean ?
https://stripe.com/docs/testing#webhooks
i see i found the
var orderComplete = function(paymentIntentId) { ....
in the js file
and i have this variable:
.setAttribute(
"href",
"https://dashboard.stripe.com/test/payments/" + paymentIntentId
);
so .. here instead of going to the dashboard.. i can redirect to .. whatever page i want ?
yes. That's example code, you can replace it with anything you want
you definitely wouldn't use that code in production anyway since it's redirecting the customer to your Stripe merchant dashboard which wouldn't make sense! It's a demo application, not a production site.
so there's a lot more you need to do here before just changing your API keys and going live! We provide examples to show you how you might integrate a payments flow in your existing website but it's not intended that you just clone them and change the keys and go live.
If you want an immediate way to go live you might use https://stripe.com/docs/payments/payment-links instead for example.
@meager hawk @bleak breach maybe you guys can help me out inspecting a particular requestID ?
@strong gazelle sure, I can try!
Request-Id=req_DgT3upWccGA0wm
I've got a general error and didnt uynderstand why
I've raised a ticket concerning international users who want to be paid in US dollars and not in the currency of their country of original. I'm raising it here because its been open for weeks and your customer support team are unable to answer. Firstly, because of the way we transfer funds to our users weeks or months after we receive a transaction we need to set up our users with a 'recipient' service level agreement, not 'full'. Before we had it set to 'full' and transfers to international users would fail. Once it was turned to 'recipient' it worked fine. However international users only have the option of reciving funds in the currency of their country of origin. However we have some users who, for example Canadian, who want the option to receive funds in USD dollars as they have USD accounts in Canada and do not want to receive CAD due to the exchange rate loss. However they are not given this option due to the 'recipient' type of account. Apparently its only available if the account type is 'full'. However if we change to 'full' across the board it will not allow us to to transfer funds to those accounts. TO be clear we do not use destination charge to transfer funds as the transfer does not occur at the same time as the initial receipt/transaction. So how can we resolve this catch22. Is it a case of setting up the owner as 'recipient' and then changing to 'full' once set up? Also to note, we use Stripe Express for onboarding.
@strong gazelle it's a processing error(see processing_error on https://stripe.com/docs/declines/codes ) ,it just means the cardholder's bank was unable to process the transaction, they might be down right now or have an issue in their systems, it does happen from time to time.
@nocturne olive I'd suggest following up with our support team instead, but I'd assume you just can't do this, you seem to be trying to find a workaround but there might not be one, international transfers are highly regulated and limited. My understanding is your only option is to continue to use the receipient agreement and accept the currency conversion.
Thanks mate
I'd like to take this to another direction, when I decrypt the CC ApplePay Token, I get a few parameters from the decription
onlinePaymentCryptogram}",
"eci": "07"
and then I should pass it to you, as part of the Authorizatoin request (using PAymentIntents). But i didnt find in the PI object any reference to those 2 vaules. So i didnt pass them in the previous request you've inspected. Do you support those 2 values?
ok that is my thinking also. It's been with support for a month now and they've been unable to answer anyting difinitive. Which is why i'm raising it here.
@strong gazelle well this is a highly advanced integration for advanced users who'd generally have direct contacts with our sales team so I don't believe it's publicly documented. But you want to create a Stripe Token object from those details first.
An Apple Pay Token will have paymentData that contains encrypted payment data that can be sent to Stripe through a Token creation request. Apple has detailed documentation about how to decrypt the paymentData and pull out the DPAN, cryptogram, and ECI.
The curl request for sending the decrypted Apple Pay information to the /v1/tokens API should look something like this:
curl -u sk_test_123: https://api.stripe.com/v1/tokens \
-d card[number]=4242424242424242 \
-d card[exp_year]=2021 \
-d card[exp_month]=12 \
-d card[cryptogram]=base64cryptogram \
-d card[eci]=05 \
-d card[tokenization_method]=apple_pay
that should help.
Once you have a Token object tok_xxx you then need to convert it to a PaymentMethod pm_xxx
which is done by calling https://api.stripe.com/v1/payment_methods and passing type=card and card[token]=tok_xxx
then you can pass the pm_xxx to https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method to charge it. Hopefully this helps.
Hi! I see that SubscriptionSchedule manages an underlying Subscription, can I assume it's going to be only one or can there be multiple Subscriptions per each Schedule?
@rigid ridge there can only be one Subscription per Schedule
Okay, thanks!
And if I want to cancel a SubscriptionSchedule, should I cancel the schedule itself or the underlying subscription?
I believe if the Subscription is currently being managed by a Schedule you have to cancel it by working with the Schedule, but let me check it
ah no, I'm wrong, you can just cancel the Subscription with https://stripe.com/docs/api/subscriptions/cancel directly.
okay, thanks!
How can I retrieve a downloadable link to download a receipt in Stripe.
e.g.: https://files.stripe.com/files/MDB8YWNjdF84SVlQZTZDOEpHdWFVZFU2fGZfdGVzdF9LZDE3ObFpdGE1NTdNw2J1SHR3U1NwOGw00XM9AEhzO
@hollow nebula hi! it depends a little. Are you asking how to get it from the API? If the payment is for an invoice then you can use https://stripe.com/docs/api/invoices/object#invoice_object-invoice_pdf . But in the general case there isn't really a download link, you can get a URL to then share to the customer though. https://stripe.com/docs/api/charges/object#charge_object-receipt_url
HI, have activated my account and sent a test invoice to myself, but it wont process the payment?
@vocal wagon I'd suggest reaching out to https://support.stripe.com/email for help with that, but was there a specific error message or API error you saw beyond just "wont process the payment"?
Thanks Karl, it just said cant process payment
Hi. I'm going to write a query to get payout transactions using sigma. Is there payouts table that I can join with business_transactions?
@vocal wagon this channel is for technical questions about the API so there's not much I can do without a specific error or request ID (https://support.stripe.com/questions/finding-the-id-for-an-api-request) I'm afraid, but our support team can help!
it's called transfers (for legacy reasons) so it's easy to miss unfortunately
@meager hawk Thank you so much, I got it, transfers and payouts are stored at the same table. One more question, what about top-ups? Where can I find them?
Hi! 🙂 We have a platform with both standard and custom accounts connected to it, if a standard account is closed - what happends to stripe charges we reference from our code? i.e. references in the form of ch_xxxxxx 🙏
@frail lava hmm, good question. I don't think there's a specific table, so I would do select * from balance_transactions where type IN ('topup') basically, if that makes sense.
@last oracle if the account is closed then you get disconnected from it so you can't access those charges any more I believe, you'd get a permissions error
I'm assuming you are talking about Direct Charges though
since in Direct, the objects are created on the connected account; and you generally should use Direct with Standard accounts. In Destination charges, all the objects are on your platform account instead so you always have access to them.
I want to build webhook which can help me update "charges_enabled" and "payouts_enabled"
should I get this info directly from the posted data on my endpoint or should I get the account_id from the posted data and search it manually
well the webhook endpoint gets the Account object in the payload, which contains those fields. So you can read it from the payload yes.
you could also just read the account ID and then call https://stripe.com/docs/api/accounts/retrieve and look at that response instead of the webhook payload, yep. Either way is valid. I personally prefer that second way(because you're guaranteed to get the exact latest status of the object) but it's not required.
thnx, yup I also think it would be easy. Because picking info from that payload can be tricky cause depending on events fields can have diff name/positions.
I will listen for account.updated event and will pick account ID and get all the required details myself
2nd question. How can I enable/disable payments and payout for a specific customer
from the dashboard
hmm, you can't really, that's not how it works. It's enabled or disabled based on if the account is verified or not(by providing required identity verification information). There's no direct button for it.
In general you'd test by creating accounts and entering in test data when onboarding them https://stripe.com/docs/connect/testing#identity-and-address-verification-
Thank you! 😊🙏 They are destination charges in this case, i will run some test in dev and see what happens
Hello I need to talk to someone via phone but I don’t see a phone number anymore and the 24x7 customer support doesn’t take me anywhere.
I have several documents I need to submit for a dispute a customer put in but stripe doesn’t allow me to submit it unless it is certain categories which does not help my case.
:question: Have a question about your account @olive otter?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
The documents I need to submit all make me chose a category that aren’t applicable
there is a reject button in the dashboard which disable "payments" but doesn't disabled "payouts"
I already tried that.....
and you can't enabled the payments back after rejecting
@olive otter we can't help you here, sorry.
even if it was enabled before
No where to call or talk to someone
@upbeat grove well rejecting an account is more like, 'deleting' the account effectively, it's a slightly different concept. There's no way back, yep
So what am I supposed to do @meager hawk
The 24x7 customer support button brings you to forums.
you can sign in to your account and there's a form to contact support.
so, in case i want to stop someones payout for a day to investigate. I can't stop that
or email support@stripe.com (but they'll ask you to log in).
and incase I wrongly rejected them, They will be punished forever?
I don’t see that anywhere @meager hawk
@upbeat grove I would switch the account to manual payouts then I think. https://stripe.com/docs/api/accounts/update#update_account-settings-payouts Rejection is a one-time deletion.
if they're on manual payouts then you can just choose to not pay them out for a day or longer if you need to control things at that level of detail.
@olive otter your screenshot has a "sign in" button. Sign into your account and there'll be an option then to contact support through chat/request-a-call. If you're not seeing those options then they might not be available right now, so email support@stripe.com instead.