#nerder_checkout-customers-connect
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1326960783778910391
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi ๐
Stripe Search is not immediately concurrent. Our docs call this out
Under normal operating conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up to an hour behind during outages.
Oh ok
Should i rely on webhook for this?
my integration does the following:
- search for the customer
- if not found, creates it
- then create a checkout session with the customer id
I think using webhooks will be a better approach. You can listen for the customer.created event: https://docs.stripe.com/api/events/types#event_types-customer.created
This will return the Customer object with the data exatly as it was created.
should I instead do:
- search for the customer in our DB
- if not found, creates it
- listen to
customer.createdand create the entry in the DB - then create a checkout session with the customer id
would this be a more reliable impl?
That would ensure you have the data you are looking for.
Quick question: Why not use the Checkout Session to create the Customer? Is it that you need to attach metadata to the Stripe Customer object before you create the Checkout Session?
I'm using the checkout session in setup mode here and basically we use this to support payment methods setup we don't want (yet) support natively
and usually yes, i need to attach the uid as a metadata of the customer created in the connect account
to retrieve all those customers from within different connected accounts
Okay I can see how it would be necessary for tracking the Customer within your own system
yes, in fact we keep track of customers as in customerId:stripeConnectedAccountId
I think you could achieve the same thing by attaching the metadata to the Checkout Session and specifying customer_creation: 'always'.
Then you would listen for the checkout.session.succeeded event and update the new Customer object with the metadata on the Checkout Session
That would potentially reduce latency but it would be a bit more complicated
actually is not that bad, I can avoid create the customer unecessarly
but the problem would be that the email field will be empty and editable then right?
Unless you provide the customer_email parameter when creating the Checkout Session: https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-customer_email
interesting
so what you are proposing is the following:
- try to fetch the
customerIdfrom our DB - if present, use that to create the Checkout Session
- is NOT present, then simply create the checkout session attaching the
metadatato the Checkout Session and specifyingcustomer_creation: 'always'settingcustomer_email
so in this case, if the customer attempts to open the checkout session, but doesn't end up setting up the payment method we avoid create the customer entirely
otherwise, we receive the webhook for customer.created with the metadata in it
i'm understanding this correctly?
Close but not quite. For step 3, if the customer DOES complete the Checkout Session, you will want to listen for the checkout.session.completed webhook event.
This event will have the Checkout Session object with the customer ID and the metadata. You then use the Customer ID and the metadata on the Checkout Session to update the Customer object in Stripe: https://docs.stripe.com/api/customers/update
ah ok, bummer
there is no way to pass the metadata for the customer that will be created by the checkout session?
No, we don't have that available. I can raise a feature request for that parameter but I cannot guarantee if/when it would get developed.
No worries
I think this will be a good solution anyhow
we are using checkout session for payments when done from the web
so we can reusue a similar approach
I'll take a note for this possible implementation
Okay great
Since we are talking about raising possible issues
I have another question regarding connect payment methods configuration
Should I open another thread?
You can just mention it here
ok so, if you take a look at this req
req_pP9HiDg10s4P1x
basically the checkout session is failing here because our integration request ideal
Well.... it requests SEPA debit because you can only use IDEAL for one-off payments
exactly yes
but SEPA should be active for that account
as we keep it on by default in our connected accounts config
I am looking at the connected accounts payment methods configuration
sepa_debit is off
and the account does not have the sepa_debit_payments capability
It looks like there was an issue with getting some data for account verification
Yes, they just connected recently
and they are fetching those documents
I was looking at this URL: https://dashboard.stripe.com/settings/payment_methods/connected_accounts?config_id=pmc_1LbMQdHTyY8xD8aG8zTO2HFJ
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
and i see on by default
for SEPA DD
But that doesn't matter if they have not provided the required compliance information
The connected account will not have SEPA DD available until they provide the required information.
Ok understood
I remember that back in the days there was a settings for iDeal
to be used for initiate recurring payments
that should be toggled on
I thought it was about this
actually is still there
When we activate iDeal for our Connected Accounts is this settings on or off?
I'm not certain. These are screenshots of the dashboard and, on this server, we hardly ever interact with the dashboard. I can tell you that some payment methods require additional verification information and that, if we do not receive this information, we will de-activate the payment methods for the connected account.
The specific account here had the sepa_debit_payments capability in a pending status but then it transitions to inactive since we didn't get the information we needed
I recommend you review the requirements property on the account object as well as the capabilities property
Ok it makes sense
should I reach out to support.stripe.com to verify if that setting is indeed enabled when we enable iDeal for our Connected Accounts?
Yes. That team is well positioned to dig into the details for account verification
as well as your platform configuration
we focus on coding integrations with Stripe APIs here
Happy to do it!