Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issuing refunds with negative balance + debit card is sub-optimal #5986

Open
aheckler opened this issue Apr 5, 2023 · 13 comments
Open

Issuing refunds with negative balance + debit card is sub-optimal #5986

aheckler opened this issue Apr 5, 2023 · 13 comments
Labels
category: core WC Payments core related issues, where it’s obvious. component: streamline refunds Issues related to Streamline refunds project component: transactions Issues related to Transactions focus: payments acceptance & processing needs triage Manually put issue into triage process. type: bug The issue is a confirmed bug.

Comments

@aheckler
Copy link
Member

aheckler commented Apr 5, 2023

Describe the bug

If a merchant uses a debit card to receive deposits with, and somehow their account balance becomes negative, WC Pay can mislead them into thinking refunds were successful, when in fact they will not be (until the balance becomes positive again through new sales).

To Reproduce

I'm not sure it's possible to reproduce this in test mode, but real merchants have run into this before, most recently detailed here: paJDYF-7oz-p2

A rough outline of how the situation is encountered:

  1. Be a WC Pay merchant.
  2. Use a debit card to receive your deposits.
  3. Make a few sales which are paid out. Now you have a $0 balance.
  4. Try to issue a refund or multiple refunds.
  5. Your balance goes negative.
  6. Your card won't be debited. We don't do that for debit cards, only bank accounts.
  7. If you don't make new sales, the refunds won't be issued to customers.
  8. However, WC Pay will act like the refunds worked:

Screenshot taken on 2023-04-05 at 18 26 45 UTC@2x

  1. Later on, the customers whom you "refunded" will dispute the charge, since their refund never actually arrived.

WC Pay should watch for refunds that come through with the status set to pending. This means the refund was not in fact sent yet, it just will be sent automatically in the future when the balance becomes positive again. However, as we've seen, this might not happen in time to prevent disputes for low volume merchants.

Screenshot taken on 2023-04-05 at 18 28 19 UTC@2x

@aheckler aheckler added type: bug The issue is a confirmed bug. needs triage Manually put issue into triage process. labels Apr 5, 2023
@aheckler
Copy link
Member Author

aheckler commented Apr 5, 2023

cc @jrodger since I spoke with you about this on the linked P2 thread above. Not sure which team would be best to look at this, but you will know better than me. :P Thanks!

@aheckler
Copy link
Member Author

aheckler commented Apr 5, 2023

Another wild idea: maybe we can somehow detect merchants who have added a debit card and warn them with an email or inbox notification thing? The debit card + negative balance situation is very tricky/dangerous for merchants with lower volume.

@csmcneill
Copy link
Contributor

Just confirming that this is a scenario that I have seen several times, though I cannot grab any specific examples.

@aheckler aheckler added the component: transactions Issues related to Transactions label May 3, 2023
@elizaan36
Copy link

So the refund is in the Pending state until the balance account becomes positive again. Will WCPay retry the refund immediately once the balance is positive?

@aheckler
Copy link
Member Author

Will WCPay retry the refund immediately once the balance is positive?

I believe so, yes, though I have never tested that specifically.

@elizaan36
Copy link

I think the pending refund status would be enough of an indication to the merchant, with additional context in the order note if possible.

Refund is pending until account balance is positive.

@kalessil kalessil added the component: streamline refunds Issues related to Streamline refunds project label Sep 12, 2023
@kalessil
Copy link
Contributor

@dmvrtx: as you deep into topic this week, can you please share insights on #5986 (comment)? Thanks!

@dmvrtx
Copy link
Contributor

dmvrtx commented Sep 13, 2023

So the refund is in the Pending state until the balance account becomes positive again. Will WCPay retry the refund immediately once the balance is positive?

It will be Stripe who will retry refund once account gets updated. However, if refund stays "pending" for a certain amount of time, Stripe will cancel it. I haven't checked yet how such event will be handled on WooPayments side.

@francoishvz
Copy link

7271643-zd-a8c

@zmaglica zmaglica added the category: core WC Payments core related issues, where it’s obvious. label Jan 31, 2024
@zmaglica
Copy link
Contributor

This issue impacts Refunds, so assigning to Pulsar (based on team responsibilities Pc2DNy-3z-p2) @kalessil . Assigning as part of Gamma Triage process PcreKM-yM-p2.

@CGA8C
Copy link

CGA8C commented Apr 30, 2024

Hey @haszari can we take another look at this one?

This came up in 7845102-Zen, and has caused some major confusion.

It's notable that this doesn't just affect Debit Card users: some EEA Banks don't allow Debits, or can turn them off, which was the case here.

@haszari
Copy link
Contributor

haszari commented Apr 30, 2024

@CGA8C – this is in payments acceptance focus area, so best folks to triage & prioritise are @mjdeacon / Gamma. Let me know if there's something specific I can do to assist.

@CGA8C
Copy link

CGA8C commented Apr 30, 2024

Thank you! I saw you touched this last, so I made an incorrect assumption that it was Helix related somehow 😬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: core WC Payments core related issues, where it’s obvious. component: streamline refunds Issues related to Streamline refunds project component: transactions Issues related to Transactions focus: payments acceptance & processing needs triage Manually put issue into triage process. type: bug The issue is a confirmed bug.
Projects
None yet
Development

No branches or pull requests

9 participants