#niraj-p_docs
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/1434865223084408873
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Could you confirm:
Does Stripe provide any API or feature to reverse a transaction (charge) without refunding the customer?
If not, what is the best practice for internally balancing or offsetting such transactions?
Can we simulate this by creating balance adjustments or negative transactions in the platform account?
Which thing i want to achieve via reverse transaction.
Customer completes Checkout → payment is confirmed successfully (payment_intent.succeeded event).
After confirmation, my backend checks additional business logic or capacity conditions.
If those conditions fail (for example, seat not available, or custom validation failed), I want to reverse the transaction internally without refunding the customer and without losing Stripe’s processing fees.
👋 Hi there! Let me take a look
Hi
I'm not sure what this would look like
Are these charges being made on a connected account?
You want to move money, without moving money? 😄
Yes, these charges are being made on connected accounts through Stripe Connect.
In our setup, customers make payments via Checkout Sessions, and those payments are created directly on the connected accounts (our customer’s accounts).
After the payment is confirmed, our system performs some additional checks (for example, seat availability or validation rules).
If those conditions fail, we want to reverse the transaction meaning bring the funds back from the connected account to the platform — without refunding the customer and without losing Stripe processing fees.
👋 taking over for my colleague. Let me catch up.
why not do a manual capture after you verify all the checks?
Yes i have try with manual capture but in manual capture facing payment method limitations
https://docs.stripe.com/payments/place-a-hold-on-a-payment-method
such as what?
Only some payment methods support separate authorisation and capture. Some payment methods that support this include cards, Affirm, Afterpay, Cash App Pay, Klarna, and PayPal. Some payment methods that don’t support this include ACH and iDEAL.
is this a recurring payment or a one-off?
Both
Sure
we do have a private feature https://docs.stripe.com/payments/checkout/dynamically-update-line-items
that really suits your use-case:
Check inventory: Run inventory checks and holds when customers attempt to change item quantities.
Thanks @tardy valve for this but my requirement is after confirm payment i want check my business logic.
So can you please stripe provide any reverse transaction functionality.
I'm not sure why you want to take a payment from an end customer when you can't provision their service/product
That’s a valid point. In our case, payment is required to secure a spot, but final confirmation depends on availability checks that happen right after payment.
We take the payment first to prevent duplicate or fraudulent bookings.
If the checks fail, we want a way to reverse the charge without refunding and losing processing fees.
We take the payment first to prevent duplicate or fraudulent bookings.
you can still do that without getting the payment first
If the checks fail, we want a way to reverse the charge without refunding and losing processing fees.
you will lose the processing fees unless you want the merchant (the connected account) to pay that from their own balance
depending on which requirements you meet
No this things not work for me because this creates a Transfer on the connected account and a Payment on the platform account.
What type or charges are you using?
We’re using destination charges created automatically through Checkout Sessions on connected accounts.
The payments are processed for the connected account.
Then the above approaches that my colleague described should work you. Is there some aspect of these that you think wouldn't work for your use case?