#dev-help
1 messages · Page 116 of 1
and I create the session with:
checkout_session = stripe_library.checkout.Session.create(
idempotency_key=idempotency_key,
payment_method_types=['card'],
line_items=[{
'price_data': {
'unit_amount': self.amount * 100,
'currency': 'eur',
'product_data': {
'name': "Charge for {}".format(self.advertiser.user.username),
}
},
'quantity': 1
}],
client_reference_id=self.advertiser.id,
metadata={
'advertiser_id': self.advertiser.id
},
mode='payment',
# success_url=settings.SECURE_SITE_URL + 'advertiser/payment/success/?session_id={CHECKOUT_SESSION_ID}',
success_url='http://localhost:8080/advertiser/payment/success/?session_id={CHECKOUT_SESSION_ID}',
# cancel_url=settings.SECURE_SITE_URL + '/payment/error/',
cancel_url='http://localhost:8080/advertiser/payment/error/',
)
and session.metadata is nil when you try to access it?
if I print the checkout_session after the creation there is the advertiser_id but if i print it after the retrive I get "metadata":{},
I want to add card details on stripe with this ui,please send me code for this
ok I removed the customer fetch and now I can access the metadata
I didn't need it so it's ok for me
@vocal wagon really strange. Can you do this and share the output?
from pprint import pprint
pprint(vars(session.last_response))
but ok.
@meager hawk thank you for the help!
@tiny bone I can't give you code for an entirely custom integration based on just a screenshot, I'm sorry.
https://stripe.com/docs/payments/accept-a-payment , but you need to do your own research here, no one can just give you a fully working example code. We have a .NET library for example(fully documented). If you have specific questions once you start developing things let me know.
ok thanks
I have a stripe customer setup, they submit their card details with stripe elements to setup a subscription.
I then want them to be able to purchase single use items with the same card without entering their details again is this possible?
I have tried adding
setup_future_usage: "off_session" to the confirmCardPayment in elements as the API docs say but when I try make a new PaymentIntent on this customer the status is still "requires_payment_method"
Going to the customer portal I can see the subscription and its card as the default payment method
What am I doing wrong?
@distant pelican hi! It's definitely possible. Should just be the same code and approach as https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session . Do you have the PaymentIntent Id pi_xxx that you created and got that status for? There's a few things that might have gone wrong there
pi_1J8Q75It5Wc5dByWPfl2srbt
sorry for the customer that has a card its a different pi
@vocal wagon hello there! Do you have a development/coding question I can help you with? (I'm afraid I don't speak German too).
pi_1J8Q46It5Wc5dByWqpItz09p
this customer had subscription created with a card and should've been saved for off_session
then tried to complete a paymentIntent but get requires payment method
hmm I can't find that PaymentIntent, did something get cut off in the copy and paste?
Yeah sorry on two different pcs i tried typing it manualyl
if you have an example I can look but there's at least a few things to mention
status:requires_payment_methodmight mean you didn't attach a PaymentMethod, or that there was a decline- for the former, it's not enough to specify just a Customer ID, you also need to pass the
payment_method:pm_xxxId explicitly, we don't look atinvoice_settingsor have any concept of a "default" - for the latter, it might be that you did not pass
off_session:trueso the payment required 3D Secure and was declined
👀
so as I said there's a few things this could be, an example would clear it up
yep
so for that one it's my second bullet point:
for the former, it's not enough to specify just a Customer ID, you also need to pass the payment_method:pm_xxx Id explicitly, we don't look at invoice_settings or have any concept of a "default"
you have to pass PaymentMethod to the PaymentIntentCreateOptions there
(tbf you can set the card as default in the customer portal haha)
ok so if i get the paymentmethod from the customer and then add it to createoptions that should work?
as per the link I shared earlier : https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session
when you are ready to charge your customer off-session, use the Customer and PaymentMethod IDs to create a PaymentIntent. To find a card to charge, list the PaymentMethods associated with your Customer.
When you have the Customer and PaymentMethod IDs, create a PaymentIntent with the amount and currency of the payment.
the default is only for invoice/recurring payments
for one-off payments we require you to tell us which card to charge so there's no confusion!
alright cheers will try it and get back to you with result 🙂
great!
Whats a more reliable way(then webhooks) to see if a transaction / payment intent is successful
@cloud pasture hi! hmm well if you know the PaymentIntent ID already it's as simple as retrieving it : https://stripe.com/docs/api/payment_intents/retrieve and checking the status field : https://stripe.com/docs/payments/intents#intent-statuses
Yea i know the intentId, i save it in transaction table locally
So basically i can later on run a crons server to check for uncomplete transactions
you can but really webhooks are better, you just update your database with the new state that we push you instead of having to poll the status with a cron job
But i think i will add an untrustworthy field that table that tells me only to check transaction that got something from client side
How are webhooks reliable ?
what happened if there was communication error ?
what happened if for some reason the webhooks request didnt work .
thats un reliable
they get retried multiple times over 72 hours.
if your server is unreachable for that long you have bigger problems 😓
yes that's how we know you acknowledge getting the event, anything else is a failure and we retry, it's documented at that link
Hello,
What card reders can I use with stripe in the UK?
@clear sun you can only use our certified readers through Stripe Terminal but that product isn't public in the UK right now unfortunately, you can express interest at https://stripe.com/en-gb/terminal#request-invite
Hi, I am saving my card using confirmCardSetup, the problem is that it is saving card id as pm_xx instead of card_xx whereas if I do from dashboard then it is saved as card_xx. So, how can I save card id as card_xx using confirmCardSetup?
@hallow lake you can't really, and pm_xxx is the right thing to use! It's all backwards compatible : https://stripe.com/docs/payments/payment-methods/transitioning#compatibility Is it actually causing you a specific problem?
Such a basic task suerly. So I cant just order one now?
We were looking to use SumUp but hoped that it would simply be a case of ordering a reader for events sales.
I have saw a few apps that we can use on IOS but it seems very unprofessional.
@meager hawk yes, it does not show card info when I retrieve the customer
@hallow lake you should be using https://stripe.com/docs/api/payment_methods/list , that will work!
if you're looking at e.g. customer.sources, that is legacy
basically, I using this approach to make the new card as default using ```stripe.Customer.modify(cus_id, card_id
that is a legacy approach too, you shouldn't be using default_source at all (or customer["sources"] ). That's all deprecated and you should use the PaymentMethods API.
okay can you tell me how to make a payment source as default using PaymentMethods API
you don't, since that's not a concept any more, there is no default method for one-off payments
to charge a saved card you'd do https://stripe.com/docs/payments/save-during-payment?platform=web#web-create-payment-intent-off-session
when you are ready to charge your customer off-session, use the Customer and PaymentMethod IDs to create a PaymentIntent. To find a card to charge, list the PaymentMethods associated with your Customer.
When you have the Customer and PaymentMethod IDs, create a PaymentIntent with the amount and currency of the payment.
for one-off payments we require you to tell us which card to charge so there's no confusion!
I ll be using the latest card to charge invoices every month. If I dont make it default then it would charge the previously set default card
okay thanks
Hi. We are using stripe-klarna in our products based on sources. We currently face the issue that the klarna drop in is in english and the language cannot be changed. Do you have any suggestions? We're already setting locale and purchase_country
@vocal wagon should be klarna[locale] on the Source object, I tested it recently : #dev-help message
The accepted values are https://developers.klarna.com/documentation/klarna-payments/in-depth-knowledge/puchase-countries-currencies-locales/
thanks I will check
I am testing a webhook with the Stripe CLI using the following command:
stripe trigger checkout.session.async_payment_succeeded
It gives me the following error:
"The payment method type provided: bacs_debit is invalid. Please ensure the provided type is activated in your dashboard (https://dashboard.stripe.com/account/payments/settings) and your account is enabled for any preview features that you are trying to use."
I don't see a way to enable bacs_debit from the dashboard. Could you please tell me how to do that?
@robust relic hello, which country is your Stripe account based in ?
USA
@robust relic gotcha, afaik bacs_debit is available in the UK, I'd talk to Stripe Support at https://support.stripe.com/contact , see if they know of a way to let other accounts access it
Hello! I am wondering if it's possible to configure a prorated charge on a subscription with a checkout session?
Ok. I really just need to test the async_payment_succeeded webhook. Is there a way to trigger it from the CLI with a different async payment type?
@robust relic you could use sepa_debit on a CheckoutSession, that would fire async.payment_succeeded as that is a delayed notification payment method.
Ok. Tried that and it tells me it won't work in subscription mode. I am trying to use Stripe Checkout with a subscription. Is there another option I could try? Is there a list of payment methods that work for subscriptions with Stripe Checkout?
@robust relic yeah I don't think there's a good way to test async_payment_succeeded with mode: subscription. You can mock it out on your end, the object you get back in webhook event will still be a CheckoutSession object, with all the fields you would expect if it were a mode: subscription CheckoutSession.
Ok. Thank you very much!
@rapid tide you don't create a payment in that case. What does your payment flow look like? Are you collecting a customer's card during a $0 payment?
Hey I’ve changed my number so I can’t get the code to login. What can I do?
@crisp dome this isn't the right channel for account/login related questions, please write in to Stripe Support about those questions: https://support.stripe.com/contact?skip_login=true
Hey, we seem to be getting an insufficient balance error response, but from what we can tell the balance is available for the refund.. req_cBcAe0vKiMoH5x
@frosty coyote that request uses an idempotency key, so retrying the request will echo the same response as the first time the request was processed
it's possible what's going on there is that the first time it was tried, there actually wasn't enough balance, and even though there is now, you're getting the same canned response from the idempotency replay
ok, that would only be valid for 24 hours right?
yeah
(with the caveat that idempotency keys are expired after at least 24h have passed, not after exactly 24h)
yeah, thats no problem just making sure i pass on relevent info to the team
Ok, that worked, they switched the idemotency key and it went through. Thanks
np!
We need to try get our retries and idemptency stuff sorted. Before i joined they accidentaly double charged a bunch of people and it was a nightmare fixing it. So now they're so afraid of these issues. We need to get it into a place this is all automatic and we don't need to worry about it
tbc, the only case where it's helpful to retry requests with the same idempotency key is if the last time the request timed out or returned an HTTP 5xx
Thankfully it was partner organisations that had the issue rather than actual customers, but it was still a nightmare
if you get back anything else (2xx/4xx), subsequent retries won't change the result (at least until the idempotency key expires after 24h)
Yeah, I need to get my head into the reason why these retries are needed. The one today, insufficient funds is pretty straight foward. However I know they are manually retrying a bunch, and I need to find out why, and how we can make it so a human doesnt need to be involved.
I know the other day, 429's made us need to retry a bunch. However, other than exceptional circumstances, it shouldnt really need someone to do anything
ah sorry, you reminded me that 429s can also be retried with the same idempotency key
I misspoke before
yeah, I think they're very rare though. We've never seen them other than the problems the other day. One off events like that is easy enough to handle, if I get the max retries setup we should never see them, we don't make tonnes of transctions a second
tbc, some 429s / 500s will replay with an idempotency key, but not all
it's that it's never helpful to retry a 200/400 with the same idempotency key
tbc - the real use case for idempotency keys is network failure, where you get back no response
(and you have no way to tell whether the request made it to stripe or not)
if you get back some sort of failure response, but need to retry the request for some reason, the best rule is to retry with a different idempotency key
Yeah the problem with that is, if it did go through and we arent aware, it actions twice
Which is what happened before and now various members of the team are pretty scared of that scenario.
Most (maybe 95%) of our stripe calls go through an internal micro service, thats very strict about recording what happened. Any relevent webhooks we receive are just stored in their entirety so that we can unpick problems if we need to
wdym by "we aren't away"?
we arent aware*
well just for any reason if we haven't managed to record a response. I can't be precise as I don't know what the cause of the double charge was.
However, I know when I joined the project one of the key targets was to make this microservice very transparent so that problem never happens again, and if it does that we can work out how to fix it.
I think they ended up just refunding everyone and taking a financial hit
what I mean is if you got a response back from stripe, recorded it, and decide that you need to run the request again for some reason, it's ~never helpful to rerun the request with the same idempotency key
there's some more colour on server errors here, if you're interested https://stripe.com/docs/error-handling#server-errors
Yeah the problem we have is if we re-run and it has actioned it twice. We need to find a way to stop that happening, at the moment, idempotency pretty much ensures that for us.
Ithink we need to build something into our service to make sure we fix that
I am trying to implement Stripe Checkout for Subscriptions (in the US) and have a few questions about the difference between it and Elements. Does Stripe Elements support more payment types than Stripe Checkout for subscriptions? Are there going to be updates for Checkout to support more payment types?
Hello, german support pls
@thorny jasper hello, for Stripe Support, please reach out to https://support.stripe.com/contact
@robust relic Elements supports almost all payment methods but yes Checkout is quickly adding support for all payment methods too.
my englich is lidelbit
@robust relic "about the difference between it and Elements" -> the major difference is Checkout gives you a lot out of the box, and is quicker/easier to integrate
@thorny jasper Stripe Support can help you in German language
@frosty coyote sure, you need to be careful about how you handle changing the idempotency key (eg: before retrying, commit a change to your db which changes the key to some new value, then begin retrying with the new key until you get back an affirmative answer)
So Elements supports all payment methods for subscriptions?
Chat- und telefonischer Support sind derzeit nur auf Englisch verfügbar. no german
@frosty coyote there's some middle ground here between "wantonly duplicating requests" and "retries having no effect", is all I'm trying to get at 😛
Yeah thats exactly it. We should be able to figure something, just as is the "normal" way.. its never the focus.
always something more important to do 😄
@robust relic yes but not all payment methods support Subscriptions currently (some don't) and you might still hit the same limitation there where your US account won't be able to create payment methods that aren't supported in your region
Hope someone can carry own this.
In our project we have a platform where people can share ideas and people can fund those ideas. Basically it's a non-profit platform for community to find funds for local work
@upbeat grove Hello! How can I help?
Just trying to figure out. Direct vs Destination charges for connect.
We have a platform for people to share their ideas and collect funds for charity work
@upbeat grove There are many factors that go into the decision of which charge type to use, and we have documentation to help you make the right choice here: https://stripe.com/docs/connect/charges#types
Do you have a specific question about those docs or about your situation?
no it's more about my situation
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=[{
'name': 'Stainless Steel Water Bottle',
'amount': 1000,
'currency': 'pln',
'quantity': 1,
}],
payment_intent_data={
'application_fee_amount': 500,
},
mode='payment',
success_url='https://example.com/success',
cancel_url='https://example.com/cancel',
stripe_account="acct_1J6O4W2XeRtNInC6",
)
I am doing direct charges and was wondering if it fits my situation. looking at things i feel like it does but according to docs. Direct charges are not for marketplace platform
@upbeat grove That code won't work as-is; the stripe_account parameter belongs in a separate argument, not alongside the parameters you pass along in the body of the request.
@upbeat grove To clarify, that code (once corrected) will create a direct charge, but I can't tell you if that's the right type of charge for your business.
that's the other thing. It worked, I was able to charge the customer and the funds were counted for that business (stripe_account)
@upbeat grove Can you paste that Charge ID in here so I can look it up?
ch_1J88Rt2XeRtNInC6uD8gG9ia
@upbeat grove Thanks! Hang on...
I was told stripe_account is available for all methods
@upbeat grove You can specify a stripe_account for almost any API method, that's correct, I just thought the syntax you had was incorrect.
@upbeat grove Oh, you're using dj-stripe... maybe it's doing something to make that work. I thought you were using our official Stripe Python library directly.
@upbeat grove Or, actually, maybe that's the way our Python library works? 😅
I am using official library . I do have dj-stripe models install for webhook
i copied from here
@upbeat grove Oh, yeah, my fault. That's not how our other libraries work, so it threw me off. Sorry about that! I don't use Python very often, if you couldn't tell. 🙂
@upbeat grove Okay, so you're creating direct charges successfully, so what other questions do you have?
anyways, i don't have issue in using anything. I just need to find out if direct will fit the business or not. I will trying reading more article or watch dev chat on youtube 😆
Hey! I'm having an issue with stripe checkout and CORS, would somebody be able to help me out?
@upbeat grove I don't know your business so I can't advise you generally, but I'm happy to answer specific questions if you have them.
@north surge Hello! What's the issue?
btw how do you know I am using DJ-stripe 😆
Hey, so I'm successfully creating a stripe checkout session and passing the URL back from the server using a 303 request response. Then the client fetches and returns this error:
Access to XMLHttpRequest at 'https://checkout.stripe.com/pay/cs_test_[[...]]' (redirected from 'http://localhost:3000/api/create-checkout-session/') from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
@upbeat grove I looked up the request that created that Checkout Session and saw it came from dj-stripe.
@north surge I'm not sure exactly what you mean. Can you explain what the "it" is in the "it fetches and returns this error"?
sorry, I meant the client
@north surge The client what though? Are you talking about the web browser? Your JavaScript code?
@north surge To put it another way, I'm not clear if you're using your JavaScript to redirect to the server URL that in turn responds with a 303 that sends your customer to the Checkout URL, or if you're hitting the 303 URL in your JavaScript code, getting the URL there, and then redirecting?
Right, so I'm using axios to make the request, and it appears to handle the 303 automatically, I'm actually not sure what happens under the hood
@north surge Can you share the code that's handling the redirect process?
I'm not currently handling the redirect process at all, but I'm seeing a network request to the checkout URL which then throws the CORS error
@north surge You're seeing a network request to the checkout URL from what?
I think browsers automatically handle a 303 redirect?
@north surge They do, yes, but your JavaScript code may not be. It's very difficult to assist without seeing the code in question; are you unable to share it?
Yeah it's literally just an axios request
one second
export const createCheckoutSession = async (formFields) => { return axios({ method: CREATE_CHECKOUT_SESSION.METHOD, url: CREATE_CHECKOUT_SESSION.ROUTE, data: formFields, headers: { "Access-Control-Allow-Origin": "*", }, }).then((data) => { return data; }); };
Do I need to manually handle the redirect here?
@north surge Is CREATE_CHECKOUT_SESSION.ROUTE the URL that returns the 303?
yes
@north surge Yeah, that won't work. You should basically remove all this code and replace it with something like window.location = CREATE_CHECKOUT_SESSION.ROUTE
you're redirecting an ajax request; that won't redirect the browser to that url, it'll make the ajax request try to request the url it's redirected to
and that in turn is being blocked by your CORS policy
@north surge The code you have above is trying to fetch the data at that URL and use the results in your code, but when the URL is accessed your server responds with the 303 which basically says "the data you're looking for isn't here, it's over there" and "over there" is the Checkout Session's URL, so your JavaScript code tries to load the actual Checkout page and can't due to it being a cross-origin request, so it fails.
@north surge Even if it succeeded you would get the HTML from the Checkout page, which would do you no good.
Hello Stripe folks. I'm testing a couple webhooks and wanted to know how you recommend testing payout.paid/failed and invoice.payment_failed hooks?
@mossy wren Hello! There are many ways to test those. You can trigger them using various test cards found here: https://stripe.com/docs/testing#cards-responses
@mossy wren You can also trigger certain events with Stripe CLI: https://stripe.com/docs/cli/trigger
@mossy wren For Payouts, if you're asking about Connect in particular, the info you need is here: https://stripe.com/docs/connect/testing#payouts
Great, thanks @mighty hill! I tried the Stripe CLI but I don't believe it supports the payout events.
For payment failed, I'll surely use the test cards you've provided.
For payout events, how would I be able to create a failed payout to one of the Connect account?
@mossy wren See the last link I shared above.
Ah, just saw the last link you provided. Perfect, thank you V much.
Podem pedir para o pessoal do suporte resolver o problema do meu dinheiro parado com vocês?
:question: Have a question about your account @tulip pelican?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
Eles não resolvem meu problema
tem alguém ai que pode ajudar estou a mais de 60 dias com meu dinheiro parado.
e uma tremenda falta de respeito
@mighty hill may need your help on the payout. I attempted to create a payout for my test user acct_1J8An9RHcurDxsvD. I've used the only debit card's id as the destination of the payout, but I'm receiving an error message:
StripeInvalidRequestError: No such external account: 'card_1J8V4SRHcurDxsvDqLnQq0VJ'
Am I using the right external account id?
Rubeus stepped away but I can help, one sec.
You're making the request on the platform rather than the connected account. You need to pass that account's id as the Stripe-Account header so that it is made on the connected account. https://stripe.com/docs/connect/authentication
@sick talon Great, I missed that step. Thank you so much.
I just realized I have insufficient funds in my Stripe account for this transfer. I'm in the test environment - what do you recommend me doing to allot test funds for this payout?
In test mode you can just use the card ending in 0077 on https://stripe.com/docs/testing#cards-responses
(for the charge, and then payout from the available balance to anywhere)
@sick talon I'll give that a try right now, thank you!
@sick talon My apology, I think I'm missing a step. I've successfully charged the card ending in 0077 n amount of dollars. I've attempted to create a payout again, but still encountering the insufficient fund in stripe account for transfer.
Have you transferred the available funds to the connected account? Looks like the charge is on the platform, and you're trying to payout on the connected account. See https://stripe.com/docs/connect/charges-transfers or https://stripe.com/docs/connect/destination-charges for the two options there
Ah, that is the step I'm missing. The concept is coming together now, I'll give this a try right now. Thank you.
$request->user()->asStripeCustomer()->subscriptions;
i found this method
they said that this method is working
but i dont want to use request
@rotund juniper what specifically are you trying to do? Retrieve all Subscriptions for a given Customer id?
no i want to retrieve all subscriptions of user but avoiding using customer id
is it possible
If you are trying to do it with Laravel, that's their own integration and we can't support Laravel Cashier directly here (it's not a Stripe product). My guess would be that the SO answer you found is the solution, but you can also check their official docs at https://laravel.com/docs/8.x/billing#checking-subscription-status
okkk
Hi, I introduce myself, I'm Michael, I don't know English very well, so I use the google translator. my question is can you create a plan like this example use case (https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#installment-plans), for a checkout ?.
I have not managed to do it, I want my clients to be able to pay a sum for the months provided, but I have only managed to make the recurring payment, but according to me, the recurring payment is infinite and does not stop, in summary I want to do the example that they I show, in a checkout session, in advance thank you devs
Sorry, to confirm my understanding -- do you want a set number of payments (monthly) and then the payments stop?
Hello, thank you very much for answering, exactly, in my development you want to sell packages, for example, a package is worth $ 90 to pay in 3 months, so I want the subscription to create the payment of $ 30 each month and after paying the 3 months the charge to the card is stopped
OK, that's indeed the page you want to follow then. Do you have the ID of either an existing Subscription you created that way or a request from your logs where you tried to create one? https://support.stripe.com/questions/finding-the-id-for-an-api-request#:~:text=Using the dashboard,the dashboard URL as well.
Hey guys, can anyone tell me the best way to update a card source's expiration date?
It looks straight forward for a Card object
https://stripe.com/docs/api/cards/update
but we are creating cards through the Sources api
https://stripe.com/docs/api/sources/update
Currently we are just creating an entirely new Source w/ the new expiration date. We also forgot to delete the old card in Stripe, which seemed to be causing some issues — charges were being declined on the new cards... which is why i'm here. We are now deleting the old, expired cards to see if that helps but... is there a better way?
I'm thinking the only move is stay how it is, or use the new Payments api - does this sound right? Thanks
You can pass card[exp_year] and card[exp_month] when updating the Source
I will try that. Thanks @sick talon
How can I check the product name on any request?
@warm nimbus hello, can you say more? like what do you mean "on any request"?
what request should I make to verify the product name?
@warm nimbus I'm still not clear what you mean, like what do you mean to "verify" product name?
Like what does that entail? fetching a Product from the API? something else?
I get a webhook that sends me the "Charge" id. How do I check which product was sold?
@warm nimbus what integration are you using, Checkout? or PaymentIntents?
payment Intent
@warm nimbus well PaymentIntent and Product don't have a link. PaymentIntents are just created for an amount not for a Product. So there's no link between a Product or a PaymentIntent in the API.
It is possible if you're using Checkout or Invoices/Subs but not for PaymentIntents
But how can I get the product name through the api,(The product you create in the dashboard)?
@warm nimbus yes with https://stripe.com/docs/api/products/retrieve
Hello, I'm currently trying to implement Connect Express (amazon, Lyft, Etsy model) into my react, firebase, Node stack.
Any tips on following the docs, other examples out there, or other content that might help?? Super thanks
@pale belfry hello! not sure if you're stuck somewhere, there isn't a single doc I can send you as there's "a lot" that comes with connect. Where are you at right now? have you picked what fund flow you are going to use? How far have you built your integration?
Hi @bold basalt , by fund flow do you mean, "payment to the platform, then payout the sellers every 7 days?"
@pale belfry yes this, there's 3 fund flows https://stripe.com/docs/connect/charges
I am at the beginning, I basically want the "Sign up" button to lead to Stripe connect
And then have each product under the SellerID result in a weekly payout to the Seller
@pale belfry have you considered what account type you're going to use? or no
@bold basalt Thanks for the help, what do you mean though by account type? They will have a "Seller" account, different from a regular "user"
@pale belfry ok so taking a step back: there's a LOT that goes into setting up Connect, so it would help to take a step back and consider what Connect account types are, what the right fund flow for you is, etc.
You should carefully read through https://stripe.com/docs/connect/accounts
and https://stripe.com/docs/connect/charges
those will answer lots of questions for you and show you all the right code snippets that you need to integrate
@bold basalt Okay thank you, I'm going to think that this may be something on the order of days instead of hours then :(. Okay I will reference our conversation here, and we may have other key questions over the course of this.
@pale belfry definitely order of days, if not weeks (in my opinion), Connect is really powerful but it is an intensive integration.
So how do I get the product id that was paid for via the webhook?
@warm nimbus which webhook event?
One that triggers when the product is paid for
@warm nimbus no the webhook event depends on what your integration is using , like are you listening to invoice.paid? payment_intent.succeeded ? checkout.session.completed? charge.succeeded?
Depends on how your integration is built, what webhook event is listens to
I'm reading "charge.succeeded", but I don't get the product id so I can search
@warm nimbus yes that is expected, you mentioned you are using PaymentIntents right?
PaymentIntents are only created for an amount: 1000 or some amount, they are not linked to any Product. So there's no link between a Product <> Charge/PaymentIntent. If you were using a CheckoutSessions, there is a link to Price and therefore Product, but not just when integrating PaymentIntents on their own. Does that help?
Здравствуйте, оплатил покупку на aimjunkies.com , но им оплата не пришла
Hello, I paid for the purchase on aimjunkies.com , but they did not receive the payment
@pliant raven hello, this is not the right channel for those questions, please reach out to the merchant/business you purchased from, for help with that.
they said to contact you
@pliant raven you would have to contact them and they would have to work with Stripe Support (if they even use Stripe, that is) to figure out if a payment was made or not and why.
For context, this is a channel for software developers who are interested in using Stripe to build an integration, we don't have any access to answer account related questions.
Okay, but which WebHook do you recommend me to get the product description when it's finished?
@warm nimbus let's start here, as I'm not clear on your integration, so it will help me understand better.
Can you share just the code snippet for how you are creating a PaymentIntent in your code? Just that code snippet (so like the 5-6 lines)
let's step by step...
- I created a product.
- I clicked on this link and paid... What is the wehook that sends me the product data (id, metadata) when it was paid?
@warm nimbus ahh ok so you aren't using PaymentIntents directly, you are using PaymentLinks, which is basically Checkout
@warm nimbus in that case, the right webhook event is checkout.session.completed
@warm nimbus once you get that webhook event you need to retrieve the CheckoutSession line items: https://stripe.com/docs/api/checkout/sessions/line_items
And pass expand: ['data.price.product'] in the API call to get the Prices and their Products in the API request
Why are you having high transparency?
@warm nimbus do you mean the font color on the UI?
Yes, it is lighter, as if it were disabled.
@warm nimbus it is faded out cause it was selected, so it made it into the list that is just behind that dropdown
Hello all - I just realized that I have an issue with payouts to connected accounts. The entire amount of the payment is transferred, but my account is charged the Stripe fee
So I'm losing money on the payments. Viewing as the connected account, no fee appears on their end
how do I transfer the amount less the Stripe fee?
@carmine lintel hello, not sure I'm great at Payout fees, what type of Connect accounts are those? Express? Custom?
Standard
@carmine lintel what fund flow are you using? Destination Charges?
I set the transfer_data.destination to the connected account ID
when the paymentIntent is created
@carmine lintel yeah that is Destination Charges, the platform is responsible for Stripe fees in that case. This is covered here: https://stripe.com/docs/connect/destination-charges
You probably want to take an application_fee on each Charge to cover for the Stripe fee
Would the same logic apply to an invoice where the transfer_data.destination is set?
yes
I see that there is a transfer_data.amount option as well (https://stripe.com/docs/api/invoices/create#create_invoice-transfer_data)
could I simply subtract the stripe fee from the purchase total?
and transfer the reduced amount?
@carmine lintel yes, or you can specify application_fee_amount on the Invoice
Hi All, I have a php cron setup to run some transfers, and I know the script is being called because I coded in an email to myself when it runs. Today the script was called but the transfers didn't happen, but when I called the script manually the transfers did happen! It seems the issue has to do with the script being called as a cron instead of manually. Any ideas?
Hi there i have a question. It is my first time developing with Stripe. I'm on VS2019 Enterprise. When i Debug i can not see the Card for Payment. I have try it with Edge, Chrome and also Safari.
@rugged coyote hello, check the browser console log, there might be warnings or errors that tell you what the issue is
why the card is not loading?
@true stag hello, not sure, you might need to debug that but I'm on the same page as you, some issue with the cron not actually running end to end possibly.
@rugged coyote try what I mentioned above with debugging
ok, let me check it
@bold basalt hi! I hope you're well. Yes that's what I thought as well but on calling it manually ran end to end without issue. php error reporting on and got no errors or warnings. I'm stumped!
Having no errors/warnings at all is definitely strange - my guess would've been that maybe the API key was missing when the script was missing but I would expect that to have an error message somewhere
I'm starting to think the wordpress core doesn't like to be loaded into a cron..
I know next to nothing about wordpress core 😦 but let me know if there's anything else we can do to help!
,https://pastebin.com/Y4td7VDa This WebHook event does not send me information about the product that was purchased.
thanks so much, I realized this is for sure outside stripe scope and all about wordpress dev.., thanks for being some of the all time best development support!
Did you get this webhook event by clicking "Send test webhook" In the dashboard?
yeah
Those events are really just stubs to test that things are hooked up properly - they're not really a good indicator of all the information that will come through on a real webhook event. Have you tried using one of your test payment links? That should trigger a real webhook event in test mode that you can take a look at
I found something wierd, not sure if this is a known issue but it seems like metadata isn't properly showing up in the dashboard
@warm nimbus Another thing to note (which @bold basalt ) already mentioned - On a checkout session line_items is expandable, and you won't get it back by default. You need to re-retrieve the checkout session's line items (https://stripe.com/docs/api/checkout/sessions/line_items) and pass expand: ['data.price.product'] in the API call to get the Prices and their Products
thank you, now it is working. It was a problem with the wrong stripe key. change it, and got it to work. I have never look in the debugger, so...you have save my life 😃
Hm... that's strange - do you have an object ID that I can take a look at?
uh yeah pi_1J8YiHIMK1FFqHHFQjHkZKt4
its test mode
the send/receive for the event shows the metadata (its called bot_id) in the JSON, but its not showing up in the dashboard UI
its on the last event on the "Events and Logs" timeline, and its in the request and response so it looks like stripe got it, not sure if something failed in saving it or maybe the dashboard is just having issues
So that payment intent doesn't have any metadata - you only set the metadata on the Checkout Session, which doesn't automatically copy the metadata to the underlying intent. What you need to do is set payment_intent_data.metadata when you create the Checkout Session (https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-metadata) instead of just setting the metadata on the Checkout Session itself
huh
Is there a specific part you're confused by, or would it help if I just rephrased the whole thing in a bit more detail?
so i'm using the go sdk
and I was initially doing checkoutSession.AddMetadata("bot_id", botid)
I tried checkoutSession.PaymentIntentData.AddMetadata("bot_id", botid) (which is what I think i'm supposed to do?) but now i'm getting some kind of memory error
so when I do session.New(checkoutSession) to create the session, it creates the checkout session and payment intent at the same time?
Let me whip up an example - give me a few minutes, I'm a bit rusty in go
ok I think I might have figured it out
Yes, a Checkout Session will have an associated payment intent
ok nvm didn't fix it...I tried checkoutSession.PaymentIntentData.Metadata["bot_id"] = botid but that also didn't work so i'm not sure how this is supposed to work...from what i've read it sounds like the PI is automatically created so I just need to edit the underlying PI to match what I need
You'd want something like this:
params := &stripe.CheckoutSessionParams{
SuccessURL: stripe.String("https://example.com/success"),
CancelURL: stripe.String("https://example.com/cancel"),
PaymentMethodTypes: stripe.StringSlice([]string{
"card",
}),
LineItems: []*stripe.CheckoutSessionLineItemParams{
&stripe.CheckoutSessionLineItemParams{
Price: stripe.String("price_xxx"),
Quantity: stripe.Int64(2),
},
},
Mode: stripe.String(string(stripe.CheckoutSessionModePayment)),
PaymentIntentData: &stripe.CheckoutSessionPaymentIntentDataParams{
Metadata: map[string]string{
"attr1": "val1",
},
},
}
s, _ := session.New(params)
ooooh that makes more sense
i'm wondering if I should redo some of this though, i'm not sure if my integration is structured properly
not working, i'm getting an error about how that doesn't work for subscriptions
SubscriptionData: &stripe.CheckoutSessionSubscriptionDataParams{
Metadata: map[string]string{
"bot_id": strconv.Itoa(int(currentBot.ID)),
},
},
also does not work, it does a similar thing where everything goes through but metadata doesn't show up
Ahh sorry didn't realize you were working w/ a subscription - in addition to the switch to SubscriptionData did you also make sure to set mode: subscription (see https://stripe.com/docs/api/checkout/sessions/create?lang=go#create_checkout_session-mode) ? When mode isn't specified it defaults to payment, which won't work for recurring prices
Hello
I have a problem
(node:9972) UnhandledPromiseRejectionWarning: Error: Invalid integer: 07/03/21
const { invoice } = await client.stripe.invoices.create({
collection_method: "send_invoice",
due_date: '07/03/21',
customer: invoiceItem.customer,
});
I tried Date.now() + ..
but nothing works
checkoutSession := &stripe.CheckoutSessionParams{
SuccessURL: stripe.String("DOMAIN/premium?stripe-status=success"),
CancelURL: stripe.String("DOMAIN/premium?stripe-status=failed"),
PaymentMethodTypes: stripe.StringSlice([]string{
"card",
}),
Mode: stripe.String(string(stripe.CheckoutSessionModeSubscription)),
LineItems: []*stripe.CheckoutSessionLineItemParams{
&stripe.CheckoutSessionLineItemParams{
Price: stripe.String("price_12345"),
Quantity: stripe.Int64(1),
Description: stripe.String("Premium for " + currentBot.Name),
},
},
Customer: stripe.String(user.StripeCustomerID),
AllowPromotionCodes: stripe.Bool(true),
SubscriptionData: &stripe.CheckoutSessionSubscriptionDataParams{
Metadata: map[string]string{
"bot_id": strconv.Itoa(int(currentBot.ID)),
},
},
}
Can someone tell me
which date I should put
I want it like 5 days after this moment
and how to get that
dates go as timestamps
iirc stripe libs have like a datetime wrapper
can u show me example?
"date": 1625181640
Hello! You're getting that error because due_date needs to be a unix timestamp. If you just need it to be 5 days from that moment, it might be easier to just set days_until_due: 5
^^^^
Thank you! @dim hearth
I think the datetime built into js has a way to get it as unix time if you need something specific
https://stackoverflow.com/questions/1791895/converting-date-and-time-to-unix-timestamp
something like this: Date.parse("24-Nov-2009 17:57:35").getTime() / 1000
Yeah so you need to remove PaymentIntentData entirely, and replace it with SubscriptionData:
checkoutSession := &stripe.CheckoutSessionParams{
SuccessURL: stripe.String("https://domain/premium?stripe-status=success"),
CancelURL: stripe.String("https://domain/premium?stripe-status=failed"),
PaymentMethodTypes: stripe.StringSlice([]string{
"card",
}),
Mode: stripe.String(string(stripe.CheckoutSessionModeSubscription)),
LineItems: []*stripe.CheckoutSessionLineItemParams{
&stripe.CheckoutSessionLineItemParams{
Price: stripe.String("price_123456789"),
Quantity: stripe.Int64(1),
Description: stripe.String("Premium for " + currentBot.Name),
},
},
Customer: stripe.String(user.StripeCustomerID),
AllowPromotionCodes: stripe.Bool(true),
SubscriptionData: &stripe.CheckoutSessionSubscriptionDataParams{
Metadata: map[string]string{
"bot_id": currentBot.ID,
},
},
}
I did, sorry I copied the code from before the change
updated the code block
with that updated code its doing the same thing as before where the metadata doesn't show up in the UI
now it looks like the metadata is blank in the JSON too...
const customer = await stripe.customers.create({
email: 'mail@google.com',
})
const invoiceItem = await stripe.invoiceItems.create({
customer: customer.id,
amount: 2500,
currency: "usd",
description: 'description here',
});
const { invoice } = await stripe.invoices.create({
collection_method: "send_invoice",
days_until_due: 5,
customer: invoiceItem.customer,
});
console.log(invoice);
undefined
what's wrong here?
Yeah, so that code will get the metadata into the subscription - but in general we don't copy metadata over between objects so if you want it to be passed from the subscription to each payment intent you need to write some additional code to do that. If you want every payment intent for that subscription to have that metadata, you should listen for the payment_intent.created webhook event, retrieve the invoice and associated subscription, and update the payment intent with the correct metadata at that point.
hmm
Can you be more specific - where is the undefined coming from?
invoiceItem and customer are working
but undefined is invoice
when i try to console log invoice
it says undefined
would that data be passed to the webhooks associated with that subscription though (cancel/renew/etc)? thats really all I need it for...
I just need to know which bot to renew/cancel when I get an incoming webhook
Why do you have curly braces around invoice? Try replacing const {invoice} with const invoice
huh
typical me hahaha
thank you again
byew
btw
how to get
URL of invoice?
invoice.url?
wow thats cool, the api docs automatically fill the invoice with test data from your most recent invoice
never noticed that before...nice touch
Yup! That metadata will also be on any of the subscription events - which webhook events are you currently listening for? Instead of updating every payment intent, there's probably a much easier way to approach depending on which event you listen to
yeah sounds good, i'm just listening for update/cancel
its a pretty simple subscription integration
i've done these before, the only catch is the multiple bot thing (where users can subscribe/unsubscribe to premium for multiple different bots using the same customerid/account)
btw I noticed one small thing, my description doesn't seem to be working...
is it getting overridden by the price id thing? i'm just trying to add something to let users know which bot they are subscribed to on the payment page/reciepts/emails (hopefully) without needing to do a new product for everything
The URL for a customer to pay the invoice? You can find that at invoice.hosted_invoice_url (see https://stripe.com/docs/api/invoices/object#invoice_object-hosted_invoice_url)
So in that case, you can just wait for the customer.subscription.updated event to come it, verify that it's signalling a renewal, and the metadata for the subscription should be right there
perfect, and I can just renew the correct bot based on metadata
out of curiosity, am I supposed to do a timestamp (30ish days in the future) and just extend it every renew, or just store a Premium bool and set it to true/false based on cancel/extend? i've seen it done both ways...
Can you elaborate on that - in this scenario do you just have a monthly subscription that is automatically set to cancel if a user doesn't renew, so you want to reset the cancellation data every time they choose to renew?
thats my thought process, since you're paying at the beginning of the month for that month of service, it seems most logical to just extend a date by the amount of time the user is paying for (maybe plus a few days just to give them some extra time if card gets declined or what have you)...so if the cancelation webhook fails or there is some other reason that their service doesn't cancel properly, they don't get free premium access forever
i've also seen it done where a bool is just stored for the premium state - so if I get a "update" webhook from stripe, I would check if the subscription is still active (if it is, bool is true, otherwise false) - and on cancellations/delinquent subscription webhooks it would also get set to false
idk if there are any real pros/cons to those approaches seeing as webhook reliability has been fantastic for me, just wondering if stripe had any "reccomended" way to handle this on the backend since thats what i'm about to go write 🙂
There really are a number of ways you can do this - the approach you currently have (just add x days to the current cancellation date) will work fine, but something to be aware of is that cancellation that does not perfectly line up with the timestamp for the end of the billing cycle could result in a very small proration. Another approach would be to have the subscription set cancel_at_period_end: true and flip it to false whenever a customer has chosen to renew for another month. When the next month comes around, you'd flip it back to true.
based on how my system is designed, having it set to false is a relatively disruptive action (the user would have to go back in and make some changes to re-enable everything) so i'd like to avoid unneccesarily causing extra work...I don't have any existing system, just wondering if anything was recommended by stripe but it sounds like whatever works is fine
i'm considering doing the true/false thing just because its a lot less work for me as far as validation for "is this user premium" - checking a bool is a lot easier than (even if I set it up as a function) comparing dates and I will have to build a setup anyways to trigger additional actions when i'm already updating that bool, so that will be helpful for other stuffs
Sorry I missed this ask earlier. Setting description for recurring prices doesn't display that text in the checkout session - it only works for one-time prices (which I know isn't ideal). From what I understand this was an intentional design choice by the checkout team, but they may change it in the future
ooh, that should really be in the docs...
how would you recommend I do this then?
i'd like to tell people what bot they are subscribing to/canceling so its clear in receipts and so on
i'd rather not create a significant amount of products just so the name can be unique for everyone, but that is basically the only approach I could figure out
@dim hearth
here me again haha
invoice.receipt_url
this is null
I found it on docs, but I got a object of invoice
but field for receipt url is null for some reason
Unfortunately, there isn't a good work around 😦
invoice.receipt_url isn't something in our API - there's invoice.hosted_invoice_url and invoice.invoice_pdf. There's also a receipt on the underlying charge object - which you can find at charge.receipt_url
Yes, that's for a Charge object not an Invoice
okay let me try with hosted_invoice url
I need to get link for customer to pay through it
@dim hearth
console.log(invoice.hosted_invoice_url);
Console: null
it returning me a null value
Has the invoice been finalized yet? You can also send over an invoice ID and I can take a look on my end
invoice is not finalized because we need to get a link first to pay that haha
I dont know did you understand me
when invoice is generated
I need link of that so customers can pay
An invoice needs to finalized first before anyone can pay it. You can see a little flow chart here: https://stripe.com/docs/invoicing/overview
If an invoice hasn't been finalized that means it's still a draft and you (as the merchant) can still make changes to it. Once an invoice is finalized it'll change to a status of open and you can't make any changes to the amount due and the customer is able to pay
but then how to get link of invoice?
when it generate an invoice for a customer
how customer can pay?
I'm making a Discord bot
where you type command which product you want to buy
then bot generates you an invoice
when you pay it, bot will do something
I think i found a resolve
sec
Finally got it mna
thank you
I finalized it with api request then I got url
so that's what you said
perfect thanks
Because of attaching 9995 failed, so I couldn't update the new source, right? It remembers the previous one (the successfully one). Is there any way I can clear the source or update them, otherwise the payment still is being processed unexpectedly.
If you want to detach a source and remove the default source, you'd use the detach endpoint: https://stripe.com/docs/api/sources/detach
Then the next time, if the source is valid, it can be added successfully, isn't it?
When you attach a source to a customer, Stripe will do an authorization check on that source. If it succeeds then the source is attached and becomes the customer's default
Is possible to retrieve sourceId that is attached to specific customer if I have the customerID ?
Nevermind, I found it, saw the default_source here.
So is it possible to allowing user to cancel their own subscription. So when I am making a web app I don’t want user to contact me to cancel their subscription but I want them to do it. Is there documentation for JavaScript
I am able to process the monthly subscription payments but just wanting user to cancel it by themself other then contacting me
@sudden forge there are a few ways to do it.
- You can build a UI on your app or site. Could be as simple as a button, when user click the button, you call Stripe subscription cancel api https://stripe.com/docs/api/subscriptions/cancel
- or you can use Customer Portal, Stripe'
prebuild UI https://stripe.com/docs/billing/subscriptions/customer-portal to allow your customer to cancel the subscription along with other features
Thanks let me see these docs and see which one will work best for me. Thank you @lucid raft
np
How long does payment intent lasts ?
@cloud pasture What do you mean?
So i start a paymentIntent
but didnt confirm it
how long will it wait for confirmation ?
@mellow spear
I don't know off the top of my head; I'm looking.
There isn’t a timeout from Stripe’s side. A Payment Intent can sit in the requires_confirmation forever. However the longer you wait the more likely it is that the bank will decline the charge
I see
thanks
Hmm i think that since i create a new intent every time purchase is being made i will cancel the local intent/stop expecting confirmation after a day
👍
because my intents and confirmation are done almost together
Hello,
Can someone suggest me how can I create "Subscription Schedule" from "Subscription with checkout"?
Actually, I want to create monthly subscription plan for 12 month, after that 12 month, It will automatically complete the subscription.
Its possible by "Subscription Schedule", But there is no documentation how can I create "Subscription Schedule" with Stripe checkout session.
Subscription Schedules can't be created with Checkout at this point
Is there any other option ?
Subscription schedules can only be created via the API or dashboard
Not for Subscription schedule,
creating monthly subscription plan for 12 month.
If your goal is to create a subscription with a billing cycle of 12 months, that can be done with Checkout
I can't find option to specify the number of iteration in checkout subscription .
Are you trying to create a subscription that will automatically cancel after 12 months?
Yes
The only way to do that is with Subscription Schedules, which Checkout doesn't support. You can create a subscription with a yearly billing cycle with Checkout, but you'd have to cancel the subscription yourself after that first billing cycle. You can do so by updating the subscription after its creation to cancel at period end: https://stripe.com/docs/api/subscriptions/update?lang=go#update_subscription-cancel_at_period_end
Hey, Dev team! miscellaneous question: I want to start to learn a programming language for using Stripe, any recommendation? I heard that Python and Php are widely used and are so intuitive
Hi! In terms of getting something out fast, your best bets will be Python, PHP or JavaScript (Node)
Those are compatible with Stripe Elements, right?
Stripe Elements is JavaScript UI library used in your frontend. Python, PHP and JavaScript all have their own web framework you can use to build a simple web app on which you can use the Element in the UI side
@toxic lily Stripe also has some no-code options you can consider https://stripe.com/docs/payments/no-code
Thanks! This would be really helpful for a fast-start. I'll keep that in mind.
And if you are going for the coding route, using Checkout is simpler than using Elements https://stripe.com/docs/payments/checkout
Yes! I will start doing a simple client-only integration, and I'll move into a server side once I understand how the flow goes.
If I don't have a web domain yet, do you have any advice on any free-to-use web hoster? Just to have a temporal base to run a test integration
You can use ngrok to tunnel your localhost web server so that it could be accessed publicly for testing. https://ngrok.com/
I have detached the card and status is changed to "consumed", and I thought the default_payment will be cleared and unable to make a payment. However the payment is still processed with remember successful card (4242). Do you know why?
How are you creating the charge?
Also I highly recommend you use the PaymentMethod API instead of Sources. Sources is deprecated in favor of PaymentMethods
It has been delayed for one payment. Like after the source is detached, then immediately still unexpected successful, but the next payment is failure as what I want. I am planning to migrate to PaymentMethod as well.
How are you creating this charge? Via the API or this is via an Invoice created by a subscription?
Via Invoice using createSource() API
I was debugging this issue ..we observed in dev env where we have different stripe test account is working fine no multiple call for auth ..and in QAT where we have different stripe test account have multiple api call during the auth request ..Interestingly ,QAT also was working fine with dev stripe test id .. Any suggestion on this
Can you elaborate what you mean by "lifetime interval"?
Are you creating the Invoice directly or is it being created via a subscription?
Hard to suggest anything without knowing your code, but clearly something is causing the request to be made twice. I'd add some logging there to try and debug this
Can I create some different account which can help .. because we have an existing account where everything is fine
in that env
You can create as many accounts as you like
Try to understand if that would be helpful .
I doubt the account matters, there is something in your code which is making the request twice
hi i want to ask how can i send payment link to customer
Hi! If you're talking about Payment Links, then you just send your customer the URL. Doesn't matter how you send it, could be via email, link on a webpage or WhatsApp for example
where can i get the link haha
so the link will be on time use or
Did you read the docs I sent? Payment Links can be used as many times as you want
oh ok lot thanks ^^
a plan in which users need to subscribe at once and that plan will valid lifetime. Means users will buy a plan once and use the facilities for a lifetime.
Hey! Any IDE recommended for Python? :)
I am looking for peer-to-peer transfer kind of feature. Is it possible using stripe?
As in you pay once and it's valid forever? Why use subscriptions and not just a one-off payment?
I personally use VSCode
No, that's not what Stripe is for. You'd want some sort of digital wallet service
Fancy. I'll take a look. Thanks
thank you. this helps me.
The basic console it's so orthopedic 😆
We have a plugin for VSCode which makes developing your Stripe integration much easier: https://stripe.com/docs/stripe-vscode
Oof. That actually catches my attention!
As in you pay once and it's valid forever? - Yes
Why use subscriptions and not just a one-off payment? - Need to check each time when a user comes to our app that what plan he/she has chosen.
Using Stripe subscriptions for that sounds like overkill, I'd just record that the user paid in my own database
is this solve my problem ? -https://support.stripe.com/questions/how-to-add-one-time-items-to-invoices-and-subscriptions-in-the-dashboard
Hi all; for a client I'm implementing Stripe Connect with Standard accounts on a platform which is mostly going to be used by private individuals; however the form the user is redirect to seems to be mostly targeted towards businesses. Is there any way to make it less daunting to fill in for private individuals?
So for my project i decided the first option would be better the problem is that the documentation you send me has Node which I don't work with node.js. Do you have another docs that has Javascript
I don't think so, no. You want a subscription to continue indefinitely despite only paying the first invoice right? I still think it's overkill and something you should reconsider as it's quite inefficient, but if you really are adamant about it you could update the subscription after the first invoice is paid to mark future invoices as uncollectible: https://stripe.com/docs/billing/subscriptions/pause
When you create the account you'll want to specify that the account in question is for an individual rather than a business: https://stripe.com/docs/api/accounts/create?lang=go#create_account-business_type
The customer portal requires you to create it on the server, it can't be created just with clientside javascript.
Okay
@bleak breach thanks!
Does anyone know the recommended way to add taxes via the payment intents API ? As someone coming from the charges API - yikes. Besides signing up to enter an invite only beta for stripe tax what are my options here exactly?
Tax rates aren't available for PaymentIntent, only for Checkout and Invoices. I recommend using Checkout for your one-off payments that require taxes: https://stripe.com/docs/payments/checkout/taxes
for things beyond a simple use case, aren't there like, quite a bit of limitations if I use checkout?
Depends on what your use case is. If you want to use your own UI then Checkout isn't what you're after. If you just want to collect one-off payments with taxes though and are happy with Stripe handling the UI, then Checkout is great
Basically I'm hitting economic nexus in a few regions so I need the ability to charge a few different countries in their local currency for one time purchases, with tax added for certain countries. Do you think checkout is a good fit for that @bleak breach ?
I do, Checkout will even optimize for local payment methods based on the country selected
e.g. if you are making a sale in the Netherlands and specify ideal when creating the session, Checkout will automatically reorder the payment methods to show the most relevant first
that seems useful. I'm guessing pulling down reports via the Stripe UI would all fall into place as usual and I can dig up charges from one country or another
Yep, it also handles SCA for you out of the box
The caveat which some people don't like is that Checkout is hosted on a Stripe domain, so it's a full page redirect away from your site to complete the payment
Afterwards Checkout will redirect the user back to a URL of your choice though
right, in my case I don't think thats an issue at all. Stripe is probably more known than most companies at this point on the web unless you are gigantic.
Also since you can create a Checkout Session on the server and redirect there, it means you don't need to add stripe.js to your page
^ nifty. Cool thanks @bleak breach you've convinced me to give checkout a whirl 👍
You can always have a play in test mode to get a feel for it
hi
can you support me information about bank account of japanese country when i want to payouts
:question: Have a question about your account @versed bison?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
thank u for anyway
I have a question about the free trial, if my client canceled free trial, and with another email, same bank account, can he join again?
Yup, it's possible for someone to repeatedly sign up for free trials if they kept using different email addresses
how can I avoid this problem, it looks stripe do not allow us to save the bank account for client
You can't really avoid it, if a user is adamant on registering new accounts with you to get free trials they'll find a way. I'd suggest not offering a free trial anymore
phone number verification has worked well for me in the past
is there anyway we could get client bank account saved in our CRM?
just make sure to properly blacklist VOIP numbers
technically yes but its a really bad idea
yeah so https://stripe.com/docs/payments/accept-a-payment-charges#web-create-token elements turns payment details into a token
you could probably find a way to read data out of elements and save it yourself but that's a really, really, really, really, really bad idea
Yeah don't do this, also you can't. It's in an iframe so you can't access it via JS
you could read the fingerprint though : https://stripe.com/docs/api/payment_methods/object#payment_method_object-card-fingerprint
If you use Radar you can even block their card's fingerprint : https://stripe.com/docs/radar/lists#default-lists and block it for trials by turning Radar on for SetupIntents (https://stripe.com/docs/radar/risk-evaluation#when-can-i-use-radar) .
hi, the price of stripe connect is 2 euro per month recurring or per year? for active account.
@steady harness as far as I know the active account fee is charged monthly
Hello everybody
Do you know how I can create a subscription with end, which can be chosen by the donor with gravity form on wordpress ?
@cedar prairie hi! I think you'd need to read Gravity Form's docs for that. If you're calling the API directly you'd write some custom code to collect what the user entered and the pass it to https://stripe.com/docs/api/subscriptions/create#create_subscription-cancel_at when creating the subscription, but if you're using a plugin like that you'd need to work with their docs/support to see what's possible.
Hi guys. We've Integrated stripe payment in our app using this https://stripe.com/docs/payments/accept-a-payment?platform=android. payment is working fine but the Android app is not redirecting back to app after completing a PaymentIntent. at the end of the payment the browser is not being closed. If we try to click "return to merchant" there is no response. Is there something that we are missing?
@meager hawk Great ! thank you so much
Is everyone else having a problem showing the Payment Sheet? https://github.com/stripe/stripe-react-native/issues/315
I can't for the life of me figure it out
I don't even know what it looks like, to know if it would fulfil our needs?
@hidden ridge hey! Hmm. It should generally close itself, the SDK detects when the authentication is done and should close the webview
or do you manually redirect to the main web browser?
@alpine depot it would look like the images at https://stripe.com/docs/payments/accept-a-payment?platform=react-native at least; looking at the GH issue now..
Hello everyone ! Hope you are well. We're currently building a data analysis tool where we would assess certain KPIs for our client (let's say for example the MRR). Thus as a consequence, we need to gather some data from your API, but it's quite hard to build the tool without sample data sent by a "fake" API. I tried to check on the documentation but I haven't found this. Did I miss it? Thanks in advance !
@vocal wagon hi! We don't really have a way to give you an account that has some pre-existing test data no. The general idea is you would call our API in test mode (https://stripe.com/docs/testing#cards) to create various payments and so on and then you can analyse that in conjunction with what you read in https://stripe.com/docs/api .
Or you could ask your client to give you some access to their existing account so you can play around with their data a little , like maybe they could give you a read-only API key for you to use for development(https://stripe.com/docs/keys#limit-access)
hi. hmmm we do not manually redirect. it's by the SDK, however in my case the webview is not being closed. I can't seem to detect the issue with this 😅
@hidden ridge I think I'd need to see your exact code, and details like the pi_xxx PaymentIntent you see the problem with and the exact version of stripe-android you use. My initial thought would be, if you use PaymentIntents directly like stripe.confirmPayment(..) , you might not have implemented onActivityResult ? but yeah it should be automatic really, I just tested it in a sample app I have and it's working
but yeah in general the SDK is supposed to detect that the authentication is done (via https://github.com/stripe/stripe-android/blob/ad426ca33105e7bc5f17c027f8146354d13f75ae/payments-core/src/main/java/com/stripe/android/view/PaymentAuthWebViewClient.kt#L128) and close the webview automatically so I think I'd need the context above to try to understand why it doesn't happen
sure! if you have any keys maybe remove them(though it should only be public keys in your Android code), but feel free to upload the Activity and I can have a look if anything jumps out at me!
oh. Can you remove return_url from that PHP code and try again?
you shouldn't need it (as I said, the SDK manages this for you) and it's probably what causes the problem
Thanks for your answer. But for example if I use the test api, i won’t have any data regarding subscription correct?
@vocal wagon you can create subscription in test mode as well : https://stripe.com/docs/billing/testing But yes, you probably won't have much historical data like 12 months of previous Invoices without waiting
so a combination of testing, creating mock data yourself, and maybe asking your client for access as I described, might be a good way to approach this
really appreciate your help on this. if i remove return_url and confirm=true,
its working and payment intent id received from the response, but in the app end they are unable to close the browser or webview after successful payment. Not sure what could be the issue on this 🥲
can you share the frontend code of the Activity you're using(in text please like a file upload or pastebin link, not a screenshot)? and the ID of a PaymentIntent with the problem and the version of stripe-android you use?
Hi. Would this suffice? also ID is pi_1J8jVfLm1VO21YvJimPRWF3A_secret_AF3JQXKpgyzY1jDIMUnM0tLvd
implementation 'com.stripe:stripe-android:16.10.0'
looking! but it's quite hard to read code from a spreadsheet, I was expecting a .txt or .kt file really
sorry for the trouble. thank you so much for looking into this 🧐 😅
I'm a bit confused because I see no activity on the Stripe account involved with that PaymentIntent ever doing anything with our Android SDK, all your logs are just creating PaymentIntents in the backend
oh wait you did, just it was a few hours ago
anyway the code and so on all seems reasonable, I'm not sure why it wouldn't just work and close the webview.
I'd suggest writing to https://support.stripe.com/email with the details you shared with me and ideally a screenshot/screen recording of the flow you see and we can dig into it!
Hi, I am trying to setup a merchant centre using stripe connect, however, every time a seller creates an account stripe prompts them to fill in their business information and website - however the app is not meant for businesses. Is there a way users can become a seller without uploading their business info (i'm setting up accounts as individual / sole trader) - Meant for UK
@acoustic citrus well the UI will always refer to a business and that can't be changed. We're required to collect certain KYC information from merchant accounts including a description of their product they 'sell' and their reason for doing business.
I'd suggest prefilling the information for them based on your platform!
you can pre-fill a product description and an MCC for them instead based on your platform's business. For example a platform helping local florists to start accepting payments might set business_profile={'product_description'="Florist", 'mcc'="5992"} for them.
https://stripe.com/docs/connect/express-accounts#create-account
https://stripe.com/docs/api/accounts/create#create_account-business_profile-product_description
https://stripe.com/docs/api/accounts/create#create_account-business_profile-mcc
Ok thanks, im building an app where users can split bills, so its just a customer to customer setup. I'm assuming I can do this within my app and send the pre filled data over to stripe? But won't the user still have to go through the UI setup?
Hi everyone! hope you are all well!
I was wondering if anyone is able to guide me in the right direction.
I've got X amount of users subscribed to a single product but with 4 different prices.
My goal is to lower the price for these current subscribed users.
I know i can simply create 4 new prices with adjusted costs for new subscriptions, but i can't seem to find anything on the portal to "migrate" the current users to the new price.
Can this only be achieved through the API or achieved at all?
@acoustic citrus well, anyone who needs to receive money needs to have a Stripe account of some description, and provide the required KYC/identity information for regulatory/anti-money-laundering reasons. You can prefill some of the information to streamline things but the user does have to go through the onboarding in the UI yes(if you're using Express accounts)
to be clear if you're not sending money to these people they don't need Stripe accounts or any of this, they're just end-customers
oh yeah ,for splitting bills you probably want to send money to the person who pays on behalf of the other people? Not sure of your business set up, but just flagging that as a rule of thumb in case there was confusion.
@vocal wagon hi! you want https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#changing
you'd do that for each subscription. You should also make sure to think about how/if you want the change to be prorated(controlled by passing proration_behavior on that update API call and test things out to make sure you understand it or ask here!
Yeah so essentially all i need to do is allow user 1 to send money to user 2 but allow us to take a % cut from that payment (im using standard connect accounts) but it keeps asking the user to fill in business details which they wont hav
@acoustic citrus maybe use Express accounts instead of Standard.
Standard accounts are for merchants selling things
will this fix the business issue?
@meager hawk i will look into that, thank you very much!
Thank you! I appreciate your help on this. Bye for now 🙂
@acoustic citrus well it would still have a similar UI and talk about business details but there's less of it. Also you can ask for only the transfers capability(https://stripe.com/docs/connect/account-capabilities#supported-capabilities) (since you don't need card_payments presumably since these people will never be charging end-customer's cards themselves) which significantly lowers how much information is needed to be collected
I'd start with https://stripe.com/docs/connect/collect-then-transfer-guide since it seems to better fit your use case
Aha, that might work actually, I'll look into it, hopefully as im processing the payments their account wont need to be a business as we just transfer the money to them
Actually, looks like i cant setup express accounts in the UK?
hmm
I think you need to allow specific countries in https://dashboard.stripe.com/settings/connect/express
also is your platform account/business in the US? Because that will complicate things a lot since it becomes an international money transfer
No everything is setup within the UK, all customers will also be in the UK. I'll look into this, thanks for all your help!
Still asks for business details arghhh 😆
please help
@acoustic citrus it won't ask for a website or industry if you prefill a product_description
I have been locked out of my STRIPE account and cannot get anyone from Customer service to help. When I press "Forgot password" it says internal error
@acoustic citrus e.g passing business_profile={'product_description'="Florist", 'mcc'="5992"} when creating the account as I mentioned earlier, the description fulfills the requirement for a URL so we won't ask for that, and the mcc (https://stripe.com/docs/connect/setting-mcc) is the industry(you would just use one that makes sense for your platform)
@sour warren I can't help with this here unfortunately — I'd suggest emailing support@stripe.com directly. I tried https://dashboard.stripe.com/reset just now(the 'forgot password' link) and it didn't throw an error for me, so I'm not sure if something is different in your environment
thanks
Good morning. I am attempting to update our Stripe account, but it keeps telling me that there is a code being sent to my phone number. I'm not getting a code. 😦
@wet kelp SAME HERE
@wet kelp I have been trying to update all week and requested back up email and nothing is coming through. I think our acct has been hacked too.
EEP! Awful. I don't think that we've been hacked! I just think that something is wonky. 😛
@wet kelp I'm not aware of an ongoing issue, I'd suggest writing to support@stripe.com directly.
no, I have had 3 customers this week call us panicking as their banks are saying WE charged them thousands of dollars which we haven't. I checked every payment gateway to verify all except one- STRIPE- which i cannot get into
Okie dokie. I will try them again. ❤️
I have emailed. Pressed every contact button and am getting NOTHING in return. I have tried to login in from multiple desktops too
good luck
Hi!
I think i have a easy beginners question that i can'tseem to fix myself.
I have a simple checkout system where i have users pay for online courses and i create a stripe customer. I then store the customer id on my server so i can later verify that a user has paid for the course. So i'd like to select all the checkout sessions of a user. Is there a way to that? I tried the code below but it did not work.
// does not work
print_r( $stripe->checkout->sessions->all(
['customer' => 'cus_JlFosJ9DUtyJ6k']
));
Is anyone else getting this error?
My dashboard works fine atm
Do we need to use celery with stripe?
@light nimbus I would do https://stripe.com/docs/api/payment_intents/list#list_payment_intents-customer instead
if you then need the actual CheckoutSession object for a given payment, you'd make a separate call to https://stripe.com/docs/api/checkout/sessions/list#list_checkout_sessions-payment_intent
@upbeat grove I don't follow, what is 'celery' exactly?
Thanks! i'll give that a go
For example: handling background task such as Email
I wonder if working with third party apis take a lot of time and should be moved to celery. To increase performance in production
I don't think I have any specific advice for you on that.
do we know how long normally it can take to get a response back from Stripe?
meaning all end points are sending response with 3s?
like, for an API response? We don't publish an SLA no, it highly depends what exact API call it is(retrieving a single Customer object is faster than processing a payment as former is a database lookup, the latter involves talking to an external bank, running fraud checks, etc)
yes API response
it's as fast as it can be and one of our main priorities! Can't imagine you'd see many requests more than a couple of seconds.
Hello, tell me how can I create a subscription with a start date retroactively ?
I am creating a subscription with a parameter backdate_start_date, but the start date is today.
Thank you !
My code (python):
new_plan = handler.create_plan(
client_id=client_id,
amount=1001,
currency='USD',
interval='month',
interval_count=12,
name='TEST TEST TEST'
)
response = stripe.Subscription.create(
**{
'customer': client_stripe_id,
'backdate_start_date': 1625130000,
'items': [{'plan': new_plan.value['id']}],
'expand': ['latest_invoice.payment_intent']
}
)
@muted fable hi! can you say more about "the start date is today" and what field/data you look at for that?
but yes if you use backdate_start_date , it calculates proration as if the subscription had started then, and it sets current_period_start on the Subscription to that date, but the start_date /created fields are still the time of the API request.
argh, sorry, other way around.
start_date is the backdated one, current_period_start is the time of the request.
Should I look at start_date instead of current_period_start ?
I need to create a subscription with a start date of July 1 for one year
It depends on the use case, but yep, sounds like you would look at start_date
unfortunately this feature is very limited
I do agree that it really should change the current_period_start, but it doesn't, it's more intended just to allow you to have proration get automatically calculated.
The problem is that this parameter is not present in the response webhook event invoice.payment_succeeded (
Hi I want to ask is there any country cannot support
@muted fable you would make a call to Subscriptions.retrieve(invoice.subscription) for example and read the subscription data from there
@mellow scroll can you clarify? you can create an account in any country listed at https://stripe.com/global. Customers you charge can be mostly anywhere in the world
I am wondering why there’s a macau customer can’t see there’s payment method by stripe when he is gonna check out from our website
Coz china?
Haha
there's not really enough information to go on there so you might want to write to https://support.stripe.com/email with a full description (how you integrate with the API, what the customer sees, their IP address, and so on)
thank you )
Thx 🙏🏼🙏🏼
hello i need help
@vocal wagon hello! what's the problem?
I'd suggest contacting https://support.stripe.com/email instead. This channel is for technical coding questions.
Hello , I have a question regarding stripe . Does stripe allow multiple currencies on shopify store ?
@vapid fossil hi! I think that's actually a question for Shopify. But yes, you can charge customers in essentially any currency(https://stripe.com/docs/currencies#presentment-currencies)
so stripe allow multiple currency in checkout page ? Actually shopify payment allows multiple checkout currencies .
Stripe will charge the customer in whatever currency you tell us to in your API request, we don't have limitations in terms of processing a payment. But you don't call our API, you use Shopify, so what is possible on their checkout page isn't 100% related to what Stripe does or does not allow — you'd have to ask Shopify these questions.
Question is regards to Apple Pay: Do you have to use <ApplePayButton /> (RN)
Hello, your service debited $ 6 from my card, although I did not buy anything from you, how can I get my money back?
Not sure if there are other ways to do it, but the officially supported approach is the ApplePayButton as you mention
:question: Have a question about your account @untold sage?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
My money was stolen!
This is not the appropriate channel to get support for what you're asking. Please see the link above as we cannot assist with account issues here.
Basically my problem is that I'm getting a message that I haven't provided a merchantIdentifier, even though it's there in the <StripeProvider />
@untold sage you likely want to use https://support.stripe.com/charge-lookup — a merchant using Stripe is who would have charged you so you can find information on that charge there. You should contact them for a refund, and if they aren't responsive you have options like contacting your bank to file a dispute.
Are you using the exact sample code from https://stripe.com/docs/apple-pay?platform=react-native and have verified (e.g. by logging) that the string you're passing in as the merchantIdentifier is exactly what you expect it to be?
Yeah, the only difference is not using <ApplePayButton /> right now
Meaning that if you use ApplePayButton it works, but if you try some other approach it doesn't?
I haven't tried with <ApplePayButton /> yet because it requires quite a bit of refactoring. So I thought I'd ask here if I'm missing anything
Hello regarding my tax information & invoicing I have a question. I only have the necessary tax number in Germany (small business does not need a VAT number). But I can not change this or it is not displayed on the invoice of my customers, which must be but definitely for my accounting!
Hmm OK. I'm not a React Native dev but usually with RN questions the official library examples (in this case using ApplePayButton) is going to be the correct approach because it encapsulates everything for you.
:question: Have a question about your account @opaque jackal?
While we're sorry to disappoint, this Discord is intended for technical questions and developer chat—we're not able to help with account specific questions. For help with your account please reach out to Stripe support directly at https://support.stripe.com/contact
Alright, so looks like I can use initStripe and it works. Interesting.
Yeah I'm sure there are tricks to get around things, I'm just not well versed in what the library exposes outside of the direct integration.
Yeah, and the documentation is still very much WIP
hi! just want to ask if stripe integration with live api key will work if deployed on localhost ?
Not likely as you need to use HTTPS for all livemode API requests.
Question: I believe 2 years ago we were trying to use Stripe Elements components in nw.js environment (Electron alternative), but we couldn't. The issue was in production, because Stripe was asking for an HTTPS environment. Because of that we had to use iframes which kinda made our implementation messy. Last week I tried integrating it again, and this time is working even in production ( live cards are getting charged ). I'm wondering what changed. And is it still safe?
Thank you @sick talon
I believe Stripe Elements create their own iframe as well, right?
That's a pretty complex question but assuming you're not seeing any errors, it must be working if you see successful payments. Elements does create its own iframe.
I can't speak to if it's "safe" as I've never worked with nw.js or Electron directly.
The thing is I also tried charging a card through local environment (localhost) which use http, and it still went through ( Even though I was getting warnings that I have to use https when I was on dev )
Is that supposed to happen
What's the id of the Charge/PaymentIntent in live mode where it was successful in that scenario?
That request used https, no issue there.
You'll get an error if you try to use http in live mode
What is stripe looking to determine if the environment is http or https?
window.location.href?
Wait, you mean the browser being pointed at localhost? You should never be doing any testing in live mode which is the only reason I can think of you'd be in that scenario. It's against the Stripe ToS.
I assumed you mean a webhook endpoint or otherwise directing Stripe to connect to a localhost server from our side.
It's not live mode. It's a location that we use to test our implementation with production cards
Hi Guys, I need help to set meta data within invoice object in Stripe::InvoiceItem
You should never do that, testing with real cards. It is against the ToS.
to recieve during invoice.payment.succeded
@sick talon Gotcha! So as for the implementation with nw.js, I'd have to dig deeper on their docs I guess
Thanks for your help
Much appreciated
@sick talon Is there any stripe doc that covers stripe integration with desktop environments like Electron or nw.js?
@sick talon Do I get this metadata during invoive.payment.successed webhook ?
cause when I check invoice object over Stripe dashboard I can't see any metadata set
@twin cairn are you using paymentintent?
We don't have any official libraries or support for either at this point. Anything you could find would be third party.
You wouldn't, you would request the line items or invoice via the API and expand them.
@sick talon I understand! Thanks for your help. Have a great day
@fair smelt actually we are using legacy buttons unfortunately, our app is very old
legacy buttons using Stripe js
I understand, because in paymentIntents.create it is possible to get the metadata from the webhook
our webhook endpoints listen invoice.payment.succeded
I see
Is it allowed to send code here?
Because I have an issue with verifying webhook signatures in Node.js
okay wait
What's the specific error? Almost always it's an issue with how the body is parsed before it gets to your code, e.g. bodyParser. See https://stackoverflow.com/questions/60874186/node-js-stripe-error-no-signatures-found-matching-the-expected-signature-for-pa
My event is undefined, but bodyparser is deprecated
I tried using express.raw instead, but it didnt work
hello there, regarding stripe connect custom, we are collecting stripe required documents / infos during our platform signup flow. Web client creates tokens using SDK for account / persons / bank account, and pass those to the backend. The backend then creates account / persons / bank account using those tokens, and then the client uploads documents for validation.
The backend listens to account.updated hook in order to notify user by mail once verification is over and let him know if his account is ready to go or if the verification failed.
In case the verification failed, we provide the user a custom link for him to fill those missing infos according to the eventually_due array in the stripe account object. Here again, account and person tokens are created and passed to the backend for it to update infos using the API.
I am stuck at the bank account update, im not sure whats the proper way to act if verification failed
@cobalt pendant hello
hey there hmunoz 🙂
@cobalt pendant "I am stuck at the bank account update, im not sure whats the proper way to act if verification failed" -> this is the case where Payouts to the Connect account's external bank account failed and you need to collect a new bank account right?
I fixed it:) Thanks
hmm can the connected account be not valid due to the bank account provided infos ?
what i want is make sure the stripe connected account is ready to go with both cards_payments and transferts capabilities before the concerned user can start using our platform fully
@cobalt pendant yes I get that part, I just wasn't clear on this part "hmm can the connected account be not valid due to the bank account provided infos ?"
Like are you asking about after you've updated a bank account on the Connect account?
well during our sign up flow, we create account / persons / bank account. We pretty much collect everything ahead so once stripe validates everything the user can use our platform fully. If verification fails, could the reason come from the bank account ? cause if thats the case i need to do something about it on my backend. And thats what im trying to figure out. Sorry if im still not clear
@cobalt pendant ah gotcha, that helps
@cobalt pendant so my understanding is that bank accounts aren't verified like other identity details are but they are "verified" when eventually payouts are sent to that bank account. So if payouts fail, that is when the Connect account external account will need to be updated and you'll have to collect a new bank account for them.
ooh okok, so the eventually_due array from the account object wont show anything about the bank account if it has been provided ?
@cobalt pendant yes I believe so, it would show in currently_due at some point if Stripe is unable to deliver payouts to that account and hence needs a new bank account.
okok ty for enlightening that part. Now, whats the proper way to update a bank account if a payout fails to be delivered, using the API
@cobalt pendant just like you're bringing the account owner to your page to upload/enter new details, you'll collect their bank account details and create a bank account Token and then update the Connect account's "external account".
@cobalt pendant not that ... one sec
@cobalt pendant this: https://stripe.com/docs/api/accounts/update#update_account-external_account
tyty, so that would update the default account automatically right ?
@cobalt pendant yep

tyty
oh wait, thats from the account itself, can i do that ? i thought i should use the bank account api. Can i do so by passing a token instead of plain infos ?
@cobalt pendant both work, you can create a bank account token first and pass that as external_account: btok_... (like https://stripe.com/docs/api/external_account_bank_accounts/create) or pass values to the external_account hash directly (like my link)
amazing
is that the same thing for account Creation, can i just pass that token to the account object during creation ?
@cobalt pendant yes works on account creation too
person too ?
cause atm during creation, i execute 3 stripe calls, 1 for account, 1 for bank account, one for person lol
@cobalt pendant Person might have to be its own call but Account creation can include external account creation as part of it
sounds good, gonna lighten my code a lot rn due to this chat haha tyvm
I need help
@cobalt pendant not a problem, glad to help!
@worn wren hello, what is the issue you're running into? are you building an integration with Stripe?
yes, i can't insert my the card information
@worn wren are you the developer building this integration?
@worn wren open your browser console and check what errors/warnings you see from Stripe.js
If there's a bunch of subscriptions that are close together, will stripe group them into one invoice? Our QA has what looks like 6 subscriptions that span 3 days. However, they're all on the invoice for tomorrow, rather than being taken when they were created.
@frosty coyote hello, each Subscription has its own Invoices, they won't be bunched together. Maybe you're seeing something different or we're using different terminology for what constitutes an Invoice.
It might be easier if I show you? Are customerId's unique? If I send one would you be able to see the scheduled invoices? It's a test account in test mode but its quite odd.
@frosty coyote you can share any Invoice or Sub ID's here (like inv_123 etc) and I can look them up and better understand. Can you send me Invoice IDs where you see them "grouped up" ?
and yes Customer IDs are unique.
in_1J7jLzKjnjltSiTlTV5j5e0j this but it only seems to show one on that id, but the customer record shows
@worn wren try stepping through your code and adding logs to make sure you are setting up a CardElement and mounting it correctly. Also use the browser element inspector to make sure the div you're mounting on is there and has a width etc. There could be a few things, I can't say but I can help you debug it on your end to narrow down what it could be
@frosty coyote looking
it's entirely probably that QA have done something weird, but it's hard to spot through the web UI.
i will take a look
@frosty coyote so what you see there is multiple different Invoices for the same Subscription. Not clear why they haven't finalized and gone from "draft" status to "open" or having payment attempted on them yet (still looking)
Ok that would make sense. Theres a chance they've switched the billing cycle from monthly to daily (it's helpful in testing that it doesnt take a month to test 😉 )
@frosty coyote ah I think I know
Hi everyone. in our app we're using stripe checkout by creating a payment intent on backend, and sending the user to the stripe checkout page. We have webhooks setup for all the events, i.e., payment success failed, processing and canceled event. However, only the success webhook is getting triggered in our case. Can somebody help on that
@frosty coyote the yellow section here: https://stripe.com/docs/billing/subscriptions/webhooks#understand
Basically yes this was changed to a daily Subscription. For every daily Invoice, Stripe sends you the invoice.created created webhook event. You have to respond to it correctly (and any Platforms that are connected to your account and listening for this event) for Stripe to finalize the Invoice automatically. In this case, ~3 Platform owned endpoints didn't respond to this webhook event so the Invoice is still in "draft" for ~72 hrs: https://dashboard.stripe.com/test/events/evt_1J85scKjnjltSiTlbejbC1Cy
Learn to use webhooks to receive notifications of subscription activity.
Ah, that makes sense. I need to go poke the guys setting up the the other platforms. Thanks.
Hi Guys, I need another help with tax rates, I'm using Stripe::Checkout::Session for one time and subscription, My question is where do I pass tax_rate with the method?
@twin cairn hello, you pass TaxRates as an array of strings under each line_item entry: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-tax_rates
There's a doc on this too (change the tab to "tax rates") https://stripe.com/docs/payments/checkout/taxes
Learn how to collect taxes for one-time payments in Stripe Checkout.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Are dynamic_tax_rates only available to customers on Stripe Billing?
Hi everyone!
I have created a checkout session and need to split the revenue with some Connect accounts
For this I have created some transfers to these Connect accounts after the checkout session
There is a problem ... if I don't have enough balance I can't make the transfers I want because the checkout session entries are not instantly available for transfers
Can I send money directly from the checkout session? I have seen that I can do this with a single connection account but I don't find how to do it with multiple accounts
But tax_rates are available to all Stripe customers, even if they do not have Stripe Billing. Is that correct?
@viscid burrow do you mean this: https://stripe.com/docs/payments/checkout/taxes#dynamic-tax-rates
They work on Checkout for both one-time and Billing. But yes with a non-Checkout integration, only work on Billing primitives (like Invoices/Subs)
Learn how to collect taxes for one-time payments in Stripe Checkout.
@mint shoal hello, "Can I send money directly from the checkout session? " -> yes with Destination Charges but no it doesn't work for multiple accounts, the flow you're using "Separate Charges and Transfers" is what you'd use for that.
Stripe offers two ways to calculate tax on your Checkout Sessions: Stripe Tax and Tax Rates. So the "dynamic-tax-rates" is the hash we use for Stripe Tax? Is that correct? And if you are using Tax Rates you just pass in the line_item.tax_rate
Thansks a lot @bold basalt
@viscid burrow Stripe Tax is different from Dynamic Tax Rates and Fixed Tax Rates
i.e. Stripe Tax != Tax Rates
Can you also help me with --- If the Stripe Connect customer is using Stripe Tax and wants the tax rate to be dynamically populated based on the checkout.stripe.com Billing or Shipping address, how do we set that in the Session?
So the method that I'm using is the only way?
Stripe Tax != Stripe Billing
Oh, I thought when you upgraded to Stripe Billing you get Stripe Tax, but it sounds like Stripe Tax is another separate product offered by Stripe and is not included in Stripe Billing.
Is there a pricing page for Stripe Tax? How much is the additional charge for that new product?
@viscid burrow TaxRates are where you define them up front yes, then pass them into the CheckoutSession line_item.
Stripe Tax is where you set a tax code and tax behavior on the Price/Product and then set automatic_tax[enabled]: true on the CheckoutSession. It does (and was always intended to) support Billing in a beta or something, let me check
I am confused between automatic_tax[enabled]: true and line_item.dynamic_tax_rates? Seems like we need to pass in both on the Session?
@viscid burrow no they are either-or.
Here, this might help, there's two tabs here, one for "Automatic tax" and one for "Tax rates, fixed and dynamic" that will help you differentiate: https://stripe.com/docs/payments/checkout/taxes
Learn how to collect taxes for one-time payments in Stripe Checkout.
How much is the additional charge for that new product?
that page mentions Stripe Tax is paid but Tax Rates are free (I don't know much beyond that about pricing)
@mint shoal yes
OK, if an existing non-technical Stripe account owner has lots of Products and Prices and wants to add Stripe Tax, can s/he go into the Stripe Dashboard and update what is needed, or do the things that need to be updated to add Stripe Tax need to be updated via the Stripe API?
Here is where I am confused. What is the difference between "dynamic_tax_rates" where Stripe dynamically adds the correct tax rate based on the region and Stripe Tax? Is it that Stripe Tax has a big db of all the regions on the planet so the customer does not need to come up with a TaxRate collection on there own and create it?
@viscid burrow "go into the Stripe Dashboard and update what is needed" -> yes, doable from Dashboard or API
" Is it that Stripe Tax has a big db of all the regions on the planet so the customer does not need to come up with a TaxRate collection" -> yes.
Where in the Stripe dashboard can I go in and update a Price and Product with the tax_code and whatever else is needed to use Stripe Tax? Or, does that require the Stripe API to update those prices and products?
@viscid burrow both API and Dashboard work as I mentioned earlier. In the Dashboard, go to "Products" in the left nav and there you can edit the Product and the Prices for it.
In the dashboard, I just see editing a Price and nothing with tax_code, just Pricing model, ID, and description?
It doesn't appear that I can update in the dashboard.
*We just have to determine if we need to build a UI to allow our Stripe Connect customers to do this or if they can do it themselves in the dashboard.
@viscid burrow not sure on what the Dashboard functionality exists here but also Stripe Tax right now is invite only, have you requested access to it? https://stripe.com/tax#request-access
@viscid burrow like I'm not a Dashboard expert but since I have Stripe Tax enabled on my account, I can add tax code and tax behavior to Product / Prices from the Dashboard, so I mean that functionality does exist, you're most likely not enabled for Stripe Tax due to invite only
**OK, maybe i have to upgrade our account to test it.
@viscid burrow not upgrade technically, just request access to the feature. Are your Connect accounts going to all be Standard Connect accounts? Or Express/Custom?
Standard Connect accounts
@viscid burrow gotcha yeah so right now it is a tricky place cause Stripe Tax is invite only so each Connect acct would have to request access to it in order to update from the Dashboard or even have your Platform integration update it on behalf of them. That should change soon, where Stripe Tax is generally available to accounts, though I don't have a timeline on that personally
We need to Stripe Connect an account and have that "child" account upgraded. Is there any way you can take an inactive account we have an upgrade it to Billing and Stripe Tax so we can connect that account to the "parent" account associated with our account?
It is hard to try to develop for this feature without having a test account with the feature. 🙂
But we can do our best.
@viscid burrow Billing is activated by default on any Standard Connect accounts. Stripe Tax is in that interim place where it requires invite only for each Standard Connect acct. From what I know (and could be wrong) it should be generally available in some months from now so that "invite only" won't be an issue either and you'd be unblocked to build an integration on any Standard acct.
@viscid burrow you can register a second Standard acct, connect it to your Platform account and request Stripe Tax access for it so you can try out your integration (that way both your Platform and Standard Connect acct have Tax enabled)
What's the easiest way to get the line items for a charge completed through a checkout session when looping through charges on a customer?
Right now I'm using the checkout completion webhook to query the line items and saving the pi_ and the items to a db, then on the charge list I'm querying my db to find the items for that intent
But there has to be a better way
@burnt needle To go from a Charge to a Checkout Session (where the line items are) you would need to list the Checkout Sessions based on the Charge's payment_intent: https://stripe.com/docs/api/checkout/sessions/list#list_checkout_sessions-payment_intent
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
So that would be 1 request to list sessions, then 1 to actually grab the line items?
@burnt needle I thought you could expand line_items when listing, but let me confirm...
doesn't show anything as expandable on that docs page at least
Would be nice if there was a way to expand it directly on the charge
@burnt needle Yeah, you can expand when listing. I just tried this and it worked as expected:
$sessions = $stripe->checkout->sessions->all([
'limit' => 10,
'expand' => [
'data.line_items'
],
]);
Hmmm nice
@burnt needle Anything you can expand when retrieving a single object should also be expandable when listing.
That is very helpful to know
What would be the easiest way to add a payment method from a checkout session to the customer for future potential purchases?
@burnt needle Set payment_intent_data.setup_future_usage on the Checkout Session: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-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.
Perfect, thanks for everything
Happy to help!
One more question, how long are checkout sessions valid for?
@burnt needle I believe they last about 24 hours right now, but let me find confirmation of that...
@burnt needle Yep, 24 hours as mentioned in the info box here: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout#redirect-customers
Securely accept payments online.
Is there any way to extend that?
Would be nice to give people 48-72 hours or so
My thoughts are to send an email if they don't complete within a certain amount of time with a link to continue later
With only 24 hours I'm worried they might not even check their email in time
@burnt needle No. There are Payment Links, which do not expire, but they may not be a good fit for your use case: https://stripe.com/docs/payments/payment-links
Learn how to create a payment page and embed or share a link to it.
Yeah nah, I need sessions for making sure I can tie the charge to data collected earlier
@burnt needle For the email scenario you should send them to a page on your site that generates a Checkout Session and immediately redirects them to it.
@burnt needle Checkout Session URLs should not be shared directly in an email.
That's what I do when they submit the initial info, but I'm not sure how I could save that info and generate a new session to tie to it by visiting a new link
I'd rather not cookie and such
@burnt needle You could do something like this in the email:
https://example.com/checkout?customer=cus_123
Then on your server create a Checkout Session for that Customer.
Yeah I suppose I could do that, is there a webhook for when a session expires?
@burnt needle No, I don't believe so. But really your integration should not be built in a way that makes Checkout Session expiration an issue. You should generate and redirect to Checkout Sessions as needed and avoid situations where they would need to be long-lived.
Yeah just thinking of quick and easy ways of doing things, webhook would be a great trigger to send an email rather than my own whole system of keeping track of who hasn't paid in x amount of time
I have a problem with Webhooks, I would like to know how to recover if a purchase made is a monthly or annual subscription, or a single monthly or annual payment? Thanks in advance 😉
@vague lava Hello! Can you provide more details? What do you mean by "recover" exactly? Recover from what?
@vague lava Are you asking about this flow? https://stripe.com/docs/billing/subscriptions/overview#requires-payment-method
Learn how subscriptions work within Stripe.
With the charge.succedded, I managed to recover this:
And I would like to put in my database the end date of the subscription
@vague lava Sorry, what is load.succeeded?
charge.succedded sorry
Hello! Is there a limit to the amount of consecutive charges I can make through stripe ACH?
@vague lava You probably want to listen to another event. charge.succeeded shows Charge details and does not include Subscription details. Maybe invoice.paid would be better for your use case, and then you can look at the subscription property on the Invoice from there?
@cyan knoll Hello! The only thing I know about ACH limits is this support article: https://support.stripe.com/questions/exceeded-ach-payment-limit-error-when-creating-an-ach-charge
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.
@cyan knoll I recommend reaching out to support using the link there for more information.
With invoice.paid, can I recover the email, the amount, the currency, and the name ?
also ..
@vague lava Yes, that's all available on the Invoice object: https://stripe.com/docs/api/invoices/object
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
@mighty hill Thank you. I was more referring to frequency of charges. Like if I were to fire off 100 charges in a minute.
@cyan knoll Yeah, I don't know about that. Support should be able to answer that though!
@mighty hill Cool, thanks.
If you're interested. I think this covers rate limits : https://support.stripe.com/questions/rate-limit-error-when-creating-bulk-api-requests
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.
Seems to be 100 per second
Ohh thanks u very much ! I'll let you know if I have any more questions, but I have everything I need 😉 I'll probably have a hard time getting my variables in the $event!
@cyan knoll That's for API calls in general, not ACH specifically.
Ah okay.
@cyan knoll We have detailed documentation about our API rate limits here if that's what you need: https://stripe.com/docs/rate-limits
Learn about API rate limits and how to work with them.
Hey team, wondering if you can give me some info about ACH and invoice auto-advancing. I have a local subscription with an unverified ACH payment method. I've generated an invoice, which remains in draft for 1 hour. After the hour passes, it seems to me like Stripe does not attempt to charge it.
Following this, from the screen shot below it looks like, after the draft invoice is finalized, it will keep it in Scheduled for 3 days, after which time it will try to charge?
@pliant heart Hello! That indicates a webhook endpoint didn't respond with success to the invoice.created event. We won't move an Invoice forward until all the webhook endpoints we send that event to respond with success until 3 days have passed.
@pliant heart If you can provide the invoice.created event ID I can provide more details.
@mighty hill ok that makes sense to me (the invoice.created ID is evt_1J8q7TDAWTp2PXOw6mQEWht0 and I can see that it did fail to send one of the webhooks)
So then my question is, if all the webhook endpoints did respond, would it attempt to charge the invoice when finalized, and fail with an "unverified" error?
@pliant heart I believe it would, but I'm not 100% sure. I recommend resolving the webhook delivery issues and testing to verify the exact expected outcome.
Thanks @mighty hill , I'll try again with working webhooks
@mighty hill .. I don't see the event in Webhook attempts after a payement with invoice.paid
@vague lava To clarify, is that Charge for a Subscription payment?
Yes ...
@vague lava Can you give me the Charge ID so I can take a look?
Hello! A few days ago I've asked here how to test connecting standard accounts. I was told there was no test environment for that, so that I would need to use "real" accounts, and that I should create another account, that would work on test mode even if signup details were not fulfilled. I'm now trying to figure out how my app should check if user has connected the account successfuly. Docs says I need to listen to account.updated webhook or call the accounts API and check for details_submitted, but that won't happen, as I was directed to testing it with accounts in which details were not submitted. Is there a way to know if an account has been connected in the test environment?
Where is that ?
@vague lava Inside the charge.succeeded event you should see an ID that starts with ch_
You should really break apart the Standard Account part from what you're really testing for (if an account has been connected and can make charges). You can test that latter part with Express accounts much more easily.
Functionally speaking, the end result is the same.
With charge.succeded it worked fine, but with invoice.paid I don't see the event in Webhook attempts
@vague lava Right, the next step is for me to look at the Charge ID to confirm it's associated with an Invoice/Subscription in Stripe.
@vague lava It sounds like the Charge may be standalone and not associated with a Subscription in Stripe, but to confirm that I need the Charge ID.
ch_3J8sUaKDrHeNIeI91nGusmVN I think
@vague lava That looks like it! Let me take a look, hang on...
Ok
I still don't get it, sorry! The Standard account connection is what I want to test. How is the Express account type related to the problem?
@vague lava It looks like that Charge came from a client-only Checkout session and is not associated with a Subscription, so there aren't going to be any Subscription or Invoice events related to it.
What ??
You're trying to test what happens when an account is onboarded and ready to make charges, right?
@vague lava This is the Checkout Session creation request that specifies a mode of payment and has a non-recurring Price associated with it: https://dashboard.stripe.com/test/logs/req_7Z9ail9bSccuLr
I want to test when and if my app detects that an Stripe account is now integrated to it. I've stopped after I create the account id and associate it to my user. I wasnt able to receive any webhooks or updates to it after that
Congrats to the Stripe team for collaborating with Expo to create @stripe/stripe-react-native. I'll be using it asap. 🎉
@mighty hill, I have 4 prices, if a price it's not a subscription, then it means, that there will be no invoice.payload right?
@vague lava Yeah, if you're using a non-recurring Price with Checkout there is no Subscription or Invoice.
Yeah, my point is it won't matter if it's a Standard Account, or an Express Account, or even Custom. You can test that specific part with any of them, so don't use Standard (the hardest one to onboard in test mode).
In my code, can I have a another case 'charge.succeded' for one payement non-recurring ?
Use Express or Custom since you're not testing specifically Standard accounts, but any account.
It appears I cannot "Custom accounts are currently in private beta in your country (BR); contact sales+BR@stripe.com if you'd like to be notified when this is available.
@sick talon *
Does it not allow you to use Express?
That's with express parameter
@vague lava Let's back up... what are you trying to do exactly? What's the goal?
Ah OK, yeah that's a caveat for Brazil currently. There really isn't a great way to test what you're looking for because you can't create accounts that will be active in only test mode.
Finally, that
Have you tried the magic numbers from https://stripe.com/docs/connect/testing#using-oauth
or rather, skipping the form
@vague lava Have you tried listening for checkout.session.completed ? I think that has a lot of the info you're looking for.
Skipping the form was the reason I entered in discord, as this option won't appear as described in this article
I will try creating an account with some foo email and those magic numbers
You should have magic username/password just for standard account connection testing tho
I can't do it at all. I understood how to get the email, its name, id, amount, currency, but then insert an end date, I need help :/ I use any event but I don't understand
@vague lava Okay, let's address one question at a time. First, are you familiar with the checkout.session.completed event and what it contains? It would contain the Checkout Session object with all of the properties listed here: https://stripe.com/docs/api/checkout/sessions/object
@vague lava It looks like most of what you want is there, but I'm not sure what "end date" means regarding this particular scenario as you're asking about a one-time payment. Can you explain what "end date" is?
@vague lava I can't read that. Did you build that?
@vague lava Okay, but did you build that, or is that something you're using that someone else built?
Cant get past the phone part...
With api yes
@vague lava Okay, so why are you using a non-recurring Price if you want a Subscription?
I have 4 prices that work normally:
3€ per month => Subscription
3€ 1 month => non-recurring
25€ per year => Subscription
25€ 1 year => non-recurring
And to get the end date I'm struggling ...
@vague lava Okay, so what do you mean by "end date" for the non-recurring Prices? A non-recurring Price represents a one-time payment with no timeframe associated with it.
If the payment is one-time I would like to know if the amount is 25€ (which corresponds to one year) or 3€ (which corresponds to one month).
From there I could put an end date
@vague lava Okay, so that would be something you do on your end, in your own code. Stripe has no concept of 3€ indicating a single month.
If the payment is recurring, I would like to get an end date too
@vague lava For recurring payments you'll get the invoice.paid event we talked about earlier.
In the Webhooks, How to differentiate which event we are in, i.e. if the payment is unique I don't want it to be confused with a recurring payment and vice versa
And what is the event for a single payment?
@vague lava Honestly I would listen for checkout.session.completed and then look at the properties there to determine what happened.
@vague lava For example, you can look at the Checkout Session's mode to see if it was subscription or payment
@vague lava Then look at amount_total and customer_details and whatnot.
Yes I have see earlier
@vague lava Or look at and fetch the subscription for details about the end date.
Hello; so im making a stripe discord bot, everything works well but, why do I have to do 2500 for the amount to be 25, in the embed it comes out at 2,500 instead of 25 but the invoice does 25.. anyway to make it 25.00 and have it function well?
Okay okay
I'll try to work on that 🙂
Thanks in any case for helping me!
It's really nice @mighty hill 😉
@vague lava Happy to help!
@sick talon I'm setting details_submitted on my side manually, faking it as if a webhook hit my server. This will work for seeing the "Account connected" button in my UI, but seems like I'll just have to trust my code works without testing it, until it reaches production env.... This should really be descbried in your docs, and I guess a way to test the integration is really necessary (at all for Brazil, or in a better way than changing code for testing purposes, where it's not in beta, that's not really a good testing practice)
@sick talon thanks again for the quick help tho!
@vocal wagon All our amounts params in the API expect the smallest currency unit. So for USD it's the cent, so to charge $25.00 you pass 2500 cents or amount: 2500
ah okay thank you 🙂
Hi everybody,
I'm trying to get set up to be able to make payments out to our vendors. Am I correct in assuming I need to get set up with some kind of connected account first?
In order to make payouts, can we add fund to stripe connected account by bank transfer in stripe account? How long does that take?
@mortal tinsel I recommend starting from the top and reading https://stripe.com/docs/connect first
and yes that doc is great and what you want to start with
Please some one can help me please ??
Someone can help me please I do not understand anything, stripe made me a check 4 days ago asking me to provide invoice, social network page etc I provided everything they answered me that everything was validated that he was going to unblock my transfers and subsequently I could not make a manual transfer the cat asked me to switch to automatic transfer what I did my transfers have therefore been postponed again by 3 days and now I receive this email telling me that I am taking too much risk while my account does not involve any risk I am limited perfect seller someone can help me unlock my funds please I cannot afford to wait so long time ?! I can pay the person who will help me please
@manic harbor I already explained in the other channel that we can not help you here, please talk to support
There no one have the same probleme in the past ? Can tell me how i can unlock it ?