Page MenuHomePhabricator

Donations appearing in Civi but not Adyen
Closed, ResolvedPublic

Description

Thus far we've only encountered one instance of this issue.

ZenDesk ticket: #1152753
Donor CID: 20525984
Donor Comment: "I’ve tried to donate from the Netherlands two times today but the payment was unsuccessful. Nevertheless I received your mail thanking me for the donation."

If you look in CIVI for this donor you will see two successful donations on 08/17/2022 (screenshot below). However, we are unable to locate either transaction in Adyen via the donor email, name, the invoice reference numbers, or transaction id's. Therefore we are unable to refund what appears an unintended duplicate transaction.

The first donation details: Transaction ID: ADYEN VWRXMD994P972Q42 & Invoice Reference 127398545.1
The second donation details: Transaction ID: ADYEN JWXBFNKPHD33FKG2 & Invoice Reference 127399863.1

Do we know why we're unable to locate this at the PSP? If we can locate it appears that we need to refund the donor for a possible duplicate/second donation.

Screen Shot 2022-08-17 at 4.35.10 PM.png (151×1 px, 30 KB)

Thanks!

Event Timeline

Have come across another instance.

ZenDesk ticket: 1152875
Donor CID: 6-8-2-7-0-2-8
Donor comment: "Thank you for your thanks, but this one is not yet appropriate. Technically, things are not going well for you and/or my bank. As far as I can see, the payment was not successful, I kept getting error messages on multiple attempts, so I haven't donated yet."

Donor received a TY letter and has a donation in civi from August 17th, 2022 of EUR 31.20, but we cannot locate the transaction in Adyen by email/name/or transaction id and the donor is saying the payment wasn't successful. In Civi the transaction id # is noted as 127402708.1 .

Are these transactions actually successful? Would it be possible to run a report to find out how many of these may exist?

Could be coincidence, but these are both iDEAL

I looked into the two transactions provided in the description, and I can see that Adyen sent us an OFFER_CLOSED notification in both cases 30-40 minutes after we added the donation to the queue to be saved into CiviCRM. I found some docs on this notification type here

If the transaction is not authorised within 30 minutes, the offer will close. Optionally, you can be informed of this through an OFFER_CLOSED notification.

I guess we need to see if there's a way to sync these types of transactions once this happens and see if there's a way to see expired/closed transactions in the Adyen console.

Hi @jgleeson
Can I confirm I am understanding this one correctly: These donations are not successful, yet they are appearing in Civi and TY emails are being sent?
Can we find out the potential scale of this? Is there a way to know how many donors are affected?

Bigger questions are: How does that affect reconciliation and our tracking @EMartin @TSkaff

Hi @krobinson

Yes, you are right, the donations are not being completed but we're still sending the TY email and recording them as successful in CiviCRM @_@

I'm looking into a fix at the moment. It's a tricky one as Adyen doesn't tell us until 30-40 minutes after that the transaction was unsuccessful.

Will keep you updated!

Initial indications suggest that there have been ~5700 affected donations so far in 2022. However, I'm digging into these to understand more before confimring.

Eek. Were those all iDEAL as well? Should we consider this a blocker to NL banners, which are due to start on Tuesday?

Thanks for the update @jgleeson

When you mention those 5.7k donors, are they all NL and iDEAL or is this a general Civi-Adyen thing? Just to understand how it may affect possible 6C donations as email sends launch in early Sept.

Thanks!

I looked into the two transactions provided in the description, and I can see that Adyen sent us an OFFER_CLOSED notification in both cases 30-40 minutes after we added the donation to the queue to be saved into CiviCRM. I found some docs on this notification type here

If the transaction is not authorised within 30 minutes, the offer will close. Optionally, you can be informed of this through an OFFER_CLOSED notification.

I guess we need to see if there's a way to sync these types of transactions once this happens and see if there's a way to see expired/closed transactions in the Adyen console.

Just some more history with this, we had an older task where we decided to ignore the OFFER_CLOSED ipns https://phabricator.wikimedia.org/T292475

XenoRyet triaged this task as Unbreak Now! priority.Aug 29 2022, 5:21 PM

launch of NL Banners has been delayed 1 day to allow time for this! Now scheduled for August 31 at 16 UTC

Change 827593 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@master] Adyen: log raw details response

https://gerrit.wikimedia.org/r/827593

Change 827593 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Adyen: log raw details response

https://gerrit.wikimedia.org/r/827593

Change 827595 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@deployment] Adyen: log raw details response

https://gerrit.wikimedia.org/r/827595

Change 827595 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@deployment] Adyen: log raw details response

https://gerrit.wikimedia.org/r/827595

You can see these in the Adyen console by searching under Transactions -> Offers. Not sure why they don't share a search with the main transactions.

128037526.1 is an example where they tried to donate twice, one was successful and one wasn't

Change 827606 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@master] Don't push iDEAL donations from the front end

https://gerrit.wikimedia.org/r/827606

Change 827607 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/SmashPig@master] Fix mapping of 'Received' iDEAL status

https://gerrit.wikimedia.org/r/827607

Change 827607 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Fix mapping of 'Received' iDEAL status

https://gerrit.wikimedia.org/r/827607

We found that we were incorrectly mapping one of the possible statuses that iDEAL donations can return: "Received" should be treated as "Pending" but we were treating it as "Completed". Unfortunately we weren't logging the raw status codes that we got back till today, so we're not sure that will account for all of the erroneously-recorded donations.

We have deployed code to treat that status code correctly.

You can see these in the Adyen console by searching under Transactions -> Offers. Not sure why they don't share a search with the main transactions.

Nice find!

It looks like Adyen marks these transactions as OfferCancelled in the transactions report Christine found. On our side, we see them as OFFER_CLOSED.

A quick search across today's transactions shows 16 transactions with the status of OfferCancelled. 13 iDeal, and 3 visa. This is the same count that I see in the logs.

Initial indications suggest that there have been ~5700 affected donations so far in 2022. However, I'm digging into these to understand more before confirming.

Now that we've got a way to confirm the findings, I figured we could work out how many have been affected and use the transaction report to export a list of transactions which never resulted in a successful payment and validate the above figures (which are likely wrong due to the visa entries being missed by me) however it looks like the export facility in Adyen is limited to 1000 records! The report also doesn't seem to have a total or count on the web UI so I'll see if I can figure it out another way.

Once we have the complete list, we could write a script to "fix" CiviCRM and remove any erroneously recorded donations, contacts and potentially follow up with further emails if needed.

Hi Jack, Christine and Elliott, thanks for all the work on this!
are we ok to proceed with Netherlands banners tomorrow at 16 UTC?

Hi Jack, Christine and Elliott, thanks for all the work on this!
are we ok to proceed with Netherlands banners tomorrow at 16 UTC?

Hi Haley

It looks like the fix Elliott rolled out last night has worked so we should now no longer be recording expired iDEAL donations as successful in CiviCRM. Based on that, I would say you're good to proceed!

Circling back on the numbers of affected donations. I tried running the report month-by-month, which worked ok up until this month. For August, the exported result shows 1000 records, but we know based on our logs that this isn't right. It looks like Adyen is truncating the results at their end which isn't helpful in this case.

Here's the breakdown:

2022 iDeal OfferCancelled Transactions:
MonthTotal
Jan:12
Feb:19
Mar:15
April:21
May:8
June:12
July:675
August:1000 (looks like this is a limit so likely more)
jgleeson subscribed.

For the record: this is fixed, data going forward is good, but the historical data still needs cleanup which is tracked in T316780

Change 827606 abandoned by Ejegg:

[mediawiki/extensions/DonationInterface@master] Don't push iDEAL donations from the front end

Reason:

https://gerrit.wikimedia.org/r/827606