#dev-help
1 messages · Page 133 of 1
@vocal stump AFAIK you're supposed to pass the stripe account header on the save. We strongly strongly discourage using save :p
Okay cool
I was confused because $invoice->voidInvoice(); does work and does not lose Connect context
I just changed to using Invoice->update('inv_', ['metadata' => ['whatever' => 'goes here']], ['stripe_account' => 'acc']) and that worked
But yeah I can see save being a bad idea, i.e. saving the entire state when you only meant to update a particular property
However, good news; the balance adjustment from failed subsvription updates now works
Take a look at cus_JuKPY7fe7y1JXH
Four attempts at updating to a plan that is partially covered by customer balance
All works out
Is there an easy way to clear all test data from a Stripe account all at once?
@vocal wagon https://dashboard.stripe.com/test/developers
Click "delete all test data"
Click your developer tab in test mode; there's a button to delete test data. It'll take a couple of minutes depending on the amount of data.
Bit confused now and quite late, will come back another day. Thanks for the help.
help
everytime my customer tries to pay via invoice
it just declines his card
all my customers
@shadow cobalt happy to clarify if you have a specific question!
:question: @frail basin Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Hello I was trying to send an email receipt to a customer in the paymentIntent but id doesn't work here is my code: amount: 9999, currency: 'usd', payment_method: request.body.payment_method_id, receipt_email: 'my email',
@kind python I'm assuming you're still in Test mode right now. Email receipts are not sent in Test mode so that's expected. You can preview them in the Dashboard though
Ok
@crimson needle yesterday you told me that the issue was the server code wasn't running, if I use VS Code will the server code run?
VS Code is just an IDE on your laptop. So not really no. You need to know how to start your server-side code first. Have you built a website end to end before? If not you might want to maybe hire a freelancer to help you with the integration?
Hello again y'all
I'm looking for a way to get the number of lines on an invoice. If the number of lines on the invoice are more/less than I expect when creating it via code, then obviously I have an issue and should throw an error etc.
So, what I'm thinking is I call the API stripe.invoices.create and look at the $.lines.data.length (in Javascript)
However, I see there is a flag in there "has_more": false, and I'm not sure what the intent there is (it's not on this piece of documentation).
How would Stripe recommend getting a count of the lines on an invoice?
has_more is used for pagination, @drowsy glen . If it is true it means you can request more lines from the API than you currently have
As you can see you can set the limit to 100 which should be enough for any invoice
:) Yea we're trying to avoid hitting the 250 line limit at the moment :)
Is there a more optimal API call that I can do to just get the line count? Looking at the pagination, I'll be fetching a lot of info from Stripe just to count records and throw them away.
Thoughts?
Don't know. I have not encountered the use case of "counting invoice lines". I don't think you can do anything but request the lines and count them manually
You can of course store them on your end and count them using a database
There's nothing more optimal
I really suggest again figuring out a way to fully aggregate this on your end
Yea I've counted on my side how many I expect, so on my side, I know exactly what I'm expecting.
I wanted to check on Stripes side that what we expect to have happen, is what happens :)
I can imagine a scenario where a customer has a subscription or a one off credit etc, appearing as a pending line item, I then run my script, and end up with whatever random item was sitting in the pending line items queue before I started my invoice for customer X. Instead of my invoice having the expected 45 items, it's suddenly got 46 or more.
All good, I'll mark it for review on our side.
Might be a nice feature if on a call to stripe.invoices.create({ I could pass in an array of ID's that I got when creating the items I want on this invoice, I imagine I would get the ID's from my calls to await stripe.invoiceItems.create({ or I could have called stripe.invoiceItems.list({ and cherry-picked the items I want on the invoice.
Thanks very kindly for the help again.
EDIT: Just thought, I can call stripe.invoiceItems.list({ before creating the first line item, and make sure it's empty, that way I know I'm starting from a clean base. That's not a bad starting point for me either :)
yeah though while you create line items another process could add one anyway
Would it be easier for you to look at the invoice amount properties? And if it doesn't match what you expect then you paginate
We have line items with a $0 value, so not in this instance, but that's a good approach under normal circumstances :)
damn
Hey is there a way to create promotional codes / coupons for certain products only?
Oh thank you
Hello, we have a current production account which is the account that we use for processing live transactions; however we would also like to have a production account which is used for development purposes only. I am aware of the test mode option; however this does not allow us to test the processing of real transactions end to end with all production functionality. Can you please advise the best way to proceed? Thank you
@rough badger normally we don't recommend user to do live card testing as it might violate the network policy.
Our testing mode should cover majority of the real transaction flows
hello, my project need to limit user add a card from country, do we have any way to do that?
@summer oracle If you are using Radar, you can create radar rules to block by country
another way is to tokenise the card and check the country from the payment method before saving to customer
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Is it possible to give developers Test Mode access only rather than also issuing them with production access?
If your developers do not have access to the dashboard, you can give them a test mode key sk_test_xxx / pk_test_xxx; these keys will only have access to the test mode
Ok, is there a way to restrict them in the Stripe web console?
Apologies, I am referring to the stripe web console. At present with developer access you can switch between Test Mode and Production Mode. I would like to restrict access to test mode only in the Stripe Web Console.
I don't think you can do that..
Yeah that is my understanding also..
this isn't a dev question but i was charged by a company using stripe subscription but they don't have any way to cancel their subscription
is this even allowed because they wont refund me and pretty much are saying deal with it
@errant shadow Cancellation is definitely supported. See the API https://stripe.com/docs/api/subscriptions/cancel
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
ik its supported but its not on the billing page for this company so pretty much i cant un subscribe
@errant shadow How is the company UI created? are they using Stripe Customer Portal? We do support cancellation too https://stripe.com/docs/billing/subscriptions/integrating-customer-portal
Learn how to configure the customer portal and make it available to your customers.
I would say share these with the company and push them to cancel your subscription. Else you can raise chargeback
im def gonna charge back but i just dont think its right for a company to decide if they will let u cancel a subscription and i wanted to know if this was allowed with stripe
and yes they are using the Stripe Customer Portal
It is allowed technically
Hi all, I would like to be able to retrieve a subscription by ID (NodeJS API) even when it is cancelled. Any solution ? I know the list api take the status in param, but I'd like to use retrieve instead. Thanks
You can still retrieve the cancelled subscription usin gid
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
could you please show me the way to do with https://stripe.com/docs/payments/save-and-reuse?platform=web, I intend to check paymentMethodObject at step number 4, but dont know how to do
Learn how to save card details and charge your customers later.
at https://stripe.com/docs/payments/save-and-reuse?platform=web#confirm-the-setupintent this step
Instead of doing stripe.confirmSetupIntent, you can call stripe.createPaymentMethod to get a payment_method object https://stripe.com/docs/js/payment_methods/create_payment_method
Complete reference documentation for the Stripe JavaScript SDK.
Learn how to save card details and charge your customers later.
you check the country before calling stripe.confirmSetupIntent
thanks @lucid raft , let me try now
Hello Guys, how can e include stripe payment integration in a static website made using HTML, CSS, JavaScript? Is anyone know here? It would be a great help.
You can follow the step by step guide here https://stripe.com/docs/payments/accept-a-payment?platform=web
Securely accept payments online.
You will need a server side code too though
There are no-code options available too. Check this out https://stripe.com/docs/payments/no-code
Get started quickly, without writing any code.
@lucid raft Thanks for the help!
np
Hi Guys, how do I go about getting into my account after I was prompted to provide identity docs? They were uploaded which was supposed to give me instant verification and allow me into my account, but that was a couple of hours ago and there is no sign of any email advising they were verified 'instantly'. Pretty frustrating user experience
@sterile sail Hi! Sorry about the frustrating experience you've had. This channel is for technical and development questions. You woud likely want to reach out to Support to about this: https://support.stripe.com/contact/ and they should be able to help you out.
No dramas, will do. The contact page did say "If you have technical questions" so 🤷♂️
Hi guys, our clients are organizations that are billed per user (Seated pricing). Is there a Stripe mechanism to associate those seats to a unique identifier (user email) so we can prevent users from being swapped in and out within a billing period?
E.g if joe.blogs@example.com is added by the organization, the seat will be 1. If joe.blogs@example.com gets removed, the seat will remain 1 for the rest of the billing period. If jane.doe@example.com is added, an additional seat is charged, as seat 1 belongs to joe.blogs@example.com for the rest of the billing period if the organization decides to add him back in.
I don't think Stripe API has such function out of the box. You will have to build the logic yourself where your system need to keep track the email addresses associated with the currently billing cycle. meaning before calling report usage API, you probably want to check your system if the email address already exists. if it exists, skip the usage addition, else report the usage. When user remove the email, you do nothing, the report number will continue. And at each billing cycle, probably you want to reset the list removing the user removed
These are all custom logic that you will need to implement within your system
Thanks, I thought this might be the case, but just thought I'd ask. Would there be a webhook we can subscribe to notifying us that the billing period has started but before the customer is charged so we can quickly update the subscription seats?
For metered billing, the payment / invoice is paid at the end of the billing cycle. You can listen to that invoice.paid on eaching billing; and then reset your usage. https://stripe.com/docs/billing/subscriptions/webhooks#tracking
Learn to use webhooks to receive notifications of subscription activity.
Hi guys! I have 0.37 HUF in my account (which is like 0.001 EUR), and therefore I cannot close my account. It says I must bring me balance to 0, but since HUF is a zero-decimal currency for payouts, I am not able to payout this 0.37 HUF. Actually I don't even need this money (what can you do with 0.001 EUR...), I just want to close my account. What should I do?
Hey guys, I am new to channel. I have integrated stripe SDK in our app. I am looking for dexguard rule for my app so that i can add my release build.
You will have to write out our support and they can help you with that
:question: @tall forum Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Thanks guys!
I am not quite sure what is dexguard unfortunately.
dexguard rules are applied on release build in Android so that anyone can not get the original code by decompiling the apk.
can you please check with Android team. they must be aware of it.
do proguard rules work? a quick google turns up https://github.com/stripe/stripe-android/blob/master/example/proguard-rules.pro
I personally find obfuscation a little silly. emulation is always possible
Cool, thanks @icy anvil 👍
Hi anyone can help me with some few questions
@dry hatch can you help me with one issue
Hi @maiden meadow , what is your issue?
I want write click functions before the payment request button can I to get some info?
Hi Team .. Im making an invoice to customer with destination account as connected express account. Will I be able to refund this amount back to customer ? Will this get the amount from helper's account and payback to customer ?
Can you provide more context? What click function are you referring to?
Yes sure! Actually I am using payment request button in my application I want to collect some user information before the payement request button call So I have tried but its seems not working.. Its aborting my fuunction givig the console error that before the intilization of payrequest btn i can call click event...
Hi everyone
I am trying to integrate Google Pay with Stripe into an Android app. I am wondering what types of Payment intent statuses should I handle in application ?
According to this guide – https://stripe.com/docs/payments/accept-a-payment?platform=android&ui=custom#android-submit-payment, it is required to handle only Succeeded status. And any other status indicates the payment error.
But at the same type, this guide – https://stripe.com/docs/payments/intents tells that there are some statuses that could occur during proceed the payment. I'm especially worried about Processing status, that indicates, as for as I understand, the payment could finish at the any time in the future. And also it applies to some statuses indicating an error.
So my question is – should I be worried about any statuses other than Succeeded on client side ?
Learn about the status and lifecycle of PaymentIntents and SetupIntents.
Securely accept payments online.
Someone kindly check n update .. thanks in advance..
yes, your customer will get the full refund. However, you will need to recover the fund from the express account by https://stripe.com/docs/api/refunds/create#create_refund-reverse_transfer
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Hi, it would be easier to me if you can share the code you are working on
okay
GooglePay in Android
Hi, is it possible do payment_intent with confirm=true, off session payment for card with enabled 3ds?
Yes, you will need to setup the card first using setupIntent
Here I want collect some data before the google form popup on click of payment request button
Learn how to save card details and charge your customers later.
I have tried to write the click fucction but its not working as expetected
thank you ..
@icy anvil : How can i resolve this issue ?
Process: com.jio.media.jiobeats, PID: 10741
java.lang.IllegalStateException: LifecycleOwner com.jio.media.jiobeats.HomeActivity@3f62288 is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.
I successfully paid and set the card to payment_method, but after this i try to charge money from this card off_session(via api) I recieve "The PaymentIntent needs to be authenticated by 3D Secure"
hey, i've a problem with some request to stripe, this message is return
stripe.error.APIError: Request req_eqB5UTNMHXu1uT: Error while communicating with one of our backends. Sorry about that! We have been notified of the problem.
what can i do for fix that ?
is there any chance of getting a number to call from stripe
from a certain time the staff responds well here
yh I don't do well with messaging
I prefer to call and talk to someone
I have looked online and can't find a contact number
That is a stripe error; the recommendation is for you to try again or return smaller number of records e.g. 100 -> 20 and do paginations
no, you can not find the number of calls
^ ignore me
ok I'm having issues with a business account
instead of making my requests 100 by 100 would I have to face more requests but smaller?
:question: @spice arch Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
Yes, or you can simply retry the request. The requests seems to be expensive.
thus probably try retrieving smaller number of accounts
but i need to recover all current accounts
Yes, you will need to paginate through it. I mean even if you retrieve 100, if you have say 101 accounts, you are missing the last 1 and you will have to paginate anyway
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Hi ! Getting this error while trying to finalize SetupIntent (js sdk), which prevents user's to add their bank verification code, any idea how to unlock the situation please ? "Blocked autofocusing on a <input> element in a cross-origin subframe. "
how okey the problem comes from my way of doing things I ask him to take 100 into account until the requests have no more 😂
while (True):
add_list = stripe.Account.list(limit=100, starting_after=obj_foo)
if (len(add_list) < 100):
break
for id_list in add_list:
obj_foo = id_list["id"]
list_all_account += add_list
nbr_account += len(add_list)
``` sorry for your waiters, good day to you
- the input is unclickable, focus is lost every time we try to focus it
hopefully this is classed as a "technical" problem
my business started using stripe as a payment gateway
we started taking money through a minecraft server
they needed details of what we sell
sent details
and get an email about 3rd party t&Cs
and how we don't comply with them
but we don't have a 3rd party
Do you have a screenshot of it? It might be the banking's 3DS page not supporting iframe
This is still your account verification questions. We cannot help here. you will have to follow up with email thread from our support team. They will give you instructions in terms of business compliance
Tested on 3 different French banks, facing the same problem
Right that looks like the bank specific issues on 3DS.
Let me check
@vocal wagon hey, do you mind writing into our support as we will reach out to the bank to make their 3DS page working with Stripe
:question: @vocal wagon Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
^ this email
And can you provide the screenshot and your payment method id so that we can find the bank to reach out to
Yep I will. Any idea how long it could take ? This situation is quite blocking atm
Seems like most users are stuck here
Yes, Do you have a payment_intent / payment_method ID? I can escalate this to our team
Only a setup_intent_id since it blocked before finalizing ?
ok, that will work too
seti_1JIUQqBf97W8vM2GCxXhTo2p
Still need to contact support by mail since you escalate ?
Yes please, going through support will guarantee you have a follow up from us.
Sure, doing it right now. Thanks a lot !
Hi there!
I'm using dj-stripe and letting the user manage their payment methods through the Stripe Customer Portal (stripe.billing_portal).
For some reason, when I delete a payment method here my dj-stripe models are not updated throught the default webhook, i.e., the payment method stays there.
Did this happen to anyone else, and do you have a clue on what might be causing this?
This is the default payment handler from djstripe, which seems to be deleting the payment method.
https://github.com/dj-stripe/dj-stripe/blob/e57ad8da659b6113740b1049f2dee7f6f4053733/djstripe/event_handlers.py#L141
I've built another webhook handler on "payment_method.attached" event only, to make the first payment method inserted as the default.
Hi I am using this JS SDK for Payment Request Button:
const { error: confirmError } = await stripe.confirmCardPayment(
payment.stripe.clientSecret,
{ payment_method: ev.paymentMethod.id },
{ handleActions: false }
);
I noticed that the Paymnet still succeed even if I use a card with wrong CCV, can anyone help me if i am calling wrong function?
Are you using a Stripe test card?
nope valid card
What i did is i put a valid card in Chrome Browser with a Valid CVC. After that I tried editing the CVC to a wrong one which Chrome Browser allowed.
After that I went to my website and proceed with the payment flow and Stripe allowed the payyment
Done, thanks again
Are you in Test mode? If so Stripe will automatically use our Test Card under the hood for you and you won't be charge. That's why it will work even with wrong CVC
Ok so if I am not in test mode, Stripe can detect that a card has a wrong CVC?
But to answer your question yes I am using Test Mode with a Valid Card Number with Wrong CVC
yes
ok got it orakaro i will try thanks
If I update my stripe version from 2016 to current, will all my products that are subscriptions that still use "plans" and have a custom made api key for the price_id still work and still be there?
Hi sorry to interrupt but i want to ask some question about instant payout: Can instant payout available in Hong Kong, if not, are there any alternative methods for me to shorten the time period to < 2 days?
heya @fossil yarrow , you likely want to reach out to Support to ask about this: https://support.stripe.com/contact/
Hi, from 2016 to current version there are a lot of changes. I will suggest to take a look here: https://stripe.com/docs/upgrades#api-changelog
Keep track of changes and upgrades to the Stripe API.
Hey, is there any way I can receive updates over the webhook regarding refunds I create for payment intents? I heard about the charge.refund.updated event, but for some reason this does not trigger when I initiate a refund (The payment also shows up as refunded in the dashboard) (created using the refunds api)
@south escarp to add on to what @dry hatch mentioned, with regards to migrating plans to prices, this page will provide more details as well : https://stripe.com/docs/billing/migration/migrating-prices
@wicked smelt could you share the payment intent id? it'll look like pi_xxx
Sure, should I send you this in private or just here?
privately would work too
I am not sure about dj-stripe, but that code looks correct when they try to handle the event payment_method.detached https://stripe.com/docs/api/events/types#event_types-payment_method.detached Can you elaborate more with your issue?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Hi, i am in test mode and use auto confirm payments with 3ds card, but it failed with "authentication_required". Why your testing card flow this error and how can i avoid this ?
req_X5cIDwNeWIFhXa
@wicked smelt you would want to listen for two kinds of events for refunds, the charge.refunded event and charge.refunded.updated
@wicked smelt the charge.refunded.updated event is for the rare scenario where the refund fails : https://stripe.com/docs/refunds#failed-refunds
for successful refunds, you would want to listen for charge.refunded event
oooh okay, perfect, thanks and have a great day 🙂
you're welcome!
By auto confirm are you referring to confirmation_method = automatic ?
I'm not provide this param because in api i read that:
confirmation_method = automatic (Default)
@cunning swan Hey there. Seems like you're using a test card (4000000000003220) which requires 3DS authentication, but are also marking the payment as off-session
@golden cosmos So if I understand it correctly, charge.refunded gets called when the refund was successful, and charge.refund.updated when the refund failed? and and these are the only two scenarios in which this can get called?
yep, that's right
@cunning swan By marking the payment off-session, you're essentially telling us your customer is not present in order to handle the required auth flow and thus the payment fails. You'd need to bring them back on-session to handle this, or setup the card correctly for off-session payments
@wicked smelt actually, let me rephrase
@wicked smelt when you create the refund successfully, you would get the charge.refunded event. It's possible that later, the refund fails, you would subsequently get the charge.refunded.updated event. Does that make sense?
So charge.refunded gets called when the refund gets created successfully, but if the refund fails i would get the updates events? If this is the case, is there a way to check whether a refund was successful? Or is this ensured by charge.refunded?
card already set as
"setup_future_usage": "off_session"
let me test one scenario quickly and get back to you
Sure, no hastle here 😄
@cunning swan Hmm, when was that set? You're actually using Sources which don't really support off-session stuff like this. You should be using PaymentMethods instead
After the client removes the default payment method on the customer portal, the card is successfully removed on the stripe dashboard, but on my djstripe models it stays there, and as the default payment method.
This means my app will consider it can charge the client, when in fact it cannot.
@cunning swan See https://stripe.com/docs/payments/save-and-reuse?platform=web
Learn how to save card details and charge your customers later.
@tight parcel Do you have a specific event ID that you'd expect to be handled by your webhook that we can look at?
Ah I see, did you receive a payment_method.detached as well? You can check your dashboard or give us an ID to check
I set it on first payment with this card req_uOZOVCQaCb5lX4
yes, here's the event evt_1JIVQbFqqVHZkr0M3uU5K1JM
@cunning swan You're not passing a payment_method there though. You're using Sources which don't work with off-session payments. See: https://stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@wicked smelt done testing! What you would want to look at specifically in the charge.refunded event is this field refunds.data.status [0]. For credit card refunds, this can be pending, succeeded, or failed.
Sometimes, it's possible that you receive the refunds.data.status : "succeeded", but later you get a charge.refunded.update that the refund has failed. You can test this scenario using this test card : 4000000000005126
[0] https://stripe.com/docs/api/charges/object#charge_object-refunds-data-status
Thanks! So I can't know if the refund succeeded because it can fail later? And is the refunds.data already expanded on the webhook request from stripe?
i would assume the refund succeeded if you receive the refunds.data.status : "succeeded", but just remember to put in place logic to handle the scenario where you get a charge.refunded.update that it failed. Yes, the refunds.data is already expanded on the webhook request.
Nice! Thanks for the input 🙂
The event looks succeed to me. Your webhook handled it and returned 200. There could be just a problem in Django code
I think the problem is around this condition https://github.com/dj-stripe/dj-stripe/blob/e57ad8da659b6113740b1049f2dee7f6f4053733/djstripe/event_handlers.py#L159-L160. In the webhook event the object's id is the payment method which is pm_xxxx, not card_xxxx
hm, that might be it yes! I guess I'll need to treat this on my own webhook handler then
@tight parcel You should file an issue with dj-stripe for sure!
Hi All, On Stripe Checkout I'm now getting an additional option to "Save information to pay faster next time". Is there a way to disable this?
@grand wedge Hey! This is 'Link with Stripe'. You can turn it off in your Checkout settings if you wish: https://dashboard.stripe.com/account/checkout/settings
@grand wedge More info here: https://stripe.com/docs/payments/checkout/customization#link-with-stripe
Learn about the different ways you can customize your Stripe Checkout integration.
Ah great, thanks!
@flat flicker Hey! Can you share the ID of the specific request that's failing? https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Hi folks! I see that one can get an invoice pdf url from stripe API.
But how can I get a url to the receipt pdf?
I know I can download it via the dashboard, but I can't figure out how to do it via the API
Hi, you have a invoice_pdfinside an invoice object: https://stripe.com/docs/api/invoices/object#invoice_object-invoice_pdf
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Yes, thanks. But I need receipt pdf :/
something like this: https://dashboard.stripe.com/emails/receipts/invrc_1JIUwxJaOpuZG7JMSlT57gFU/pdf
@vocal wagon There's receipt_url field on the related Charge object: https://stripe.com/docs/api/charges/object#charge_object-receipt_url
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I have tried that as well. But this is a link to a website: https://pay.stripe.com/receipts/acct_1H0NgnJaOpuZG7JM/ch_1JID2fJaOpuZG7JMEe0imV9y/rcpt_Jw5DeAIAQX1fPIhp911oHDvXDgjKoEG
not a downloadable pdf
@vocal wagon Yeah there's no field for the PDF file I'm afraid. It can be downloaded from that page
ok, I understand. That is a problem, cause I wanted to do it programatically. But I will have to figure something out
thanks for trying to help
@vocal wagon Yeah I guess you'd need to scrape the URL from that page or something
Hi. We're about to implement our Express account. One of my devs asked me about clients disconnecting their accounts and I wanted to sense check some logic if that's ok
The dev says when the client disconnects their account, that data will be gone forever. If they reconnect this will be a new fresh account. Is this best practice?
Also, is it perhaps easier to disable disconnecting the Stripe express account, as I can't think of a reason they would want to disconnect and create a new one?
And, if we do allow them to disconnect (will go with whatever you recommend), if they have an existing balance, do you recommend we automatically pay this out as part of the disconnection, or let it run on the normal payout cycle?
@lyric iris Hey there. Specifically which data are you concerned about losing?
A lot of our clients are a little trigger happy and do things without thinking. I'm worried about them for example wanting to change their bank details and disconnecting, then reconnecting to enter the data again, then being really annoyed when their transaction history is lost.
That's one example. But truthfully I'm more just looking for guidance on what best practice is here so we can copy that as you and your previous clients will know much better what works well and doesn't than we can predict at this stage
Hello beloved Stripe Devs,
How can we omit 3D Secure Authentication from our IOS app ...?
Looking for your kind response.
Thanks and regards.
@lyric iris their transaction history should not be lost when the Express account reconnects. I'm wondering if the dev has a specific example to share when they say this?
@rocky turret Hello. Why would you want to remove 3DS auth from your integration? This can result in an increase in failed payments
Hey 👋 we're setting up the return_url as part of an account links integration. Is there a preference to have the URL be an API (which returns a URL) or just the URL directly?
@lyric iris the only possibility that i can think of is if you're using Connect Onboarding - which will always create a new account
🤔 i guess that's why the Dev mentioned that
So I've been told by someone in my team:
"if the user disconnects and reconnect to the same account again we will get him new empty Dashboard" and "every time i connect i got a new stripe account id".
Is this incorrect?
@little bone Hello there! There's no preference per se, either will work as long as the URL exists. Just depends on your integration flow. In most cases, people will redirect to a specific page in their application and make any additional API calls from there
@lyric iris maybe check with them if you're using Connect Onboarding [0] a.ka. account links [1]
[0] https://stripe.com/docs/connect/connect-onboarding
[1] https://stripe.com/docs/api/account_links
for context, for connect onboarding, yes it will always create a new account. If you want to be able to reconnect existing Express accounts (which may have accidentally been disconnected), you would want to implement OAuth : https://stripe.com/docs/connect/oauth-express-accounts
Thanks for this. I'll pass this onto them now
You're welcome!
Thanks for your time Ynnoj
yes we have in mind that too, but we are going to perform some tests , for now we need to disable 3D secure auth, kindly guide us how can we do that ?
@rocky turret Well, you don't need to opt out of it really. You'd just use test cards which don't require 3DS: https://stripe.com/docs/testing#international-cards
Learn about the different methods to test your integration before going live.
what if we disable it from dashboard those 3 Stripe Radar rules for 3D s
Yes test cards are helpful but we are going to test in live mode, ok if some payments failed we will be using our live cards for the scenario.
Hi, i m trying create a component in vue with stripe (customed form for checkout).
I've included on the head (public/index.html):
<script src="https://js.stripe.com/v3/"></script>
and in the component:
mounted() {
this.stripe = Stripe("my pk_test...");
and the Error console on the browser, throws several errors as this:
Feature Policy: Skipping unsupported feature name “payment”.
What means this error?
hello, i have developed a stripe in php. If i try deploy it on heroku, the page doesn't work... wky?
why?
(I m not stripe support) but in heroku do you have https actived for your domain?
@rocky turret Well, you shouldn't be testing in live mode regardless
@autumn bridge Hey! This sounds like a browser warning about an unsupported feature (as opposed to an actual error)
@autumn bridge In this case it's safe to ignore. Nothing is broken and everything will still function as needed!
@river bay Hello! Can you provide any more details? Any specific errors or perhaps share the page/URL you're using?
hi @hollow prairie. Warnings appear just when I include the script tag for https://js.stripe.com/v3/ the rest of code is empty
Hi, does anyone know if there is a call to stripe that allows through the id price to add a link for payment?
@autumn bridge Yep, it's just the browser advising that a certain feature Stripe.js intends to use is not currently supported. Is it Firefox?
yes! is firefox nightly 0.92 (last version)
@wanton bison Hey. Hmm, I'm not sure I understand your question. Are you using Payment Links? Checkout?
@hollow prairie of sure.
In local, it works correctly.
This is the page in local:
@autumn bridge Yeah this is a pretty common report and it's safe to ignore!
on heroku @hollow prairie
I create the product, I associate a price to it and then I would like to create the link to send it to the payment
@river bay You need to check your logs in your Heroku dyno. For some reason something is returning a 500 error in your application
How to pay with Grab App,it's not web in iOS.
@wanton bison Like a Payment Link? Or using the API?
https://stripe.com/docs/payments/no-code#send-a-payment-link
Get started quickly, without writing any code.
@unreal wren Hello. You can read up on a GrabPay integration here: https://stripe.com/docs/payments/grabpay/accept-a-payment?platform=ios
Or did you have a specific question?
Learn how to accept GrabPay, a common payment method in Southeast Asia.
But i need to create before the payment link
@wanton bison I'm not sure I understand unfortunately. If you've created a Product and a Price in the Dashboard, you can create a Payment Link to share from there directly
@wanton bison Otherwise you can pass your price_xxx object when creating a Checkout Session: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-price
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I create the product and the price through an api service in net-core, but I can't find a way always through api to create the payment link
@wanton bison Ah, got it. Right now there's no API for creating Payment Links
and to get the link?
@wanton bison You can create one here: https://dashboard.stripe.com/payment-links
no dear, the page doesn't load...
@river bay I'm afraid I've no insight into the issue without some logs from your Heroku server
@hollow prairie
@river bay Ok, that's a start! What version of PHP and stripe-php are you using?
@hollow prairie how do i check the versions?
@river bay I think Heroku version depends on the stack you're using: https://devcenter.heroku.com/articles/php-support
@river bay Are you using Composer with PHP? Seems like you're missing the mbstring dependency (which stripe-php requires): https://github.com/stripe/stripe-php#dependencies
@river bay If you're not using Composer then you'll need to make that mbstring dependency available in your application
i don't know if i'm using composer..
Hi Stripe Devs, can you tell me how to integrating Bank redirect payment method on Android app? Because I can't find any example of it
@river bay You'll need to add mbstring then!
@river bay Seems relevant: https://coderwall.com/p/deyqua/how-to-use-mbstring-on-heroku-php
@junior badge Hey! Which specific bank redirect method? We support a few: https://stripe.com/docs/payments/bank-redirects
Sofort, pls
@junior badge Here you go: https://stripe.com/docs/payments/sofort/accept-a-payment?platform=android
Learn how to accept Sofort, a common payment method in Europe.
Oh thanks
@golden cosmos Hi again. So I've just been asked the following. I'm hoping you can help.
Background info:
On test we currently have:
- account A > connect Stripe its account_id : acct_1J9t0vQYz6Ks4dhJ
- then disconnect Stripe then connect again it takes new account_id : acct_1JIWxZQaLzzlXEHJ
- email: Austraia2@mailinator.com (edited)
when we disconnect we use api : https://connect.stripe.com/oauth/deauthorize
Q1 - is there another api to disconnect ?
Q2 - how can i get the same old id when i re-connect with the same email again
@lyric iris 1) https://stripe.com/docs/connect/oauth-reference#post-deauthorize
2) Those 2 account IDs you've shared have different email addresses. In your testing has it not been possible to re-establish the same account ID with the same email address using OAuth to reconnect? https://stripe.com/docs/connect/oauth-express-accounts
Use the OAuth connection flow to allow an Express user to connect to your platform.
This reference lists available public methods for our OAuth endpoints for Connect.
Hi Stripe Devs.
This is a suggestion regarding the PaymentSheetUI for stripe-ios.
The premise is that the new PaymentSheetUI is a very nice solution.
In PaymentSheetUI, there is a postal code input form for AVS. (This may not be the correct understanding.)
This can be controlled to show or hide by selecting the country.
I am developing in Japan, and Japanese credit card issuer do not generally support AVS.
Therefore, for Japanese credit card users, the postal code input form at the time of payment is not necessary.
However, since Japan is a country with a postal code system, Japan is not defined in countriesWithNoPostalCodes. Therefore, the postal code input form will be displayed.
As mentioned above, even if a country has a postal code system, there are cases where a postal code input form is not necessary, so it would be great if there is an interface that can be customized to not show the form for certain countries, for example.
Please let me know if there are any mistakes or suggestions on this.
Best regards.
https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet
https://stripe.com/docs/disputes/prevention/verification#avs-check
https://github.com/stripe/stripe-ios/blob/591f54d11f6f60be609e294f7dd7570c0ad32b49/Stripe/STPPostalCodeValidator.swift#L183-L253
@sinful heart Hey! Thanks for sharing that great feedback! My recommendation would be to raise an issue on the GitHub repo directly. That way the team that maintain the SDK can evaluate it!
@river bay Your Composer file contains invalid JSON. Can you paste it here?
Thank you!
Here, I wanted to make sure once the proposal looked okay, so I appreciate the response!
Hello, does anyone know how to enable discount codes on Stripe Checkout (client only)?
"require": {
"ext-mbstring": "*"
}
Thanks for this. The tester is saying we only use Austraia2@mailinator.com and no other emails. You've mentioned you can see 2 different email addresses connecting to these accounts. Can you provide them please so I can have the team look into this?
@vocal wagon Hey! Client only Checkout doesn't support promotional codes as noted here: https://stripe.com/docs/payments/checkout/client
@river bay Is that the entire contents of the file?
@hollow prairie yes, in the composer.json
@river bay Should be something like:
{
"require": {
"ext-mbstring": "*"
}
}
Thank you
@river bay Sorry, not hugely familiar with PHP/Composer!
oh no..
@river bay But what I shared is actual valid JSON, so try that!
@lyric iris I can't really share that here, but your team can retrieve account details via the API: https://stripe.com/docs/api/accounts/retrieve
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
A 'composer.lock' file was not found in your project, but there
remote: ! is a 'composer.json' file with dependencies inside 'require'.
A 'composer.lock' file was not found in your project, but there
remote: ! is a 'composer.json' file with dependencies inside 'require'.
Thanks I've asked the team to look
1.Is it possible to release partial amount from hold amount on connect account(from charge)? I mean releasing just $500 out of $2000 hold amount?
2.How many holds we can create on connect account? I mean can we create 20 holds of $100 each instead of 1 hold for amount $2000?
3.Can we payout partial amount and refund rest of the amount back to customer(from charge)? I mean release $500 and refund rest $1500 back to customer?
How much will be charges in above cases?
@river bay This issue isn't Stripe specific. You should look at the Composer docs and figure out what's going on
@hot jetty If you need a 'no code' solution that supports coupons/promotional codes, have you tried Payment Links? https://stripe.com/docs/payments/payment-links
Learn how to create a payment page and embed or share a link to it.
i dont' undestand ... do you have a tutorial for compser.json and compser.lock for php ??
@river bay No, because they aren't Stripe affiliated. Just developer tools in the PHP space: https://getcomposer.org/
A Dependency Manager for PHP
and then?
Hi guys, not sure whom to address my question: if I use some stripe fake cards for testing, is there any possibility to see my fake transactions somewhere? I need to check which currency was used for transactions
mornin folks
We have stripe.js v2 with Sources. Maybe, is there any way to use Sources with automatic payments (off session)? If not, we will need to rewrite our the integration for stripe v3 api
@smoky hedge 1) Yep, you can do partial capture. You just need to pass a value to amount_to_capture which is smaller than the initial amount value: https://stripe.com/docs/payments/capture-later#capture-funds
2) There's no specific limit here, it just makes it more awkward for you to then capture an amount on 20x charges
3) I'm not sure I understand, but if you only partially capture an authorised charge then the remaining uncaptured amount will be automatically released
Separate authorization and capture to create a charge now, but capture funds later.
@cunning swan There's not, no. Sources are an older API we generally discourage use of now. https://stripe.com/docs/sources
Learn about the different payment methods and mechanisms available through the Sources API.
@noble epoch The currency of the payment intent/charge is what will be used as presentment for your customers, you can see this in the API or dashboard. After that, your customers bank will determine how payments are processed against a card.
Hi Stripe, we are attempting to integrate our website with our mobile app and for this we are using our test keys. if we try and setup a customer and submit a customer test card to stripe it isn't saving so we cant test the retrieval of payment card tokens? how do we do this?
This is covered here in the docs: https://stripe.com/docs/currencies/conversions
Learn more about how Stripe handles currency conversions for you.
@fringe wolf What are you doing to save the card?
- So if my charge is $100, then i will create charge and make hold on connect account, when go for payout what need to do ...?? let suppose release only $10 out of this rest will be refunded ?.
2.Alright, means no limit there either in the form of amount or transaction, i am right ?.
We are making a payment with the card so we are assuming it saves with it if its a new card?
I see - by default no, that doesn't happen. You need to indicate that you want to save the payment method for future use. We have a doc covering this here:
https://stripe.com/docs/payments/save-during-payment
Learn how to save card details during a payment.
Hi everyone,
I have some trouble enabling payment capabilities for my stripe accounts.
Stripe ask me for additional information like "individual.verification.document" but those information are not required to enable payments (ref. https://stripe.com/docs/connect/required-verification-information#IT-full-individual--card_payments|transfers) and i don't have the 7 days grace before the capabilities are disabled.
The problem started 3 weeks ago, does someone has the same problem?
Thanks
Learn what required verification information you need to collect for each country when using Connect.
@smoky hedge
- The remaining uncaptured funds from the authorised charge will be released, yes. So in the example of a $100 authorisation, if you only capture $10 of that then the remaining $90 will be automatically released
- There's no theoretical limit to the number of charges you can create no. There is a limit to the charge
amountin some cases: https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
See what currencies you can use for making charges and for paying out to your bank account.
Hi everyone!
I have a question regarding trial period on subscription while using Checkout. Usage of trial period on prices is discouraged as per documentation. And it says you should add 'trial_end' argument when creating Subscription through API. But with Checkout, subscription is created for us - we get it through checkout session. So how can you create subscription with trial period through Checkout?
@hollow prairie to make stripe work online, do I need composer.json, composer.lock and vendor?
@vocal wagon As noted here, you may sometimes be asked to verify info with an identity document, this is expected:
https://stripe.com/docs/connect/required-verification-information#additional-information-on-the-individual
Learn what required verification information you need to collect for each country when using Connect.
@vocal wagon What kind of accounts are you using? Do you have an example account ID that i can look at?
hey there! When using Checkout, you can provide some parameters for the underlying subscription via the subscription_data parameter. eg:
subscription_data: { trial_end: 1627574833 }
https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-subscription_data-trial_end
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Awesome! Thank you!
@river bay You don't need Composer, no. You can manually install stripe-php (https://github.com/stripe/stripe-php#manual-installation), but then you'll need to provide the additional dependencies yourself (specifically mbstring as this is the source of your original issue)
hi @daring lodge, thanks for your fast reply, you can check this account "acct_1JBGj72EGm6rjhzv", it's a connected account, by the way stripe ask for those documents for every single account i create. Can i do something to avoid this?
@river bay If you use Composer, then it takes away the need for you to manage those additional dependencies yourself
1.Released to custom (refund) to destination connect account (payout)..? means 90$ payout automatically and what for 10$..?
Hi there! I'm finding some unexpected (at least for us) behaviour when using the /invoices/upcoming endpoint. I have a sample request on req_Pslk9E9rypKmy8:
This is for a customer that has a coupon that expires in 3 months. However, even if we pass subscription_proration_date set to over 5 months from now, the response for the upcoming invoice endpoint still adds the discount to the line that says Remaining time.... How is that possible? is this intended?
I'm not sure what that is, but it doesn't sound like something we support. Can you provide some context/examples of exactly what you're trying to do?
Guys, I have a question. I'm getting IntegrationError: handleCardAction: The PaymentIntent supplied does not require manual server-side confirmation. Please use confirmCardPayment instead to complete the payment on our website when we try to call handleCardAction on a PaymentIntent coming from a subscription update. The payment intent has status requires_action when this method is called, but it tells us to use confirmCardPayment which does not make a lot of sense?
Do you have any example invoices where this actually applied incorrectly, or is the issue limited to the upcoming invoice endpoint for now?
I can't try actually doing the change to get the invoice since I'd have to wait for a while
The PaymentIntent is pi_1JIZGdLj11Ytqxjbge1kP5xR
But i mean you don't have any already existing examples of this happening unexpectedly, right? I think this might be an issue with future expiring coupons and the upcoming invoice endpoint, is why i ask.
that's right, I don't have any 👍
@daring lodge ??
Can you rephrase this? I'm not sure what you're asking
thank you for the quick response , here is what i want to do , to collect payment i am planing to use stripe a main payment gateway along side paysafecard https://www.paysafecard.com/en-us/ to collect payments . i want stripe to keep sync with paysafecard payment gateway
paysafecard is a simple and safe prepaid payment method that allows you to make payments online without the use of a bank account or credit card information
1.Is it possible to release partial amount from hold amount on connect account(from charge)? I mean releasing just $500 out of $2000 hold amount? (from charge)
This is the intended pattern for handle subscription payment actions, yea. Handle card action is only when you're doing manual confirmation.
https://stripe.com/docs/billing/subscriptions/overview#requires-action
Learn how subscriptions work within Stripe.
Yes, that's what @hollow prairie described to you earlier. You'd use amount_to_capture=150000 to capture $1500 and the other $500 would be refunded to the customer
Hello 🙂
I'm looking for some help concerning the online payment. I'm using Odoo and it's addon to connect to Stripe.
Since 1 week, I'm facing some trouble with some of my customers :
They have to pay more than 1 time before Odoo validate the sale order, but, as I look onto the Stripe DashBoard, the payment has been done multiple time.
Is it possible to know why the payment validation is not sent to Odoo from the dashbord ?
@daring lodge
then can i update the existing charge then give permimeter amount_to_capture="x", actually my connect account is manual custom type , so that mean $1500 is available for payout , then create manual payout for $1500 amount, right ?
Thanks - yea this is not a payment method we currently support, so there is no integration option available for you.
General question - Is there anyway to stop manually Stripe Webhook events from refiring? I have a client which had one failed webhook out of 10000+, but it has kept resending a lot making it show a lot more errors then it actually is which is problematic for them
Well there would be Stripe fees etc, and it depends on exactly what type of charges you're creating, but that's roughly right. $1500 would be captured from the customer, the balance after fees would be added to your balance (or transferred to your connected account, whatever you configured).
so, any difference between when update the charge or use us amount_to_capture option, it looks same ?
@daring lodge Okay. I'm slightly confused. So handleCardAction would be used when? When the payment intent has requires_confirmation?
Or before that step, when it has requires_action and would then transition to requires_confirmation ?
@daring lodge ??
What do you mean manual webhooks? Are you generating events with the CLI? I don't think these retry, but I could be wrong.
Again, I'm not sure what you're asking here. Can you perhaps provide an example request or 2 to illustrate the difference you're talking about?
Unless you mean manually stop webhook retries, from normal delivery? Can you share an endpoint id? we_1234 eg
No I mean I have checkout sessions. After checkout it hits my Webhook which marks the transaction as complete and sends receipt. We had a hiccup in the email service, so after it had been marked complete it couldnt send mail. Meaning it didnt return 200 to stripe. This is now making Stripe to keep resending this webhook event over and over and we want to stop Stripe from sending this one again.
Handle card action is use for requires_action but only when you're using server confirmation:
https://stripe.com/docs/payments/accept-a-payment-synchronously?platform=web#web-handle-next-actions
if you're not doing server confirmation, you can ignore it (unless i'm forgetting something)
Learn how to confirm a payment on your server and handle card authentication requests.
If you respond with a 200 it will stop 🙂
Okay. I think I got it, I was just confused because the "when you're using manual vs automatic" is not entirely clear for subscriptions vs. manually creating intents.
@daring lodge Thanks
NP!
Yeah issue is its really badly coded so it doesnt check if its already marked as complete so it just falls over - and we don't have access to the code anymore. Is there no way we can manually stop this event in Stripe?
Alright, let suppose customer is charged with $100 and make transfer to connect account (manual payout). I need to make $90 remains in the connect as hold rest $10 refund to customer . In this case i can also update the charge or may be can use amount to capture...?
@daring lodge can you perhaps nudge whoever maintains your iOS SDK? Because I have a situation where server-confirmed updates (that don't require SCA) cause the Apple Pay sheet to hang, and it is preventing us from releasing our app without running a forked version of the SDK: https://github.com/stripe/stripe-ios/pull/1851/files
Maybe it's not the good channel to ask this kind of question ?
https://stripe.com/docs/webhooks/best-practices#retry-logic
If your endpoint has been disabled or deleted when we attempt a retry, future retries of that event will be prevented. However, if you disable and then re-enable a webhook endpoint before we’re able to retry, you should still expect to see future retry attempts.
Implement these best practices when using webhooks.
Will it keep retrying forever unless we patch the webhook?
(we cant disable the endpoint)
If the event is received you should respond with a 200. It is important to keep in mind that responding to the webhook delivery is only to acknowledge receipt, it has nothing to do with any processing you might do as a result with the data.
No, it tries for a few days and then stops as a failure
Okay that should be fine in that case. I know I have written many webhooks and it should be robust and definitely handle scenarios like this. Problem was its an old project before I even started working here and we don't have access to code anymore but old client is asking about this 😛 Thanks for help
is there any other log or info I can provide to make things easier?
@daring lodge ??
Hey @cerulean roost It looks like Odoo is probably going to need to help you with this, as they are the platform that controls the integration here. However, can you clarify what you mean here:
the payment has been done multiple time.
It's community edition 🙂
The payment has been done multiple time by the customer due to the non-response from Stripe (or something else). That's why I need to get the logs from Stripe to understand why Odoo didn't validate the payment
Hmm is this with following the guide for this flow here? Which part of the documented flow is not working as you expect?
https://stripe.com/docs/payments/accept-a-payment-synchronously?platform=ios#ios-collect-card-details
Learn how to confirm a payment on your server and handle card authentication requests.
If you can provide an example payment intent ID or two I can take a look
@daring lodge When you attemp to pay for a subscription update using Apple Pay, and you're using pending updates on your subscription, and the update does not trigger an SCA, you cannot use Apple Pay as it is right now. That seems like a mistake and my PR fixes that problem.
Or should I say, you cannot use Apple Pay at all as it never triggers SCA
Yes
Once the payment intent is confirmed (and is requires_capture) you can't modify the amount, you'd use amount_to_capture for this during the capture request.
Let me rephrase as this has nothing to do with SCA, I just use the same endpoint for both card and Apple Pay, so my server will return a client secret to the client only if an action is required, otherwise the payment is completed on the server and there is nothing for the client to do. Your Apple Pay implementation does not support this case as it is right now, and I cannot change to using client-confirmation of the payment intent as that is not possible when doing pending updates on subscriptions.
I'm not sure if supported/valid to use an apple pay payment method in that scenario, but filing an issue along side your PR explaining the flow would be helpful. Alternatively, writing in to support@stripe.com with steps to repro this so we can raise it with the engineering team
I explained it in the PR though
And why would you not allow people to pay for subscription updates using Apple Pay?
Hmm I think i see the issue, since you can't do the server confirmation with the payment method like you would for a single payment, right?
Yes
Or, the other way around. Apple Pay normally confirms the payment inent
and in this case it does not, which it does not know how to handle
and it just stalls and times out
I talked to koopajah (I think, or maybe hmunoz) last week, so I just wanted to nudge the PR
As it is preventing us from deploying without shipping a forked version
@daring lodge
but ,can we make update the charge amount , means increase or decrease the actual amount (if not using capture option )... ?
Ok awesome, thanks for walking me through the explanation @vocal stump - I've raised this with the IOS SDK team to take a look. One of them should reach out to you via that PR soon.
@daring lodge Thanks
Before confirming it, sure, but not after
Can we make charge and transfer and confirm charge later , this kind of action not sure ..?
If you want finer control of these things you can use Separate Charges & Transfers and collect payments and make transfers completely separate from each other.
https://stripe.com/docs/connect/charges-transfers
With Connect, you can make charges on your platform account on behalf of connected accounts, perform transfers separately, and retain funds in the process.
Otherwise, no, you can't transfer any amount of a destination charge before capturing.
Ok, thanks, I'm on the logs and events, I have to compare them with my server logs to understand. But, for Stripe, each payment are considered as single payment. So, I guess that Odoo didn't get the stripe responses.
Maybe the server was too busy at this time... but it sounds weird...
Actually we are using connect account as hold not platform connect, Also that mean first i need to confirm the payment then transfer happen in my scenario, Also amount is not update after transfer i am right ?
if my client choose to pay in cash how can i process the payment on stripe
If you're in your Stripe dashboard can you copy one of the payment intent id (like pi_1234) from the URL while looking at that page?
What country is your customer in?
Can you provide an example payment id to make this more concrete, i feel like we're straying around multiple scenarios. If you're doing direct charges there is no connect account transfer since it's already on that account.
pi_1JIViSJAeeo5aupa6ydDUryc
I need to test my app, I need some testing card which works once, but then it fails in recurring charges for subscription, ie simply works once so that I would need to add another card. How to create such card for testing just like in paypal when we can add dummy balance in testing cards manually ?
Hello! I would like to know what is wrong with my attempt to mock Stripe error (this is not being recognized as type *stripe.Error):
err := json.NewEncoder(w).Encode(&stripe.Error{
Msg: "invalid request: " + fmt.Sprintf(msg, params...),
Param: property,
Type: "invalid_request_error",
HTTPStatusCode: 400,
RequestID: "req_GfzpHQ97YIhDyS",
})
I appreciate your help.
payment id "pi_1JHogNGOBPjZ1Bk2CSENaivz", please have am look .
Thanks - this payment succeeded, so what exactly is the issue you have with it? That Odoo doesn't know about it?
I think you are doing some mistake while making attempt of mocking Stripe request
my customers are located in France
Have you identified the mistake here?
show me the code, I can try
Is there any resource that I can take as a guide.
what do you want to do , I might be having some answer
For getting available balance right away you can use the first two test cards here, 0077 and 0278:
https://stripe.com/docs/testing#cards-responses
For testing failed subscription payments, use the 0341 card there to attach to a customer & subscription with a trial but the payment will fail when the trial ends. Or, you can use the 3184 SCA card to have the renewal require authentication:
https://stripe.com/docs/testing#regulatory-cards
Learn about the different methods to test your integration before going live.
I'm mocking the entire Stripe responses, so I need to also mock Error responses.
We don't support any voucher payment method in france right now, only Oxxo in Mexico and Boleto in Brazil: https://stripe.com/docs/payments/vouchers
Learn about voucher payment methods with Stripe.
I mean do you want to charge subscription or one time charge ?
hii,
i was purchasing a subscrption with the payment gateway stripe,
the amount was deducted from the card but it showed incorrect cvv,
please someone help
I'm not really sure, this isn't something we explicitly support. Is there not any error messages to point you toward what might be missing?
thanks buddy, let me find if there is some card in that list which works once and fails on subsequent attempts
hii,
i was purchasing a subscrption with the payment gateway stripe,
the amount was deducted from the card but it showed incorrect cvv,
please someone help
What should i do?
yeah if she could share the code (only the portion which is causing error) that will be much easier
err := json.NewEncoder(w).Encode(&stripe.Error{
Msg: "invalid request: " + fmt.Sprintf(msg, params...),
Param: property,
Type: "invalid_request_error",
HTTPStatusCode: 400,
RequestID: "req_GfzpHQ97YIhDyS",
})
This is where it fails:
if se, ok := err.(*stripe.Error); ok && se.Type == stripe.ErrorTypeInvalidRequest {
// Fails: Not of type (*stripe.Error)}
I saw that the payment secceed, but, Odoo didn't get the response, So, I'm looking for the reason : Does Stripe sent the response thrue API (It seem's), Does Odoo didn't get the response (It seems), so, why. That's my part.
What do you mean showed incorrect CVV? Are you trying to test an integration you're building, or are you a customer?
Bonjour, je cherche à mettre en place un bon de réduction sur un abonnement annuel. Ce bon doit permettre d'avoir 2 mois gratuits. Je ne vois pas comment faire, une idée ?
Hello, I am looking to set up a discount coupon on an annual subscription. This voucher must allow you to have 2 months free. I do not see how to do, any idea?
Hi there - we can only assist developers with integrations in english here. For support in French please contact support: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I'm trying to end a trial that has a balance on an account without a credit card but the UI is not letting me. How can I do this?
It's not a specific use case but need it for testing
I really don't know - this would typically be done with webhooks configured in your account or by connecting via connect but i see neither of those on your account. You'll need to work with Odoo support to understand what's needed in terms of configuration.
The CLI also complains about the customer not having a default payment method
That doesn't seem to indicate which part of the data is not matching the type as expected, but i really don't know about that.
@reef gazelle hello
Can you provide an example subscription or request ID to look at? I'm not entirely sure what you mean.
Hi @bold basalt! @daring lodge req_2JLiQvuyI4WPJV for a CLI request (stripe subscriptions update sub_JwTurNK5e5IWFu -d "trial_end=now") and req_UMfocqHVDDc5Ie for the UI (end trial now button on subscription update)
Thanks. Have a nice day
I need to simulate someone signing up for a 14 day trial, going through the trial without adding a credit card, and then the trial ending (without my QA's having to wait 14 days 🙂 )
you're welcome, and you too
Hello! 🙂 I have two questions about the refund process (they might seem basic, but I’d like to be 100% clear)
- does stripe charge a fee to refund customers?
- We use express for our connected account onboarding, meaning per transaction with the original purchase there is a charge from stripe too, is this fee also refunded to the customer, or does stripe keep this fee?
@obsidian vault If you're a customer you need to speak with the seller you are trying to buy from to get help with your payment. if you're the developer for the seller, please share more details about what you're trying to test/debug.
@vocal wagon 1/ pretty sure there is no fee for refund
2/ the Stripe fee (assuming you're referring to 2.9%+30c fee) is not refunded
i'm trying to set up "other businesses to accept payments directly" <- https://stripe.com/docs/connect/enable-payment-acceptance-guide someone has done this in the past?
Facilitate direct payments between other businesses and their own customers.
@vocal wagon hello, sounds like you're integrating Direct Charges, what questions do you have about it
yes, i have to integrate it with a Travel Booking WordPress Theme, i would know if i can do it without woo commerce
@vocal wagon ah I see, will you be writing your own code to integrate? If so, then yes the API is there for you to integrate against.
i've never done this before, so if someone reccomends me a solution i will be happy
@vocal wagon are you a developer building an integration? Or interested in an off the shelf type solution?
@torn stratus no idea sorry
@bold basalt yes i'm a developer building an integration
Guys is there anyway to create subscription product for like 5 seconds only ? I want to do some testing like subscription ends and the cards fails to charge automatically, since least subscription period is 1 day, is it possible to set for some seconds for testing purposes or to complete some subscription manually for testing ?
@leaden thorn hello, to auto delete a Product/Price? no that isn't possible, you can delete manually after a webhook event
dont want to delete, but to make subscription consumed out, so that it opts to recharge again through invoice and dont want to wait for entire day
@vocal wagon ah I don't fully understand your question then
so if someone reccomends me a solution i will be happy
what do you mean by that? to clarify, the doc you linked shows how you would build your code integration to onboard accounts and make Direct Charges on them
@leaden thorn "but to make subscription consumed out, so that it opts to recharge again through invoice" -> I don't understand, can you rephrase what expected behavior you want?
I want to add a subscription of 5 seconds, it runs for 5 seconds then it expires and tries to collect new payment through invoice, I want to test this scenario ie paying again after failing to collect invoice through recurring payments of subscription
@bold basalt i'm going to integrate in that way, but if someone knows a specific plugin that do the same
@vocal wagon ah I see, yeah I don't know any off hand, the one resource I do know is the Partners Directory that documents some of the Platforms/Plugins that are built on Stripe: https://stripe.com/partners/apps-and-extensions
@leaden thorn you can manually pay the Subscription's latest Invoice in that case.
Create a Customer, attach a card to them that will fail on Charge (like pm_card_chargeCustomerFail )
Create a Subscription on that Customer with trial for 30s or so, so it creates the Subscription in trial, then attempts to charge the card after 30s.
Then after that fails, you can manually pay the Invoice again.
@bold basalt thank u
@reef gazelle Set the trial_end for your subscription to like an hour in the future or something (or less, depending on what you're testing)
@daring lodge thank you for your amazing support 💯
thanks man, it looks like it will work. you got a great brain there !
Do MOTO params need to be enabled on every account that handles CC information themselves? Or is this something that's only required in certain countries/banks?
@stuck ginkgo hello, if you're passing the MOTO parameter, you need it activated on each account, irrespective of the region
*each account that is passing that param
Ok - I suppose what I mean is the opposite, then - is it ever the case that an account can handle CC information without passing MOTO params?
Or are they a prereq
@stuck ginkgo it is possible, why do you ask?
basically passing the MOTO parameter in the API requires account to have that feature activated on it, otherwise you cannot pass that parameter.
Accessing card information directly is possible without MOTO too, if you are PCI compliant. Curious what the use-case is
Hey sorry, looks like we might have missed you here. To do this, we'd suggest just using a shorter trial, specifically set trial_end to be a few minutes away.
@daring lodge any update on this? I'm going offline so it'd be fantastic if I could at least give folks in my team some feedback
Is there a way of seeing a graph of total subscriptions over time? Also is there a way of seeing recently unsubscribed customers?
@river ridge hello, do you mean via the API ? or just Dashboard?
Preferably the dashboard, but either would work
@river ridge the API doesn't offer an easy way to do either, for Dashboard, I'd check in with the Support team at https://support.stripe.com/contact , they're more informed on the Dashboard functionality so might be able to help
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 thanks, i'll take a look.
I hit a wall trying to repro this earlier - give me a few minutes
sure! no worries! I'm going offline now but I'll read through tomorrow. Thanks for the support 🙇
Hi, I am a member of Funding Talent / forextips 101 and I want to do purchase but my card is declined. It said :
"The payment has been declined as Stripe suspects it is fraudulent."
Previously I have been able to use this card many times
Please how do I clear this trouble? thanks
It would actually be helpful if you could write in to support with the details of exactly what outcome you expect and the sequence of requests involved.
When I test the upcoming invoice for a % off coupon that has a duration ending before the renewal, i end up with no discount, but this contradicts what you see.
@hearty mauve hello, this is somethign you should reach out to the company you're paying on for, they can help you with that. This channel is for developers who are integrating Stripe into their websites
oh I see
thank you
Hello! @vocal wagon and I are working together on this - just to follow up...
What we'd expect to see is that the discount isn't applied to any of the lines on the upcoming invoice, since the coupon won't be valid on the proration date supplied. What we do in fact see is that the following lines have a discount applied:
Unused time on 12 × REDACTED (with 25.0% off) after 29 Jan 2022
Remaining time on 13 × REDACTED (with 25.0% off) after 29 Jan 2022
13 Contributor × REDACTED (at $99.00 / year)
They're the lines for the request we originally supplied req_Pslk9E9rypKmy8.
If you look up the associated subscription you'll see the coupon is only valid for three months (until 1635500699). However we're calling the upcoming invoice endpoint with the proration date of 1643458248 as you see in the proration lines (Jan 2022). What we're trying to understand is why a discount has been applied to these lines when the coupon won't be valid then?
Hallo, I hope this message is not too long,
I am creating a PaymentIntent on the server with:
await stripe.paymentIntents.create(
{
amount: total,
currency: "EUR",
// confirmation_method: 'manual',
// confirm: false,
application_fee_amount: appSpecificFinalFee,
// payment_method_types: ["card"],
customer: stripeCustomerId
},
{
stripeAccount: stripeConnectedCustomerId /// customer connected to our platform
},
async function (error: any, paymentIntent: any) {
........
and I am trying to confirm it with apple pay on flutter, using the flutter_stripe library and the function:
final response = await fetchPaymentIntentClientSecret(orderState);
final clientSecret = response['client_secret'];
var resultOfConfirmation = await Stripe.instance.confirmApplePayPayment(clientSecret);
but the operation is always returning:
flutter: Error: PlatformException(Failed, Payment not completed, null, null)
can someone help?
Also going offline now, but hopefully this helps clarify 🤞 Thanks!
@night kite hello, looking
Can someone explain to me why a subscription's (sub_JwUWfjNI1eRLNo) upcoming invoice has 2 billing periods worth of charges in it?
Created today with product a, switched to product b. I have line items for remaining time on product b, and unused time on product a; for period of July 29 -> Aug 29 (expected). But also, I have the charge for product b for August 29 -> Sept 29? That last line item seems like it shouldn't be there?
Hello, can someone help me understand why my stripe-cli is not forwarding events to my localhost server's webhook endpoint?
like it works after a few days
then I try to keep testing with my same account
and I get issus
@night kite so the flutter stripe SDK is a third party one that I'm not very familiar with, is it possible to dig into the confirmApplePayPayment function and see where it is returning that error?
also how far does it get on the app? like does it show the Apple Pay sheet? or error's before that
@feral haven hello, what issues do you get?
@reef gazelle looking
The debit card option not working, there any email address that i could send to get support?
the link doesn't works
@distant sand hello, what do you mean "The debit card option not working" -> where does it not work?
Couple days ago I asked about debit card transaction...
Like, My stripe account is from Brazil and the user is from other country, the user would like to pay my service with debit card..
I asked, if this kind of transaction is possible,
Just no events are pending
@distant sand what were you told a few days back? I'm not familiar with any restrictions on debit cards in brazil
Also the Stripe Support is unable to help me remove Unnamed Accounts
@feral haven any errors? on your cli listen terminal window?
Hi everyone, first time posting here, very new to Stripe. Here's a diagram of what I'm trying to achieve. I think it should be pretty straightforward, but I'm missing that yellow part of the puzzle. I have tried using a PaymentIntent with confirm=true, but this has a hard-coded single amount, and I'd rather it was an object that linked to the Product and TaxRate so everything could be linked for easy interrogation in the Dashboard by the accounts people.
No
Like I said... it works
then all of a sudden, after more testing, it stops.
I think Stripe is api limiting from my ip address due to me constantly making events
on a test account
however, how else am I supposed to fix my code without these events
this said, the is no problem to received payment with DEBIT card from other country...
@reef gazelle so for the next Invoice, you're first going to charge for Product B, which is why it is there, for the next month Aug 29 - Sep 29, which it has to
Then the proration is returning the credit for used/unused time on the existing Subscription to account for the current period.
@bold basalt so the function is described as follows:
/// Confirms the Apple pay payment using the provided [clientSecret].
/// Use this method when the form is being submitted.
///
/// Throws an [StripeError] in confirming the payment fails.
Future<void> confirmApplePayPayment(
String clientSecret,
) async {
await _awaitForSettings();
if (!isApplePaySupported.value) {
//throw StripeError<ApplePayError>
//(ApplePayError.canceled, 'APPLE_PAY_NOT_SUPPORTED_MESSAGE');
}
try {
await _platform.confirmApplePayPayment(clientSecret);
} on StripeError {
rethrow;
}
}
I see the error also in the Apple Pay Sheet.
So our clients are companies. They register with our system and enter their payment details, stored as a PaymentMethod. Once this is set up, their users are able to use our software to generate reports. The client (company) is charged for every report generated, at the moment it is generated.
Hi folks, I have a subscription project that charges folks in USD but I am ready to expand it internationally. From what I gather, my only solution is to create a Customer and make sure the Subscription is with a Price object in their target currency, is that correct? That will make the currency of choice for that Customer and it will automatically be settled in the currency of my choice. Secondly, is there a recommended way to display an estimated price for a Subscription in a foreign currency, for a scenario that its Price is in USD? Say my customer is in Australia and I want to present an estimated price they will pay in AUD. It seems possible with immediate charges but I was wondering if it's possible in Subscriptions. Thanks for considering my question!
@feral haven I've seen that happen sometimes except I get error on my end, I just have to restart my listen command. I would recommend opening an issue at :https://github.com/stripe/stripe-cli/issues/
Please do include explicit screenshots of how it works, then stops, any errors in the window, etc.
@bold basalt do you know how to delete an associated account from my "main" stripe account
I can't seem to delete them
and the support on stripe has no idea either lmao
So you're saying the charge for the next month happens at the beginning of the next month instead of the end? I just don't understand how that upcoming invoice has a period end and period start of:
"period_end": Sunday, August 29, 2021 3:53:06 PM,
"period_start": Thursday, July 29, 2021 3:53:06 PM,
And it's also got line items for charges outside that period (ie, aug 29 -> sept 29).
Is Stripe just grouping ALL upcoming charges into one invoice, when there are actually technically 2 invoices there?
@feral haven I haven't done that actually, I would ask Stripe Support again, it should be doable.
hello, i am starting to investigate the reconciliation of our transactions to payouts. Short of myself digging in the reporting api, i assume we can get a back of Stripe transactions by payout ID ?
@feral haven Have you tried closing the account by following these steps? https://support.stripe.com/questions/close-a-stripe-account
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.
Yes It seems like you have created all of them but not all are currently connected to the account, as well please note deleting the accounts will not remove them from the Dashboard, so basically the accounts will still be shown
from support
you actually cannot delete them lmao
I did this... that delete option is not
on my accounts
Yes, unfrotunately We don't delete data from the Stripe network. Those accounts won't function as Express accounts any more, but we will keep a record of them for our own financial reporting and data protection responsibilities```
Dude...
@feral haven Sorry, maybe I'm missing some context. Are these Connect accounts? If so what type of accounts are they (Standard, Express, or Custom)? If not, are these accounts showing up in the account switcher in the top left of your Dashboard?
They do not
show up on the top left
I made these "accounts" when testing my stripe connect system on my application
due to a sql ORM update error, I made like 10+ accounts to test the webhook and sql code
now Stripe is saying that this information is now permanently associated with my stripe account FOREVER
LOOK AT THIS SHIT
@feral haven Ah, gotcha. If they're in test mode you should be able to delete them at any time using this API: https://stripe.com/docs/api/accounts/delete
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@feral haven Please don't swear here, we'd like to keep things PG.
@feral haven What happens when you try, do you get an error?
You must understand how frustrated I am with Stripe here....
Yeah
I was deleting it
@feral haven You just shared your live API key, you should roll that immediately. You should never share your secret API keys, as they can be used to do just about anything on your account. Since you shared your key here I strongly recommend you immediately roll your API key (which will create a new key and block the old one) as explained here: https://stripe.com/docs/keys#rolling-keys
Manage your API keys to authenticate requests with Stripe.
@feral haven If it's got a secret key in it I'm going to delete it. I can't tell if it's active or not.
I replaced the numbers with DERP
Redact the key before sharing.
how is that a active key?
Not on the second line!
I just did
-u sk_live_DERP \
-X DELETE
Enter host password for user 'sk_live_DERP':
{
"error": {
"code": "account_invalid",
"doc_url": "https://stripe.com/docs/error-codes/account-invalid",
"message": "The provided key 'sk_live_*********************************************************************************************DERP' does not have access to account 'acct_1DERP' (or that account does not exist). Application access may have been revoked.",
"type": "invalid_request_error"
}```
There we go!
What's the account ID?
Hey @bold basalt sorry to double ping just don't want this to get lost in the channel #dev-help message
@feral haven Okay, hang on, let me take a look...
I've tried both LIve and Test keys
The ones used to create the account tooo
It doesn't work lmao
Like stripe support gave up
Yes, I understand and I really wish you could remove them from your data, but this is not currently possible. But I really think you're right and there should be an option as this are test inactive account, I'll definitely check with our dev team and let them know about this feedback
@feral haven What's the account ID of the platform account that created this Express account?
@feral haven Oh, wait I see it, hang on...
@feral haven Okay, will you try the delete API again with the secret test API key from account acct_1HTrvyFqJbE6gTuU?
@feral haven Looking at the logs it doesn't appear that's been tried yet.
Look at this
Stripe is telling me I cannot delete these accounts....
They are obviously fake!
@feral haven We understand the problem, and I'm trying to help you. Can you try what I recommended above?
Same error
@feral haven Let me check the logs, one sec...
@feral haven Yeah, I don't see a log for that request under this account? Are you sure you're using the right API key?
{
"error": {
"message": "You cannot use this method on your own account: you may only use it on connected accounts.",
"type": "invalid_request_error"
}
}
@feral haven Why are you trying to delete your own account? I thought you wanted to delete the Express account?
@feral haven You're making a request to DELETE /v1/accounts/acct_1HTrvyFqJbE6gTuU instead of DELETE /v1/accounts/acct_1JG9Z32HsLslw2Nd
Yes
SOrry
I tried doing that
and I get the same INVALID ACCESS error thing
with both test key and live key
so I'm kind adone
This is impossible it seems like
wasted almost two hours on this
GOnna just make a new Stripe account and burry this one
it has my phone number
so I can't
Awesome
😄 STRIPE IS GREAT
@feral haven In the Dashboard click on the account switcher in the top left and create a new account from there.
@feral haven That will create a whole new Stripe account.
I don't want all this data associated with my account
@feral haven It won't be, it will be an entirely new account.
Ummm
all the previous accounts will still show up
it's not a clean slate then, isn't it?
@feral haven It will be linked to your same Stripe user account, but the Stripe account itself will be completely independent of the existing one.
Exactly, I don't care about that...
I want a clean user account
I don't want my stripe looking like this
Like seriously?
I'm stuck with this...
@feral haven You shared that screenshot earlier, we saw it. Again, trying to help you as much as I can.
Exactly, like Stripe support said... It is impossible to remove
This is just fantastic and a complete waste of my time
@kind pulsar & @vocal wagon This is related to the fact that you made updates to the subscription in question to switch to monthly billing and back:
https://dashboard.stripe.com/test/logs/req_M6re2PYwptG6i2
https://dashboard.stripe.com/test/logs/req_McHy7XlEQ30nz6
This ended up apply the coupon to the annual plan, for the entire renewal period. That's where the discounted 12x and 13x prorated amounts come from (based on your prorate date).
If you want the prorated increased quantity to not carry the discount of the current period, you can include coupon='' (empty string) to clear it. Then You should get a proration line for 13x without a discount, plus the full annual 13x line.
@feral haven The account you shared earlier that you tried to delete looks like it was never onboarded and actually connected to your platform account. If you complete the onboarding process and establish that connection, then try to delete after that it may work.
@feral haven I think these accounts are stuck because they're only partially through the onboarding process.
This information is circumspect, why doesn't stripe just provide clear reasoning behind this? It is seriously sketchy I have no control over these data.
I cannot delete Joeeyyyy Fartyyy... come on guys...
this is insane I have to jump through this many hoops to do this
the guy is trying to help you and you're just whining
Nah, I have every right to complain this is egregious
Anyway I'm done
I honestly give up
thanks
@feral haven Sorry I wasn't able to help, hope you have a good day!
@mighty hill looks like hmunoz is offline, would you mind helping me out with the problem I'm having here? #dev-help message
@mighty hill Yeah, let me take a look...
Thanks a lot!
@reef gazelle Okay, looking at this upcoming Invoice in the Dashboard I'm seeing what you're describing. This looks normal to me; let me explain why and then if you have questions I'd be happy to discuss further!
- You created the Subscription for the $30 plan
- You ~immediately switched the Subscription from the $30 plan to a $10 plan
The upcoming Invoice now shows two line items for the current period (JUL 29 - AUG 29, 2021). One is for the unused time spent on the $30 plan (which is all of it, since you switched plans immediately) and the other is for the remaining time spent on the $10 plan (which, again, is all of it since the switch happened immediately).
For the upcoming period (AUG 29 - SEP 29, 2021) there's an additional line item for the $10 for next month. Licensed Subsriptions like this one bill in advance for the upcoming period (i.e., you're paying for the next month, not the previous month, when Invoiced).
You're seeing both periods because this Invoice needs to account for changes made during the current period and the amount that will be charged to pay for the next period.
So would you say that to get my desired behaviour, I should switch these prices to being metered instead of licensed?
@reef gazelle Can you tell me more about your desired behavior and use case?
Just typing up right now 🙂
Hi everyone- new to discord but I have some Stripe API questions that I am super stuck on. Is this the correct channel/way of asking?
@mighty hill
Currently, we have a single product, in a per_seat sort of model. We have a complex usage calculation (it's not as simple as discrete amounts of seats) that we process at EOM and update the stripe invoice with. Basically, we calculate how many "full" users and how many "partial" users we had for the month for each day, and then multiply that by the price.
Now, we're offering 3 products (it's now 3 different tiers), and need to be able to do this usage calculation at the EOM while accounting for the ability for the customer to switch plans mid-month. That's where this immediate product change came in, you start on the highest tier, and can switch to a lower one when your trial ends if you don't need the features (was just trying to set up test data)
What I was hoping was I would have a list of line items
product A for dates July 29 -> July 30
product B for dates July 30 -> Aug 29
...etc...
So that we could chronologically go through our usage calculation, and multiply the "usage" for that day based on the price for that day according to the invoice, but having that next month price in the line items makes it weird
@reef gazelle Have you looked at metered billing instead of licensed? It sounds like it's a much better fit for your use case: https://stripe.com/docs/billing/subscriptions/metered-billing
Hi
I have a question about removing prorate when creating subscription
This is my backend code
subscriptions.create({
customer: cus,
items: plan,
billing_cycle_anchor: billday,
proration_behavior: "none"
})
frontend code
let plan = [];
let data = {
price: planId,
quantity: 1,
tax_rates: [taxid]
};
await plan.push(data);
createSubscription(cus, plan, billday)
PROBLEM
When i proceed with payment, subscription is created but no payment is processed, what am i doing wrong
if i remove proration_behavior from the backend code payment proceed but proration exist, PLEASE HELP
Hey there
Have a question regarding testing Apple Pay integration
I made an Apple sandbox account, to get access to the test cards numbers, but the paymentRequestButton doesn't shown to that account (for the real account it works as expected)
Do I need to do something special in order to make it work on the test environment?
Thanks
I haven't, but will. Thanks for the suggestion
We are trying to retrieve the exact Stripe fee charged (hopefully) at the time the card it charged. Here is the scenario: We are the master platform, we are making direct charges using a connected Standard account, we are using the pre-built checkout form with payment intents. For reporting purposes to our client, we need the exact amount of the Stripe fee charged at the time or purchase. The balance transaction object returned with the application_fee.created webhook is empty. How do we get the Stripe fee to insert into our database (hopefully) without having to make another express call to the API? Thanks!
Hey everyone i have an issue. I closed my google account and therefore changed my email adresse but i can't recall my password and i can't ask for a new one
How can i change the adresse on my stripe accound without being able to access it?
threads are so .... private ish!! weird
@light ferry 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
I know that's why maybe a support email adresse
@open crystal Yeah, we're experimenting with them... it's interesting!
@light ferry What do you mean?
Thanks
Hi team
i am using Subscription API when i convert the current_period_start to date format it's showing 1970-01-01
$date=date("Y-m-d",strtotime($invoice->current_period_start));
using php
Diagram
Hey everyone, things got busy there and we're still getting used to threads. If anyone has an outstanding question that was not addressed yet please ask again so we can help you!
Thanks for your patience while we figure this all out! 🙂
I tried Stripe CLI on Win10 to create and serve a sample but all I got in the Chrome browser was a directory list.
I'm not familiar with Windows 10 web servers anymore but it sounds like you need to set up a webserver first. That's not something we can help with here but something like https://answers.microsoft.com/en-us/windows/forum/all/running-a-web-server-on-windows-10-home-edition/041e2a2d-66d4-4111-afd8-14c7c7152088 is likely what you want.
IPlease see https://stripe.com/docs/cli/serve It along with the create command above implies don't need a server
Yep, but if your local machine isn't set up with (for example) a hosts file or configured to serve files instead of just listing the directory, you still need to configure it properly.
e.g. https://stackoverflow.com/questions/40428074/iis-7-5-only-shows-directory-list-or-403-instead-of-asp-net-application (that may not be your issue there, but it's an example of how Windows can get in the way of things due to config issues)
I would think this is the job of the HTTP server set up by the stripe CLI, No?
Hi there, I'm looking at creating direct charges with Connect via invoicing. I'm looking at how I can create a unique list of customers per connected account. I would like to be able to store these customers in both the platform account and the connected account. Is there a way to go about cloning a customer to a connected account without using the tokenized representation of that customer's payment information? These customer objects don't yet have payment information attached to them, so there's no way to use the token to get that customer's information in the connected account's customer list, unless I'm missing something.
Nothing that the CLI tool can do would override your local machine's configuration.
Are you saying the Stripe CLI process is not starting it own HTTP listener? the URL printed by the command is just localhoast with a port number.How would IIS know the mapping to the root of the sample? Where would put config info?
Hey guys. Just got an email from Apple telling me to renew my Apple Pay certificate and to contact my "Payment Service Provider" which I assume is Stripe. I can easily generate a new certificate and such, but what else do I need to do? Will this require an update of the appleid-file in the .well-known folder?
(We're using Apple Pay via Stripe in production)
I'm suspecting your local configuration is routing the localhost request before the CLI can route it to the webserver. Are you suspecting that the CLI tool isn't creating the web server in the first place?
Do you see anything in the logs that would indicate an error when the CLI starts serving?
C:\Users\Tim\source\repos\accept-a-payment>stripe serve
Starting static file server at address http://localhost:4242
So this command only serves static content? Only meant to display client pictures?
It's a static web server (meaning the content it displays isn't dynamic). Those logs mean it should be serving fine, which is why I'm guessing the problem is in your local machine's configuration. Unfortunately we can't help with that kind of local troubleshooting since each machine is its own configuration and it doesn't appear to be any issue with the CLI itself.
TTFN then
I have found in documentation that it says I can locate apikeys at dashboard.stripe.com/apikeys but when I login using my account that has phone verification and then select my woocommerce account it redirects to the woocommerce profile details rather than apikeys. Attempts to change the url just requires logging back in and the same loop occurs. Do I need a different account for api keys?
👋 Hey there, I have a question regarding Stripe Tax, the "low code" integration and tax behavior, inclusive vs exclusive. I'd like to have one price that I can set the tax behavior on based on the customer, i.e. for US customers vs EU customers, etc. From what I understand, the tax behavior is set on the Price object, so we'd have to assign different prices to different customers, to configure different tax behaviors. Is it true that you cannot change tax behavior per subscription? It must be specified per price?
no need.. i just created a test product for 20$ then sent it to myself and paid it.. apparently it is eligible for chargeback protection so it seems i can just create payment links instead of figuring out how to make my own checkout :-)
i did have another question though.. so i am eligible for instant payouts.. i set to manual to test it and it worked.. i can have automatic payouts and still indtant transfer as needed right? would just need to increase it from daily to every 2 days or something so the funds are in the available balance long enough for me to instant transfer?
if i set to daily usually by time i go to transfer its already scheduled to payout then i have to wait
You can basically payout the pending balance for instant payouts
Hey. So one of our clients wants to issue a membership where people pay for the first period, but the billing cycle won't start until day x. Can this be done with trials?
A prepaid trial so to speak
https://stripe.com/docs/billing/invoices/subscription#first-invoice-extra you'd use that and have a trial
Hmm. But that would mean creating an invoice item that matches the price of the first period, yes?
hum now I don't understand your use-case exactly. But if they pay $10 upfront for a 3 months trial on a $10 monthly sub then yes you need a $10 one-off price
That is the use-case exactly
just upfront price equal to first period
But wouldn't this bill them for the first period when the trial ends?
ack then yes you need 2 prices today. We're hoping to let you us recurring prices as "one-off"
I could combine this with a 100% one-time discount I suppose
I think this is going to be "this is not happening in two weeks, sorry"
there's no need for any discount
But when the trial ends wouldn't it pay for the first period otherwise?
Subscription for $10 monthly with a trial that starts today until November 1st. You want to pay $10 upfront
You create a sub with trial_end: <timestamp Nov 1st> and you also attach an extra invoice item for a $10 price (non recurring) in add_invoice_items
this charges $10 today and then will charge $10 a month starting November 1st
Yeah it shouldn't charge anything on november 1st
it should prepay for the first period without moving the billing anchor
so ocotober 15th you pay 10 dollars, and 10 dollars again on december 1st
nothing on november 1st
Elaboration: nightclubs are currently closed in Denmark but will open september 2. We want to issue memberships that people can sign up for at any time but won't actually start cycling before september 2
and we need them to pay for the first period whne they sign up
practically just extending the first period to however many days are until september 2
Hey guys 🙂 how can I combine dynamic tax rates with B2B sales within EU. Because if sb provides his TaxID and he is located in another EU country, then there should be no VAT due to reverse charge. In my tests stripe didn't do that automatically and I dont know how to implement that when I get the billing address only on checkout and not before. My client doesnt want to pay for the automatic tax feature...
This is outside the scope of Stripe, I believe, Adrian. Just don't put VAT on the invoice. That's what we do at least for other EU countries.
@vocal stump aaaaaah you want "pre-billing" basically. We're working on it but no timeline
@crimson needle So you're saying it won't be ready within the next two weeks when the client wants it?
Because that's just awful news for me.... 😆
sigh of relief
So, my webhook controller ran into an issue today.
Stripe sent two charge.captured webhooks at the same instant for the same terminal purchase
both returned 200, just trying to figure out why I'd get sent the same event twice at the same instant, instead of waiting to see if the webhook failed before resending
thansk for yoru answer, but I think this will result in legal issues to just not display the vat in B2C cases aswell
@cold patrol We report the VAT outside of Stripe in total; how many countries we billed for how much, and the tax will be collected that way. Perfectly legal.
okay, I thought you would have to show it on invoices if its applied
I'm not an accountant though, just wanted to say that we don't put VAT on invoices for other countries as we were told not to
is it the same event id the evt_123?
Yes
I even diff'd the two bodies and they were identical as well
which is a good thing if the event being sent was identical I guess
okay so that can totally happen though it's confusing/uncommon let me find the docs
I think from a theoretical perspective it's impossible to guarantee only-once delivery
So you should probably just deduplicate based on event id, @echo pollen
yeah, I'm just working on dropping an extra level of queuing jobs on top of the jobs that the webhook generates now
so if I get the same webhook twice I only process it once
You can solve this with SQL, a transaction and unique column
We store all webhooks we get for this reason
Yep just store the event id after any logic/processing and before you execute any logic/processing check if you already have the event_id stored in the DB it can really be that simple as 1 field/column because you can always pull the full event from stripe with it.
is it possible to apply a coupon when changing a subscriptions item quantity? or when adding an additional price?
Hey there,
Is anyone familiar with Stripe integration for MERN web apps?
I have been trying to get it working on my web app. But it continually fails, and it seems like this would be a simple task, however it just wont work.
We are trying to retrieve the exact Stripe fee charged (hopefully) at the time the card is charged.
Here is the scenario: We are the master platform, we are making direct charges using a connected Standard account, we are using the** pre-built checkout** form with payment intents charging the card immediately. For reporting purposes to our client, we need the exact amount of the Stripe fee charged at the time or purchase.
How do we get the exact Stripe fee to insert into our database (hopefully) without having to make another express call to the API?
We were instructed to listen for a webhook from our connect account. We have created a Stripe connect webhook for charge.succeeded and payment_intent.succeeded. We are testing both with Stripe CLI and our application.
There are now two issues. The first being the Stripe fees do not seem to be part of ether webhook response. We have confirmed with using the stripe trigger function in the CLI.
The second issue is that when we do a test purchase creating a direct charge to the connected Standard account, only the application_fee for our master account is returned and no connect webhooks are returned.
The scenario of being able to retrieve the exact Stripe fees from a transaction at the time of charge seems to be something that should be obvious and simple. What are we missing here? Has anyone else run into this issue? Thanks!
Im not able to run "stripe" on my linux server
i have stripe installed and configured
i have to go the the dir with stripe and do ./stripe
@glad dust that usually means you didn't add it to your path
how do I add it to path on ubuntu 18
I need help back into my account?
@glad dust I don't know I'm sorry, it's specific to your own system. I usually update my .bashrc and add export PATH="<new_PATH>:$PATH" for example
:question: @bleak valley Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact
I have 3 of these in my path but when i do "stripe" it still doesnt recognize it
I'm sorry I don't know much about linux and PATH resolution. I don't think any of those paths make sense.
Where is the binary installed exactly? Like what's the full path to the stripe binary on your system?
then /usr/stripe should work in your path and make stripe available as a command. Maybe you have the wrong permissions for that tool like you need to use chmod +x or similar? I'm sorry I have no clue I'm wildly guessing
how did you install it?
I downloaded the tar.gz from the Github releases page and executed the command tar -xvf stripe_1.7.0_linux_x86_64.tar.gz
cool okay so you misunderstand how this works mostly
try export PATH="/usr:$PATH"
and then try again to run stripe
the PATH variable doesn't want the full path with the command/binary itself
ah
it wants the "path to the binary" so if you had put stripe inside /usr/stripe-tools/ for example you'd do export PATH="/usr/stripe-tools:$PATH"
here you put the binary in usr (uncommon I think, it should be inside /usr/bin usually at least) so you needed to add /usr in your path
I'd recommend undoing that and moving to binary to /usr/bin where a lot of other commands/tools must live!
cus_JuKPY7fe7y1JXH gives me invoice_settings->default_payment_method = null even though it clearly has a default payment method on the dashboard. What am I missing?
@crimson needle Do you think you would consider, in an API upgrade that is, to automatically reverse applied balance on invoices when they are voided? It seems like this should happen automatically. I'm just thinking about how I boiled it down to listening to webhooks for invoice.voided and reversing the difference between starting_balance and ending_balance. From the perspective of "this invoice never happened", which essentially is what a void indicates, it seems odd to me that it can still consume actual credit.
we already did that 18 months ago!
Customer balances applied to all invoices are now debited or credited back to the customer when voided. Earlier, applied customer balances were not returned back to the customer and were consumed.
Sooo why does it not do that when voiding invoices for pending subscription updates?
I just spent a whole day working around this problem so i don't really understand this
no idea. You always ask questions behind questions :p
Do you have a concrete example I can look at?
maybe your account's default API version is older than the one I mentioned
or maybe it doesn't work with pending updates (looking into our jira database)
If you can provide a concrete example I can have a look in the meantime
ah yes I can see a nice jira report from early 2020 with that exact issue and a todo 😦
Any ETA on the todo? Because when you "fix" it I might end up in a situation where I reverse the amount twice?
As I handle it manually now
no ETA for now, it'd likely be another API version I think though it's a bug fix so maybe not. No one is working on it at least but I'm re-raising it
It's kind of a dangerous thing to "fix" in this case
yep agreed. We'd either do an API version, or we'd find affected users (like you) and warn them (or disable the fix for them)
Does the JIRA report mention that this only affects invoices generated for pending updates?
Just trying to scope in how much I would need to adjust if it was fixed
well the jira is specifically about those yes.
other invoices should work per the API version
(we shipped pending_updates after that API version if I remember correctly and the behaviour was just missed)
pending_updates is not used as much as we originally expected
Okay so, if a connected account is on a version from before this void-behavior was modified, and they run a subscription that was created from the platform, and that platform creates an update, which issues an invoice, and this invoice is then voided - which behavior would apply? Normally I'd expect all connected accounts to behave like the platform API version when I send requests, but in this case it's somewhere inbetween
And I'm sorry to hear that, being one of the people who pushed for that feature 😄 At least I was told that my "feedback was heavily discussed" prior to it being shipped.
Am I able to run https://github.com/stripe-samples/checkout-single-subscription on github pages?
@vocal stump it depends who voids the invoice basically and if on an old API version if they pass consume_applied_balance_on_void as false or not.
and I was super excited about the feature too but it didn't get as much excitement as we hoped and it wasn't that common an issue after all at least for now
@glad dust not really, I'd recommend just using PaymentLinks in that kind of environments https://stripe.com/docs/payments/payment-links
ok
but I can't pass consume_applied_balance_on_void to it if the invoice gets voided because pending updates expire?
as this happens automagically
correct
Also, maybe you should disable link previews for chat. I notice people remove it 9/10 times and it is a little annyoing with the big previews coming in and out
Maybe this is not a server config though
So in this case I wouldn't be able to tell if I needed to reverse the amount or not, as that would depend on the version of the connected account?
I suppose I could just go through all the connected accounts and make sure their version is higher than that
yeah link preview is helpful for specific things. FWIW I think I'm the only one removing basically all of the bad ones 😹
Don't have that many
it relaxes me
Cool, it was just a suggestion but it seems you cant turn it off server-wide anyway
per-user config
yep totally
So reading the docs you linked
Set invoice_customer_balance_settings[consume_applied_balance_on_void] to false in /v1/subscriptions create or update to force this behavior for Invoices voided by a Subscription.
could I set that to true and expect it to work, assuming you did not have that bug?
I mean regardless of connected account API version
Odd wording though that it says to set it to false to force the behavior
yes I think it works and is a setting for the sub overall, though you can just create the sub with a recent API version otherwise I think
I always create the subs from the platform using latest API
but it's not clear if I should pass that option or not in that case
no you shouldn't in that case
I'll have to take a closer look at it tomorrow. I'm out. Thanks for your help as usual.
have a good night
UTC+2 so probably going to have myself some sleeps
Is it possible to redirect someone after they complete a payment with a payment link?
Not at the moment no
Koopa. Put angle brackets around your link
This disables the link preview
is it possible to retrieve an (ach) bank account object in stripe without the CustomerId, only the BankAccountId
or retrieve the Source object with the BankAccountId?!?
I’m just trying to retrieve the .Last4 but currently my integration does not save a customer to my charge object
@mossy cape if i understand your question correctly, you are asking if it is possible to retrieve the Last4 from a charge object?
not exactly. I’m just trying to retrieve the last 4 of a bank account in stripe
but I’m not sure if it’s possible without a customerId
@mossy cape let me look into this and i'll get back shortly!
thanks @golden cosmos ☺️
What port are Stripe webhooks sent on?
@mossy cape it isn't possible via the API to retrieve bank account [0]. However, you should be able to see the last 4 in the charge.succeeded event for an ACH debit payment if that helps.
[0] https://stripe.com/docs/api/external_account_bank_accounts/retrieve
Standard HTTP port 80 I believe
ok ty
@glad dust It depends on what you set up in your webhook endpoint settings. If you don't specify a port there it'll default to the standard HTTP port
thank you, i thought so. i need it when a charge hasn’t occurred yet but i guess that means i should be persisting a customer id
Can someone please help me out.
I am using Stripe to create a subscription on my Node.js webapp.
However I repeatedly get this error: {"error":{"message":"Missing required param: line_items[0][currency]."}}
I know its from priceId being undefined, but im not sure why it is
yep!
Front end:
<form action={`${API}/create-checkout-session`} method="POST"> <input type="hidden" name="priceId" value="price_1JIQc6Hfb2x6qKH5BfPbu3PV" /> <img src="/img/professional.png" width="120" height="120" /> <div class="name">Professional</div> <div class="price">$18</div> <div class="duration">per month</div> <button id="pro-plan-btn">Select</button> </form>
BackEnd: ```const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
exports.pay = async (req, res) => {
const domainURL = process.env.CLIENT_URL;
const { priceId } = req.body;
try {
const session = await stripe.checkout.sessions.create({
mode: "subscription",
payment_method_types: ["card"],
line_items: [
{
price: priceId,
quantity: 1,
},
],
success_url: ${domainURL}/success.html?session_id={CHECKOUT_SESSION_ID},
cancel_url: ${domainURL}/canceled.html,
});
return res.redirect(303, session.url);
} catch (e) {
res.status(400);
return res.send({
error: {
message: e.message,
},
});
}
};
I get an error saying, "{"error":{"message":"Missing required param: line_items[0][currency]."}}" in my Node.js web app.
and im not sure how to fix it
I am using the basic integration of stripe, and it just doesnt work...
@muted hill taking a look!
I appreciate it, thank you
Hello everybody! Is there a way to make a metered billing subscription with checkout and the customer portal? Many thanks!
@muted hill could you print the value of priceid in your backend to see if it is a price id?
sure
I got undefined, which is what i expected, but i dont know how to make it defined lol.
I made the product in the stripe dashboard, i used the correct priceId, so i dont know whats wrong
@muted hill this two pages have samples which may be a good reference on how to implement checkout:
https://stripe.com/docs/checkout/integration-builder
https://github.com/stripe-samples/checkout-single-subscription
@muted hill is your frontend passing the priceid as part of the post request to your backend? You may want to check on that first
Thats the thing, @golden cosmos ive reviewed these links, and other resources, I must be missing something, thats why i resorted to discord
@muted hill maybe lets look at this step by step, can you print out and share what is the req.body?
sure
req.body return {}
so priceId is undefined
and req.body is {}
@golden cosmos so that means the input in the frontend isnt actually being sent then right?
type="hidden"
name="priceId"
value="price_1JIQc6Hfb2x6qKH5BfPbu3PV"
/>```
35 billion dollar company made by two teenagers and i cant even integrate their api lol.
@muted hill since you're using a HTML form, your server would need to parse an urlEncoded response. If you're using Express, can you check if you're using something like app.use(express.urlencoded());
I am not using express.urlencoded() should I?
yep, please add that line in and try!
for more context, while POST requests often use JSON, using a HTML form submit uses urlEncoded instead. More info here: https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data
omg i think it worked
that's great!
2 entire days i spent doing this.
Thanks so much @golden cosmos really cant thank you enough!!!
@muted hill always happy to help! Hope you have a great day and please don't hesitate to reach out in case you have any other questions!
Hi guys, how are you? i really need help, i'm a bit new to stripe in app development.
My concern is the following, I have my expo react native payment code which must return the amount of an article to the Stripe back-end which is in nodeJS, but it does not work below the react and nodejs code
What's the problem exactly? Are you getting an error?
Thanks but that's not really helpful without knowing what exactly your issue is
the problem is that when I validate the payment I receive a JSON error like this JSON Parse error Unexpected identifier oject
Sounds like you have an error on your server. You should check your server logs
I tried, when I give a fixed value to the backend amount and I validate it has no problem or error,
but when I want it to retrieve the exact value returned from the front-end, it gives me an error, I modified the code several times but still the same
Your frontend code passes items: { id: 'Bikees App Reservation' } to your backend. Your backend then tries to calculate the total by looking at items[amount] which doesn't exist. Hence you're probably sending amount: undefined to the Stripe API which is causing your code to break
Before I use another method, but he give me this type error: JSON Parse error unrecognized token <
That means that your server is erroring and returning something that isn't valid JSON to your frontend. This usually means that you have a server error and you should look at your server logs
on stripe side I not receive error on logs
If you can access a network tab on your client, it should show you the request you made to your backend and the resulting error message
on node side I can't install nodemon, so I run with node server.js
Yeah that's fine, since you haven't wrapped your API call in a try/catch block you should still see the error in your terminal
Hi, so for a while now, I've been trying to get an international subscription model on my Connect platform up and running, which would allow users to purchase subscriptions for connected accounts that use a different bank account currency than my own platform. This means that I cannot use the transfer_data parameter in Stripe billing (due to the currency differences). I have been emailing with support, which suggested to use the on_behalf_of parameter to update invoices after they are created from the subscription to map to the connected account's StripeId. However, when doing so, I am now getting this error: {"status":400,"message":"You cannot specify an 'on_behalf_of' parameter when updating an invoice created by a subscription.","request_id":"req_hvdioXMhpojqPP","type":"invalid_request_error"}
Is there something I am still doing wrong?
(wouldn't this be 443 for https sites?)
Hi Team ... I have setup a bank account in test mode.. Now when I try to create a customer and added subscription. but the amount is not reflected in the bank account balance
kindly help me on understanding on how to check the customers payment to market place ?
Do you have a subscription ID?
but in general, the charge will appear in your Stripe balance and takes time to appear in your bank account.
And there will be no actual payout in test mode.
sub_JwgRx30VwxocLW
hey @bronze hedge, sorry about the confusion, i believe some time back, we advised that you write in to Stripe Support to get a feature enabled so that you can use on_behalf_of with subscriptions. I just checked and it looks like that feature has not been enabled yet. I'll help mention that this needs to be done to Stripe Support who is currently handling your open ticket.
Yes, thank you that would be great, and I really appreciate that. I mentioned that to Stripe support, but they just advised to try updating invoices.
you can find your payment on your dashboard here https://dashboard.stripe.com/test/payments/pi_1JIn4bChHNy99f8cfCfuHZdB
The balance is displayed in your dashboard here
https://dashboard.stripe.com/test/balance/overview
again, you will not see these balance move to your bank account because it is test mode. There no money movement thus nothing will show to your bank account
Heya People :)
Whats the API call to send the receipt to a customer?
We have invoices for $0, we're able to send the $0 invoice for payment (lol) We would prefer to send the receipt for the $0 invoice.
I don't think there is a specific API call to send receipts, like there is for invoice.send( unless using payment intents.
There's no API endpoint to send an email to customers, however you can use the hosted_invoice_url to send them to a Stripe hosted representation: https://stripe.com/docs/api/invoices/object#invoice_object-hosted_invoice_url
Or if you prefer you can send your own email and attach the invoice PDF: https://stripe.com/docs/api/invoices/object#invoice_object-invoice_pdf
Good Afternoon here and Happy Friday. I'm getting confused about which publishable key should our customer use to generate a token to be processed by our platform (in direct charge and in destination charge). I tend to think direct charge they should use their own publishable key, and destination they should use our platform publishable key, right?
Both should use your platform key
the difference here is
- direct charge: platform publishable key + stripe-account header
- destination charge: platform pk is enough
Hi Stripe Team,
I am using this
const { error: confirmError } = await stripe.confirmCardPayment(
payment.stripe.clientSecret,
{ payment_method: ev.paymentMethod.id },
{ handleActions: false }
);
to perform a Payment Request Button submition.
Yesterday I have reported that after using a WRONG CVC, Stripe doesnt throw me a fail status. The Support ( @dry hatch ) has replied to me that I should try with live keys as I was using the test key yesterday. With live keys, it was mentioned that it will work fine.
Now after trying with live it still managed to go thru. Can I check with you if this is valid issue?
Payment Intent Id for this case in our live site is pi_1JIoHkF5utpDAv9TOlb3Sy4g
Sweet, thank you 🙂
Also for the issue I posted above it says INCOMPLETE in our Dashboard but I was wondering how come it didnt throw a fail for stripe.confirmCardPayment
Should I be doing other calls to ensure our customer has correct card with valid CVC
Your PI is in the requires_action state because you passed in handleActions: false when confirming. Meaning you will have to confirm the payment again, which might fail since you've passed in the wrong CVC. Although ultimately whether the wrong CVC gets accepted or not is up to the issuing bank.
sorry not sure if I understand correctly so I need to set my handleActions to true?
@noble sonnet the PI is right now in an incomplete state because it requires 3DS authentication. Typically, the ConfirmCardPayment method will automatically handle the 3DS flow. However, passing in handleActions: false disables the automatic handling.
so yes, if you would like Stripe to handle that for you, you can not pass in the handleActions parameter. By default, this parameter is set to true.
Ok got it. So if I pay using a credit card with a wrong CVC and the handleActions is set to TRUE, it should fail right? like stripe will send me a fail state?
Is it possible to make the right half of the stripe hosted checkout not white?
like does it have a dark mode?
you can configure in the dashboard here https://dashboard.stripe.com/settings/branding
Yeah, that lets me change the left half's background but the right is still eye blidning whtie
o.. let me check.
@noble sonnet i think you might want to check to see if this is enabled on your Dashboard - https://stripe.com/docs/disputes/prevention/verification#cvc-check. For context, a payment can still be successful even if the CVC or postal code check fails. Stripe has built-in rules so you can block payments even if they’ve been approved by the card issuer - https://stripe.com/docs/radar/rules#traditional-bank-checks
Hi,
I am building an integration to collector service at this time and I need to hook to invoice.paid webhook. How can I distinguish between invoices paid through Stripe and invoices status change of "Mark invoice paid outside of Stripe" while listening the invoice.paid webhook? Maybe payment_intent is missing while the invoice was marked paid outside of Stripe - is this correct way to identify my scenario or some other?
I could not find anything and it does not support dark mode yet unfortunately.
Darn, that's what I feared. Thank you for checking though! I couldn't find anything so I thought I'd ask.
The team would love to bring the dark mode to checkout. But there is no time line yet
okay thanks @golden cosmos will check this
@vocal wagon taking a look at your question!
@golden cosmos Is it possible to create an invoice before creating invoiceitems? I'm getting a "there's nothing to invoice error"
@vocal wagon actually that does seem like the best way.
Is it bad practice to not open up the same payment intent if the user cancels and goes back in?
@golden cosmos is it guaranateed that the invoice does not contain payment_intent when "Marked paid outside of Stripe" even, when the invoice had been tried to be paid with eg. Stripe Card PM without a success?
Like, I could setup a DB to store sessions but is it worth doing?
There actually is a way to determine this. invoice.payment_succeeded 0 will trigger whenever a Invoice is paid, unless it was marked paid out-of-band. invoice.paid 1 will trigger when an invoice is paid, regardless of how it was paid
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
However since you're the one paying the invoice out of band via calling the /v1/invoices/:id/pay endpoint, you should know when an invoice was paid out of band, no?
@bleak breach Thank you! This means that when I hook to invoice.payment_succeeded instead of invoice.paid I can trust that the invoice was paid in Stripe instead of "outside of Stripe".
This would not work because there are customer support workers doing "things" on Dashboard - and I need to work with webhooks at this time.
Correct, invoice.payment_succeeded won't fire if an invoice was paid out of band
ログインが出来ません。
Hi, is it possible to get some card info into our platform? Like card holder name, exp date, last 4 digits of the card nr? We want to show what card is currently used for payments inside our platform. And we want to show it with our own ui and modals (not with stripe extensions).
All that information is available on the PaymentMethod: https://stripe.com/docs/api/payment_methods/object?lang=node#payment_method_object-card
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
ok, thanks. As i understand 4 last digits and exp date is possible. I asked this question because i'm not a developer and can´t undertsand the doc that well 🙂
Is there a way to combine the cardNumber, cardExpiry, and cardCvc into a single element for use with the stripe js methods that take a card element? Specifically for the createPaymentMethod function.
Hi! Quick question: should different devices listening to events using Stripe CLI get all the events? Or only a random one of them will process the events?
@royal turtle i think that would be creating the element with the type card
the different devices using Stripe CLI and listening to the events should all get the events
oh ok, for some reason it seemed this was not happening yesterday when working with a colleague, but if it happens again I'll get back to it with specific events we can debug. Thanks
Another question: I'm using different accounts to have the data for the different development environments. Is there an easy way to just copy the entire account for example from Testing --> Development? Or just duplicating an existing account?
There's no way to copy account data, but you might be interested in using fixtures with the CLI: https://github.com/stripe/stripe-cli/wiki/fixtures-command
Interesting, so I could go to the environment I want to copy, get the data with the Stripe API and then use fixtures to fill the new account, right?
alright! I'm trying this out and it seems that passing coupon='' does the job, thanks! 🤚
Yup, you could have a stack of JSON fixtures and run them with the CLI on a fresh account to get the objects in the state you want
Nice! It seems to be automatable enough then. I'll look into that, thanks!
I think it’d be a good feature for stripe to allow an arbitrary number of environments. Test and live mode work well, but I’m thinking of scenario where one environment (development) can be used for all development and dev teams. An integration environment where the data lives separately and might serve a QA team well. Finally maybe a testing environment where this can be used strictly for unit/integration tests.
The naming is subjective but that’s where it could be named by a user. This might be a solved problem by another method but just curious.
Before I get too ahead of myself I think this can be achieved by creating multiple stripe accounts dedicated for specific uses. The setup I’m imagining is that 2 Testmode accounts that never get activated and one livemode account that’s for production. All with different API keys and webhook keys etc. maybe that’s how it would be handled today. Curious as to what stripe internally uses to have multiple environments with isolated data for each environment
Traditionally what we recommend doing is just creating new accounts specifically for testing. If you had multiple environments under one account, (prod, QA and testing for example) you still would want all those environments to have completely separate objects associated with them so messing with something in testing doesn't break anything on QA. At that point it's functionally no different than just having two accounts; one with prod/QA and the other just for testing.
When working with a team I think it would be better to have your own personal test account, like having your own copy of a test database to make sure no one messes with the data you happen to be working with.
To answer your question though, we practise what we preach and just have create multiple test accounts. I have something like 20 test accounts at this point
hello, does anyone know what are the possibile causes of "payment not completed" when confirming a payment intent with apple pay on the client side?
Gotcha, I figured it’d be something like that. Thanks for clarifying, sounds like a good method since they can be wiped and deleted whenever.
Could be a variety of reasons, we'd need more info. Could be that the card is declined for instance: https://stripe.com/docs/declines/codes
Understand what decline codes mean and how you can resolve them when a charge is declined.
the card I am using is accepted in all other apps except mine, I am using the flutter plugin (flutter_stripe) that redirects the confirmation to the underlying native library
that's exactly what we're doing also, the issue here I'm solving is just the syncing of the local account for new developers, or syncing with new products
There isn't really enough info here to tell you what happened. Did you get an error? Was there any other information in that error? It's hard to tell if this is a flutter, Apple pay or Stripe problem from just the sentence "payment not completed"
the complete error is "flutter: Error: PlatformException(Failed, Payment not completed, null, null)"
the error is also displying in the native apple pay sleeve
sorry i also have to specify that I am using an iphone 12 real device (i just woke up)
I have no idea I'm afraid, it's a 3rd party library so I don't really know much about it. I suggest opening up an issue on their github here: https://github.com/flutter-stripe/flutter_stripe/issues
I already did, I didn't want to duplicate threads, just wanted to know if the generic "payment not completed" had a list of causes so that i can focus my tests on those.
You can check to see if it made it as far as Stripe by looking at your error logs in the Stripe dashboard
If there's a payment error there then it might narrow it down as to where the problem is
oh right nice suggestion! but i just see that the payment intent is in status "incomplete" the error stops on the device i fear
i will dig deeper in the logs
because we also have connected accounts (we are a platform with stripe connect)
yes exactly, in both platform and connected account logs there is just a 200 response for the PI creation on the server
That would mean that something's going wrong when you're calling either presentApplePay or confirmApplePayPayment. I'd add some logging to see at which point it fails
it's the latter: confirmApplePayPayment is this helpful? the first is showing the sleeve and debugging the error pops only with the second.