#tikitikitero88
1 messages ยท Page 1 of 1 (latest)
Hello! We'll be with you shortly. Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- tikitikitero88, 20 hours ago, 42 messages
- tikitikitero88, 2 days ago, 18 messages
- tiki-paymentintent-capture, 2 days ago, 40 messages
It is a new question
Hi
First, what charge type will you be using ? destination, direct or separate charge and transfers ?
Mm what do you exactly mean by charge type? The idea is to add the connected account of a Seller in the destination field. The question is, how should we specify the Platform account?
First you need to choose what Charge type will you be using in your Connect integration
Hi ๐ when you're making the Transfer, it will always be made from the account making the request. That is typically the account associated with the secret API key you're using, the one exception that comes to mind is you're using the stripeAccount header to adjust the account that is making the request.
Ok, that sounds good. In general I think that we are always using that Stripe Account parameter for all our current payments (Payment intent creation, update, capture, etc.)
For example:
.builder()
.setStripeAccount(merchantAccount)
.setIdempotencyKey(UUID.randomUUID().toString())
.build();
final PaymentIntentCreateParams createParams = PaymentIntentCreateParams.builder()
.setAmount(amountInCents)
.setApplicationFeeAmount(taxInCents)
.putMetadata("discount", discount)
.putMetadata("tax", totalTax)
.putMetadata("commission", "")
.putMetadata("order_id", "")
.setCurrency(currency.getCurrencyCode())
.setCustomer(stripeCustomerId)
.setPaymentMethod(paymentMethodId)
.setConfirm(true)
.setConfirmationMethod(PaymentIntentCreateParams.ConfirmationMethod.MANUAL)
.setCaptureMethod(PaymentIntentCreateParams.CaptureMethod.MANUAL)
.build();
return PaymentIntent.create(createParams, options);```
Then why are you creating Transfers?
I am not being able to find where we specify the secret API Key.
If you're processing payments directly on your Connected Accounts (as you're doing by using the stripeAccount header), I'm not sure what you're using Transfers for.
We need to integrate transfer in the next Sprint for some specific scenarios. So, based on your comment I guess that we should build our request like:
.builder()
.setStripeAccount(platformAccount)
.setIdempotencyKey(UUID.randomUUID().toString())
.build();
final TransferCreateParams transferCreateParams - TransferCreateParams.builder()
.setAmount(amountInCents)
.setCurrency(currency.getCurrencyCode())
.setDestination(merchantAccount)
.setDescription("Coupon")
Not if you want to Transfer from your Platform
You omit the stripeAccount header then
Setting the platformAccount id in the stripeAccount RequestOption header and the merchantAccount id in the destination param.
Nope, you should never need to put your Platform Account's ID in the stripeAccount header, you only use that to make requests for your Connected Account.
Ahh, so, how should I do the call then?
I am not being able to find where we specify the secret API Key.
Makes sense. I am new in the project so I am just trying to understand how this is setup.
Please give me a few minutes to check this and confirm to you
Any clue to find it?
Ahh I have just found it
I found 2
Client key and Server key
Just to validate:
1 - where I should see those values in the Stripe Dashboard?
2 - Why there are 2 different keys?
3 - I have found this definition Stripe.apiKey = Config.getParameter("stripe.server.key"); . Is that the one doing the magic?
I'd take a look through here: https://stripe.com/docs/keys
I think it will answer those questions and help build your core understanding of how to authenticate against our APIs.
Seems like it, but it's your code that I can't see so I'm not entirely sure.
Good I will take a look at the documentation. It seems that with that sentece we set a variable in a Class of your library. And Probably that variable is used when building the request. Am I right?
I think so, but I can't see what you're looking at so I can't say that definitively. Does your code align with how we show you should initialize the library you're using:
https://stripe.com/docs/api/authentication
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I guess that setting the variable we are setting we don't need that.
And it is being done automatically by you
that is your code
So this is confirmed
Thanks!
How can I access to the Developer Dashboard to see the api keys?
is this one https://dashboard.stripe.com/? or another one?
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Ah sorry, I have just seen the tab
Fixed!
Last question
Based on what I was able to figure out with Business, the current bank account attached to Stripe platform account is a lockbox account (money only flow into the account, not out).
So, in case we need to do the transfer from a different Stripe platform account to the seller:
is this the correct way to do that?
.builder()
.setApiKey(secondPlatformAccountServerApiKey)
.setStripeAccount(merchantAccount)
.setIdempotencyKey(UUID.randomUUID().toString())
.build();
final TransferCreateParams transferCreateParams - TransferCreateParams.builder()
.setAmount(amountInCents)
.setCurrency(currency.getCurrencyCode())
.setDestination(merchantAccount)
.setDescription("Coupon")```
Setting:
- `secondPlatformAccountServerApiKey` key in the `apiKey` RequestOption (not the key of the original platform account server api key)
- `merchantAccount` id in the `stripeAccount` RequestOption
- `merchantAccount` id in the `destination` param
Are you Connected Accounts connected to both of your Platforms?
will that will be requirement to make that option work?
Yes, you can't arbitrarily transfer funds between Stripe Accounts, they have to be associated with each other.
Good! So, we should duplicate all the connections between Original Platform Account and Second Platform Account
Which you might not be able to do depending on how you have things set up.
Can you share the ID of one of your Connected Accounts?
I don't think I am allowed to do that for security/privacy purposes
๐ well, the only way to connect a Connected Account to multiple Platforms is via OAuth:
https://stripe.com/docs/connect/oauth-standard-accounts
https://stripe.com/docs/connect/oauth-express-accounts
(not sure which type of Connected Account you're using)
But that doesn't reliably connect the account to multiple platforms. If the Connected Account is controlled by another Platform, then that process will create a new Connected Account rather than linking the existing one.
How can I see the type of connected account?
It's done when you create the Connected Account.
You can't change it once the account has been created
I can see in the dashboard a Type field: Standard
at least for one of them
in our test environment
I found another one with Express Type
Yeah, we have both types
I mean the idea we are evaluating is to Connect that second platform account with the same sellers accounts.
You are saying that is not possible and that it will probably ends creating new seller accounts in the "connection" process?
I'm saying it depends, and I can't be more clear without looking at a specific account.
I would like to understand what is the actual dependency there
I need the details to mention to the business if this is an option for our problem or not
Probably another option is to connect another bank account to the Platform Stripe account
It depends on whether the Connected Account is controlled by a platform, no way for you to check or know that.
Platform Accounts can only have one bank account per currency.
How can I check if a Connected Account is controlled by a platform?
What happen if a Connected Account is controlled by a platform?
What happen if a Connected Account is NOT controlled by a platform?
You can't
A new Connected Account is silently created
The Connected Account is connected to the new platform
Ah. So we cannot connect multiple platform accounts with one Connected Account
You might be able to, but without being able to look at exactly how you're doing things to confirm that, it's safer to assume you can't.