#Dev-Ahmed-Hasnain - hi
1 messages · Page 1 of 1 (latest)
Hi there!
What is your question?
@proud shuttle Let's use this thread to chat
I am making a website for my client which is an e commerce store. There are 3 roles in the site, customer(credit card holder), store owner (connected account holder), and platform (which is providing the platform to store owners and will get application fee as per stripe connect rules.) Now i want to discuss refund case. When i charge customer, a charge is deducted from the card move in the platform account then transfers from platform account to store owner account, then an application fee is transferred to platform account and so on. And when i make a refund the payment is reversed correctly. But when is make a partial refund e.g 2 items of qan order out of 4. Then the platform fee is transferred to store owner account and there is no way in stripe docs to refund that fee in customer account. BTW i am using stripe connect and for payment i am using destination charge.
The link of which is given below. I repeat my question. Is there a way to refund platform fee from paltform to customer account and not to store owner account or is there a way to refund platform fee to customer account.
i am using stripe connect for my clients e commerce website.
Is there a way to refund platform fee from paltform
You mean the application fee? This is covered in the documentation here: https://stripe.com/docs/connect/destination-charges#refunding-app-fee
Note that as mentioned in the link I shared:
If the refund results in the entire charge being refunded, the entire application fee is refunded as well. Otherwise, a proportional amount of the application fee is refunded.
yeah, but the problem is not the refund. problem is that when i make a refund as guided in the link you shared , the whole charge is refunded including platform fee to the customer, but when i make a partiall refund the partiall amount is refunded and partial platform fee also but the platform fee is not refunded to the customer from which the charge was made but to the store owner connected account because stripe says the platform fee will be refunded to the account from which it is originated and that is the connect account store owner account. but i dont want to refund to him but to customer.
why the platform fee is refundinig to customer in case of full refunds and not in partiall refund. same api is behaving differently in these cases?
Can you share a request ID (req_xxx) where you created a partial refund and saw this issue? Here's how you can find it: https://support.stripe.com/questions/finding-the-id-for-an-api-request
yeah i ahve tested this many times.
req_WS3qjEzNyR6Qce
this is the id of a partial refund
you can see that , this is a partial refund and 25$ is the platform fee, the proportional platform fee is refunded which is 6.23 something but to the connected store owner account , not to customer.
Thanks! So for the ID you shared I see:
- The PaymentIntent was for $191.04
- The refund was for $51.69
- The customer got back $51.69
You do not agree with his?
no. customer should get the platform fee back too which is refunded but is stuck in the store owner account. why should he get the platform fee and not the customer. the customer should get 51.69 + 6.76 $
becasue in case of full refund the customer is getting actual price of his order + platfrom fee back. but not in partial refund case
the customer should get 51.69 + 6.76 $
I think there's a miss understanding here, that's not how it works.
- If you create a PaymentIntent for $100 with
application_fee_amount: 10, then the customer will pay $100 in total. Later if you do a full refund, then the customer will get back $100. If you userefund_application_fee, it just means that the $10 will move from the platform to the connected account. - If you create a PaymentIntent for $100 with
application_fee_amount: 10, then the customer will pay $100 in total. Later if you do a partial refund of $50, then the customer will get back $50. If you userefund_application_fee, it just means that the $5 (half the fee) will move from the platform to the connected account.
yeah right but now i am left with 45 $ right ?
In the first example I shared:
- if you don't use
refund_application_fee, then the platform keeps $10 - if you use
refund_application_fee, then the platform keeps $0
And in both case the amount is actually a little lower, because the platfortm has to pay the Stripe fees
ok. so you said in the example , in partiall refund 50$ will be transfered to customer and 5$ to connect account.
what if i want to refund the platform fee to customer and not to connected account . as customer is the one who paid the platform fee.
If you want to refund the customer $50, create a refund for $50. If you want to refund the customer $55, create a refund for $55. The refund_application_fee will only have an impact on the platform and on the connected account, not on the customer.
Ok but if i make a refund of 50 dollar , 5 dollar will be platform fee , and then i again make a refund of 50 dollar 5 dollar will be platform fee. thats total of 110 $ . but the payment intent was 100$ so who will pay the 10 $ ?
In this example do you use refund_application_fee?
in the refund api i have used the parameter application_fee_refund => true , which is same as the application fee refund api.
- The customer pays $100. Your paltform has $10 and the connected account has $90.
- you make a $50 refund. The customer gets back $50, the platform has $5 left, and the connected account has $45 left
- you make another $50 refund. The customer gets back $50, the platform has $0 left, and the connected account has $0 left.
Thank you soma. infact i am very thankfull to you you have been a great help to me.