Page MenuHomePhabricator

Enable South Africa through Dlocal
Closed, ResolvedPublic

Description

DoD:

  • Make sure that this country is set up but the new form should not be default for those countries.
  • When everything is setup, add a link to the forms in this task so Evelyn can start testing.

FrTech, the Creative teams are contemplating a deliberate campaign in South Africa in 2022. I have discussed this with our providers and find that Dlocal is equipped to give us an on shore donor experience when it comes to payments. This will yield better conversion results on cards. Furthermore, they can offer us local bank transfers which is material to this market. Cards is ~15% of the payment share in ZAR and bank transfer is 70%. Using Dlocal will give us better exposure for this campaign therefore. My hope is that since we are already using Dlocal API calls that adding South Africa will not be a large undertaking. Documentation is below:

https://docs.dlocal.com/api-documentation/payins-api-reference/payment-methods/south-africa

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@EMartin any time you see 'payins' in a link, that's referring to the new integration. If I go to the documentation for our current integration and click on 'Payment Methods Codes', I don't see anything listed for South Africa.

Could you please ask whether South Africa bank transfers are supported under Streamline, and if so what parameter we pass for x_bank? Also, are donor ID numbers needed for South Africa under Streamline, and are those passed with the x_cpf parameter?

@Ejegg. Dlocal can support South Africa on our API 1.0 for all payment methods in ZA.
They will respond shortly on the parameters and I'll pass that along once I have it.

From Dlocal: "Bank Transfers in South Africa are supported under Streamline, the parameter for x_bank is IO. Also are, donor ID. On the other side, are passed via x_cpf parameter." I'm asking them for where we can see this in their documentation and the info for cards as well.

Thanks @EMartin. I see in the documentation for their other integration that the ID number for ZA is the national identity card number: https://en.wikipedia.org/wiki/South_African_identity_card#Identity_Number

Maybe we should check with someone in South Africa to make sure that it is normal to ask for this number on online payment forms? I remember that with Mexico, D*Local asked us to collect a number that sounded really scammy to ask for.

So with the bank transfer and cards, we should be able to serve 85% of donors. Looks good!

Thanks Elliott. I'll try to find individuals who can give us a view on
that national identity number. Thanks for calling that out. It seems a
Dlocal norm.

Evelyn Martin (She/Her)
Sr. Manager Donation Processing | Wikimedia Foundation
1 Montgomery Street | San Francisco, CA 94104
emartin@wikimedia.org |

Wikimedia's Opensource Encyclopedia
https://www.youtube.com/watch?v=xQ4ba28-oGs

*Wikipedia is a non-profit website which provides free, open, reliable
knowledge to hundreds of millions of people around the world every single
day. *Have you considered supporting
Wikipedia? https://donate.wikimedia.org https://donate.wikimedia.org/**

DStrine triaged this task as Medium priority.Dec 8 2021, 5:01 PM

ZA ID: The ID in the ZA is mandatory for all our merchants processing in ZA, and since it was implemented Dlocal has not seen any impact on conversion rate, they have checked this internally and users in the regions are really used to it. I am trying to confirm this with actual people on the ground in South Africa, but Dlocal is requiring it and we can assess in external tests.

ZA ID: I am posting this in this task regarding the requirement for National ID. Change.org had some people on the ground in South Africa and as you will see, local folks believe requiring the ID is problematic. I will be addressing further with Dlocal as this is contrary to what they told us above. From Change.org: Hey Evelyn! Please find below comments about asking for National ID in South Africa and other African countries by Danai (Country Director for Change.org in South Africa):

National ID Number Request in South Africa.
-In South Africa your national IDs not something that you furnish when processing online payments.

  • With the high prevalence of credit card fraud a request for your ID number when making an online payment would definitely be viewed with much suspicion as this is out of the norm.

-For the purposes of chipping in for campaigns and becoming members of change.org it would be a red flag for people if their ID numbers were requested in order for them to make the payment.
-In addition to the above South Africa has a large diaspora and expatriate population on different permits who do not have ID numbers and an ID number request would automatically exclude them if it was part of the payments flow.
-I can confirm that across Southern African countries (Zimbabwe, Zambia, Malawi, Eswatini, Lesotho and Namibia) the sentiment is largely the same, your national ID is not generally requested as part of the online payment processing flow.
-The Right to Privacy and Personal Information
-South Africa has the most comprehensive personal information laws on the continent known as the Protection of Personal Information Act (POPI Act). The POPI Act is a new all-inclusive piece of legislation, a privacy law, that safeguards the integrity and sensitivity of private information.
-Given what the payments on our platform are for, legally and in terms of the POPI Act there would need to be a justifiable and verifiable reason why ID numbers are needed and also what the ID numbers are used for and how that data will be safeguarded.

Response from Dlocal re: national ID requirement below. We will have to assess impact in our external tests around requesting the ID:

From Dlocal:
Dear Evelyn, thanks for your email.

Let me divide the reasoning behind the mandatory ID request into two:
The ID is a requirement for dLocal entity in ZA to comply with AML and CFT obligations in the region. In case we have to report a transaction, we will need the ID to identify it. Attached you can find the FIC Act, section 29, which we attached previously.
dLocal requires the ID of the consumers to be able to expatriate the money collected in local currency and pay in USD outside of ZA.
This has nothing to do with Wikimedia, this is a legal and regulatory requirement from dLocal regarding its processing activity in South Africa. Currently, all dLocal clients that processing in the region are requesting the ID as a mandatory field and we have not seen that this has negatively impacted our clients in the region.

@EMartin looks like there's an ongoing conversation as to whether/not the mandatory ID field should be added to the payments form. We'd like to know if this has been resolved and the direction to follow, so we can begin work on the implementation.

Hi Damilare, as I noted above, it looks like we will have to implement the ID field as it is a regulatory requirement. Thanks for checking.

Change 753695 had a related patch set uploaded (by Damilare Adedoyin; author: Damilare Adedoyin):

[mediawiki/extensions/DonationInterface@master] Enable South Africa through Dlocal

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

Change 753701 had a related patch set uploaded (by Damilare Adedoyin; author: Damilare Adedoyin):

[wikimedia/fundraising/dev@master] WIP: Enable South Africa through Dlocal

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

@EMartin we are still waiting on setting up the sandbox with dlocal. Until that is set up this is blocked.

Ah. OK. I saw them respond so let me get on that as to what is outstanding!

Change 753695 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Enable South Africa through Dlocal

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

@EMartin this is ready for testing

Sorry Dstrine, this is the one that needs the tiny patches in other codebases. The PE/UY one is ready for testing.

Change 758972 had a related patch set uploaded (by Damilare Adedoyin; author: Damilare Adedoyin):

[wikimedia/fundraising/SmashPig@master] WIP: Enable South Africa ACH through Dlocal

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

Change 758972 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Add South Africa ACH for Dlocal

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

Error while testing South Africa Credit/Debit card

image.png (666×1 px, 94 KB)

Error while using Bank transfer:

image.png (760×1 px, 233 KB)

Change 761688 had a related patch set uploaded (by Damilare Adedoyin; author: Damilare Adedoyin):

[mediawiki/extensions/DonationInterface@master] Enable South Africa through Dlocal

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

@HNordeenWMF and @EMartin I see you commenting in google docs. I want to make sure you see this task. It is still in progress. Once this is done, dlocal will still not be default. We need something like a 1 hour test and a conversation before this is made default.

@DStrine @HNordeenWMF From a payments perspective, we have tested Cards and Bank Transfer locally with friends and family. We await the pre test on 3 May so we can set to default. @HNordeenWMF is there any possibility of doing a 1 hr test sooner to prove this out without creating too much work for folks?

I don't think we are done yet. I'll have to check with the team in standup tomorrow.

@EMartin and @HNordeenWMF we just have a few tiny things to wrap up on our end but this should not affect donations on production. You can schedule a 1 hour test when it is convenient for you. Once that is done and things look ok we can discuss making dlocal default.

Thanks for the update @DStrine ! Sounds good about the 1 hour test, do you think we'd be ready for that before the May 3rd test? Or should we plan to use that day.

You can test earlier if you want. I have made the task for making dlocal default when the time is right: T304627

David, UR and PE are currently default, correct? We also added these to
Dlocal and the case is closed so can I assume no further action is required
in those markets? We have yet to do a 1 hr test on those so wondering why
the difference in approach.

Evelyn Martin (She/Her)
Sr. Manager Donation Processing | Wikimedia Foundation
emartin@wikimedia.org |

Wikimedia Foundation https://wikimediafoundation.org/

*Imagine a world in which every single human being can freely share in the
sum of all knowledge. That's our commitment. Donate.
https://donate.wikimedia.org/*

PE and UY are ingenico at the moment. This is the task for those countries: T303207

Change 753701 had a related patch set uploaded (by Damilare Adedoyin; author: Wfan):

[wikimedia/fundraising/dev@master] Enable South Africa through Dlocal

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

Change 753701 merged by Wfan:

[wikimedia/fundraising/dev@master] Enable South Africa through Dlocal

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

We just tested the links. Did something change? We'll see if they will
test again but would be good to know what's different. The prior links
worked satisfactorily.

Evelyn Martin (She/Her)
Sr. Manager Donation Processing | Wikimedia Foundation
emartin@wikimedia.org |

Wikimedia Foundation https://wikimediafoundation.org/

*Imagine a world in which every single human being can freely share in the
sum of all knowledge. That's our commitment. Donate.
https://donate.wikimedia.org/*

@RKumar fyi. @Frtech, WMF We had tested the S.A. links with local parties last week and all went well. Is there something different included in these links?

Ah ok sorry never mind. This task was in a weird state. I thought it needed more work. It sounds like fr-tech doesn't need to do anything more. You don't need to test again if you did this last week. I'm going to resolve this and we'll wait for the 1 hour test on this.

Great, thanks!

@Rakhi Kumar <rkumar@wikimedia.org> No need to retest.

Evelyn Martin (She/Her)
Sr. Manager Donation Processing | Wikimedia Foundation
emartin@wikimedia.org |

Wikimedia Foundation https://wikimediafoundation.org/

*Imagine a world in which every single human being can freely share in the
sum of all knowledge. That's our commitment. Donate.
https://donate.wikimedia.org/*

Pcoombe subscribed.

Can we get this added to the form chooser so that it can be tested from banners please? Looks like it's in the settings already, just commented out: https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/DonationInterface/+/refs/heads/deployment/DonationInterfaceFormSettings.php#580

At the moment this fails with "unable to find a donation form matching your parameters" https://payments.wikimedia.org/index.php/Special:GatewayFormChooser?payment_method=bt&recurring=false&currency_code=ZAR&uselang=en&country=ZA&amount=50

Hey @Pcoombe we ran into some form chooser chaos that was making dlocal default before it was ready. We're still in the phase where we need to run a 1 hour test before we make dlocal default.

Usually you all are able to hard core a banner to test before we make it default. Are you block on that in some way?

No, the banner code is designed around using the form chooser. Even for pre-testing we use it. I'm starting to consider moving away from that given all the issues it causes, but that would be a larger project.

Can't you just set the selection_weight to 0?

@Ejegg is suggesting that fr-tech can turn it on as default exactly when you need it for the test and then turn it back off. We should talk this through in the Monday standup meeting.

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

[mediawiki/extensions/DonationInterface@master] Uncomment DLocal ZA form with weight 0

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

Change 778334 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Uncomment DLocal ZA form with weight 0

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

Yep @Pcoombe, uncommenting it with selection_weight 0 was all that was needed. That's deployed and tested on production. Cards still default to Ingenico but bt gives the Dlocal form since there's no bt under Ingenico. You should be able to get the DLocal card form by adding gateway=astropay (someday we'll update that codename!)

Thanks @Ejegg! Was already doing that with gateway=astropay for credit card, that's how I realised it was missing :) https://en.wikipedia.org/wiki/Wikipedia?banner=B2122_0119_enWW_dsk_p1_lg_template&country=ZA