#golan.shay

1 messages · Page 1 of 1 (latest)

shell knollBOT
iron anvil
#

Hi there,
Could you please share the related PaymentInntent Id?

lean sonnet
#

pi_3Llwo3ImMU37dR1u0ffaqWyC

iron anvil
#

thanks for sharing. Are you using direct charges?

lean sonnet
#

What are direct charging?

#

direct charges?

iron anvil
lean sonnet
#

I'm using checkout sessions

#

Is that wrong?

iron anvil
#

Is this your platform Id: acct_14uRqtImMU37dR1u ?

lean sonnet
#

yes

#

I create a checkout session and using the URL in the response to launch your webpage

iron anvil
#

OK, let me check something

lean sonnet
#

Is there a better way of doing that?

iron anvil
#

Actually there are two ways to do this. The first like you are doing actually.
The second is using transfer_data[amount]
You subtract your platform’s fees (including Stripe fees) from the charge amount, then pass the result of this calculation as the transfer_data[amount]
Here is more details about that:
https://stripe.com/docs/connect/destination-charges#transfer-amount:~:text=You subtract your platform’s fees from the charge amount%2C then pass the result of this calculation as the transfer_data[amount]

lean sonnet
#

In both ways I need to know in advance what are the Stripe fees, this doesn't make sense

iron anvil
#

What are you thinking about ?

lean sonnet
#

I was expecting Stripe to take the charges from the connect account, not for me to calculate that and add that to "my" charges

iron anvil
lean sonnet
#

And how do I create a URL to launch the payment page?

iron anvil
#

Same as you are doing with your platform account, by here your connected accounts need to do so

#

again if you think that direct charges is a valid option for you

#

meanwhile you need to keep destination charges

lean sonnet
#

PaymentIntentData: &stripe.CheckoutSessionPaymentIntentDataParams{
Params: stripe.Params{
StripeAccount: nil,
},
ApplicationFeeAmount: stripe.Int64(applicationFeesInPence),
CaptureMethod: nil,
Description: stripe.String(in.Reason),
Metadata: map[string]string{
"reason": in.Reason,
"reference": in.Reference,
},
OnBehalfOf: stripe.String(in.CustomersAccountId),
ReceiptEmail: stripe.String("plime-receipts@plime.co"),
StatementDescriptor: stripe.String(statementDescriptor),
StatementDescriptorSuffix: stripe.String(statementDescriptorSuffix),
TransferData: &stripe.CheckoutSessionPaymentIntentDataTransferDataParams{
Amount: nil,
Destination: stripe.String(in.CustomersAccountId),
},
TransferGroup: nil,
},

#

This is how I create the payment intent, what you're suggesting is to use the Connect account in here:
Params: stripe.Params{
StripeAccount: nil,
},
instead of here:
TransferData: &stripe.CheckoutSessionPaymentIntentDataTransferDataParams{
Amount: nil,
Destination: stripe.String(in.CustomersAccountId),
},
?

#

Or should I use the TransferData.Amount field?

covert lintel
#

Hi! I'm taking over this thread. Give me a few minutes to catchup.

#

You have two options when creating charges with connect:

  • Direct Charges, where the payment happens on the connected account. In this case the connected account will pays the Stripe fees https://stripe.com/docs/connect/direct-charges
  • Destination Charges, when the payment happens on the platform account. In this case the platform account pays the Stripe fee https://stripe.com/docs/connect/destination-charges
    I recommend you to read the two links I shared above to understand all the difference between the two approach, and pick the one that works best for your business