#deondk-fees
1 messages ยท Page 1 of 1 (latest)
hi! It depends if you're using Destination or Direct Charges.
might be easiest if you share a specific payment pi_xxxx you are looking at.
pi_3KsOL62UeUUJr2Wi0WHbIBgY
so that's a Direct Charge where you take a fee of 220 pence on a 100 pounds payment.
You get 2.20.
The connected account gets 100 - 2.20 - <stripe fees> , which works out to 96.20.
https://stripe.com/docs/connect/direct-charges#flow-of-funds-with-fees
does that answer the question?
what do I need to change to make it a destination charge instead?
TransferData = new PaymentIntentTransferDataOptions
{
Destination = "{{CONNECTED_STRIPE_ACCOUNT_ID}}",
},
};
add this?
do you know why you want to use Destination charges?
doesn't seem related to what you're asking, so maybe if you could explain in more detail what the unexpected behaviour you're trying to avoid is from the scenario I described I can suggest the best option
well our agreement with our express account holders is we charge the a flat fee of 2.2%
and my understanding with express that all transaction fees should come off the platform account?
but yeah that is not inherent to using Express
it's inherent to using Destination charges
and transaction charge comes off our account
you can use Direct or Destination, either is possible(but you should use Destination for Express usually yes)
so there is no way with Direct charge to have the transaction cost come off our account?
on a destination charge can I still confirm=true when creating paymentintent?
yes, that's not related at all, so yes
ok cool. will then have to change to destination charge
thanks
is there a way to confirm on the API log that it was a destination charge?
Hello ๐
Taking over from karllekko here
I can check it for you if you want
I'd need the Payment Intent ID
NP! ๐
Amount = (long)payment.Amount * 100,
Currency = currency.CurrencyCode,
Description = payment.Description,
PaymentMethodId = paymentMethod.Id,
ApplicationFeeAmount = (long)totalApplicationFee,
TransferData = new PaymentIntentTransferDataOptions
{
Destination = subvendorMerchantId,
},
Confirm = true,
ReturnUrl = "https://www.lastmanstands.com/auth-load"
this is my PaymentIntentCreateOptions
getting "transfer data param cannot be set to your own account"
but definitely not my own account
You were using direct charges previously, yes?
So it is likely that their account ID is still set as Stripe-Account header
this:var requestOptions = new RequestOptions
{
StripeAccount = subvendorMerchantId,
ApiKey = apiKey
};
should I just remove StripeAccount?
or should that now be my platform account?
now its not getting the payment method...mmm
Im creating the payment method on the connected account before charging
I guess this isnt nescesary
anymore
yup you'd want it on the platform now
this is how Im creating the paymentmethod:
var options1 = new PaymentMethodCreateOptions
{
CustomerId = payment.StripeCustomerId,
PaymentMethodId = payment.StripeCardId
};
var requestOptions1 = new RequestOptions
{
ApiKey = apiKey
};
var service = new Stripe.PaymentMethodService();
var paymentMethod = service.Create(options1, requestOptions1);
but now getting an error:
In order to share PM you must pass connected account ID by using oAuth or the stripe account
do I need to put our account ID there as StripeAccount =
You'd not need StripeAccount header anywhere anymore. You had to use it before since you were creating charges for a connected account.
ok...
why am I getting this error:
In order to share PM you must pass connected account ID by using oAuth or the stripe account
do you have a request ID I can take a look at? should look like req_xxxx
You'd find it under account logs
req_RFhgMVSMoFewNw
This request is still using the Stripe-Account header, so it's trying to find this PM on the connected account
sorry I tried something there
thry this one:
sorry wait...let me do a new one
got the same error when removing the header
will send now
req_F7Zp74CF7bhQhx
Give me a few to look into it
think I got the issue
I think Initially I do create the PM on the platform account
so I should just be passing the PM ID and not create it again
Yup that sounds reasonable