Page MenuHomePhabricator

Ingenico status 190s question
Closed, DuplicatePublic

Description

Some Ingenico transactions are approved by the donor’s bank, get past our fraud filters, but are then rejected by the donor’s bank. They reach Civi and look like real donations, even though they never settle (do we really get the funds?).

I found them by searching for Status 190 transactions, and two recent examples are: 1. Ingenico Order ID 4010135034 from cid=51163817, and 2. Ingenico 4010140171 from cid=50378878. We have seen 35 this year, all from JCB cards in Japan, and a total of 11 in 2019-20, but 120 in 2018, from a mix of card types.

This is not a huge volume of transactions, so I will leave the prioritization to the wider group of stakeholders, but I wanted to flag this as it looks like a type of not-real donations in Civi. I can put the spreadsheet of transactions on the server if it would be helpful. {T202783} seems related to how the recurring donation flow handles these, but the older ones I have spot-checked included one-time donations as well.

Event Timeline

cid=51167110 has two new ones:

Screen Shot 2021-05-26 at 7.57.52 AM.png (216×1 px, 79 KB)

I am investigating with Ingenico as we seem to have a number of these since Jan:

image.png (635×1 px, 257 KB)

Ingenico advises:

Every rejected settlement had an incorrect soft descriptor (in another language) that caused the acquirer to reject the settlements.
Image_2021-05-26_12-59-58.png

However, the very next transaction processed for the customer had the correct descriptor and the transaction processed successfully.
Image_2021-05-26_13-04-35.png

I looked at other examples and see the Japanese descriptor is tied to these rejects as Ingenico is saying

image.png (488×1 px, 79 KB)

I am still not clear how a Japanese descriptor in Japan is a problem so making further inquiries!
When sending over descriptors, even invalid characters could cause an acquirer to reject the payment, thinking it's fraudulen

It seems In this case, it doesn't appear that JCB is able to interpret these descriptor characters. Every transaction with these characters was refused by the acquirer/JCB.

We didn't get a chance to include this in the current sprint. But if these are not legit transactions, we can make sure they don't get to civi. It's probably still worth a few minutes of time from an engineer to be sure what's going on here.

Thanks Evelyn and David.

if these are not legit transactions, we can make sure they don't get to civi.

4010153196 is another one from today, which looks very suspect, but I think plenty of these may be legit,. The question of legitimacy seems separate from why they are reaching Civi and why the other parties are tripping over the descriptors.

Hi, did you see my note above? These are legit transactions but being rejected by the issuer due to the descriptor characters.

I did, this one in particular looks like fraud, though, so maybe the issue affects legit and fraud?

Since we are sending the descriptor, I believe it would on any transaction.

Sorry our definitions of legit might be off. Civi should only hold records of completed donations. If these are not settling completely then we don't get the money and they would throw off our totals and reconciliation.

Now the question is why are they failing. Thanks for following up with the psp. Fr-tech will try to get to this soon. Maybe we can uncover something on our end.

Makes sense David. Thanks for clarifying "legit". A legitimate concern!

Just as a reconciliation headsup, some of the fraud getting through to Civi are coming from people testing non-trivial amounts:

currencyamtdatetransactionrough USD
JPY52000.002021-05-31 19:01:53000000657040101777970000100001$475.24
JPY5200.002021-05-29 03:32:57000000657040101607900000100001$47.52
JPY5200.002021-05-29 03:30:52000000657040101607420000100001
JPY31200.002021-05-31 11:55:22000000657040101775270000100001$285.15
JPY31200.002021-05-31 11:53:47000000657040101775250000100001
JPY31200.002021-05-31 11:05:26000000657040101774770000100001
JPY31200.002021-05-31 11:04:35000000657040101774760000100001
JPY10400.002021-05-31 19:01:05000000657040101777960000100001$95.05
JPY10400.002021-05-27 06:40:56000000657040101531960000100001

The CIDs associated with these recent transactions include cid=51192645, cid=51192553, cid=51170085, and cid=51179870. They overlap with cards and email addresses from a known fraud victim, cid=50631006.

Some more:

JPY335.002021-06-05 07:29:12000000657040102399030000100001
JPY335.002021-06-05 07:27:55000000657040102398540000100001
JPY3120.002021-06-04 15:13:11000000657040102310520000100001
JPY10400.002021-06-05 19:59:35000000657040102477040000100001
JPY10400.002021-06-04 19:30:13000000657040102338200000100001
JPY10400.002021-06-04 15:14:28000000657040102310530000100001

From sprint priorities:
Evelyn is working with Ingenico to determine why some card descriptor errors cause bank rejections to reach Civi. The total number of these not-real donations in Civi is not giant, but some of the fraudulent rejections are for large $ amounts - could we make a script to delete these from Civi once the problem is solved?

update: fr-tech still might not have much to do here but we're available to be in communications/emails about this. we could devote an hour of looking in the logs but we might not have much to help with here.

Per @Ejegg the donors will get to the TY page but they won't be debited so we probably won't get a lot of reports from donors.

Thank you! Knowing the donors will see the TY page should reduce Zendesk traffic about this.

Hi, I am making a note here re: Ingenico's findings on this matter. It appears JCB is rejecting Japanese descriptors, when it went through in English, they do not reject it:

Every rejected settlement had an incorrect soft descriptor (in another language) that caused the acquirer to reject the settlements.
Image_2021-05-26_12-59-58.png

However, the very next transaction processed for the customer had the correct descriptor and the transaction processed successfully.
Image_2021-05-26_13-04-35.png

When sending over descriptors, even invalid characters could cause an acquirer to reject the payment, thinking it's fraudulent.

So in ja.json, we have now changed the description line for both one-time and monthly donations to 'donate@wikimedia.org'. Hopefully this will fix the problem for the Japan campaign.

We still have some non-latin characters in our descriptor in other languages. Do we need to clear those out too or is this just a problem for Japan / JCB?

Thank you @Ejegg I checked with Evelyn and we think it would be good to clear the others out as well. The status 190s we saw in 2018 did include other currencies and card types. If I can spin that off into a separate Task, please let me know.

@MBeat33 yeah another task for that part would be good

Hi FrTech,

As of today we are still seeing the descriptor in Japanese and thus more 190 rejections of settlements from JCB. Example in this screen shot:

image.png (436×935 px, 37 KB)

Hi @EMartin it looks like that's the zh-hans language rather than Japanese. We're fixing that one along with the rest of the non-latin character sets as T285499.