bisq-network / growth

Bisq exchange growth experiments
https://bisq.wiki/Growth_team
25 stars 11 forks source link

Add MercadoPago payment method #278

Open rodvar opened 1 year ago

rodvar commented 1 year ago

Payment methods are evaluated very carefully before being added to Bisq. Poorly integrating a payment method, or integrating a payment method that's not a good fit for Bisq's trading protocol, can be costly mistakes for Bisq's users and dispute resolution mechanisms.

As a result, we request that you add responses to the following questions so that we can better consider your suggestion.

Please answer to the best of your ability. The more thorough you can be, the more you'll help us out, and the quicker your suggestion can be evaluated and implemented.

Why

Why would Bisq benefit from adding this payment method? Is is popular in a particular region? More convenient? More safe? Extremely popular in Argentina, a country that has a strong bitcoin community to defend from the staggering 100+% annual inflation of its currency.

Region

In which areas of the world can this payment method be used? Argentina and surroundings.

Currencies

What currencies is this payment method for? ARS

Chargeback risk

How easy is it to cancel a payment once it's made? This is the most important characteristic of a payment method.

fairly difficult

Size of user base

Do you know how many people use this payment method? 5.5M in 2022 - https://www.statista.com/statistics/1115038/mercado-pago/#:~:text=Mercado%20Pago%20number%20of%20payment%20transactions%202015%2D2022&text=In%202022%2C%20approximately%205.5%20billion,transactions%20registered%20a%20year%20earlier.

Data requirements

What information must a user provide to a counterparty to accept a payment?

Mercadopago id (email address) or CVU (a virtual argentina CBU unique banking account id)

Verification

How can payments be verified? Examples: TLSNotary is typically used for electronic payments, and receipt scans are typically used for money orders.

TLSNotary

Duration

How long do payments take? Please provide a range, as the advertised best-case scenario rarely accounts for edge cases. seconds

Fees

Does it cost anything to make a transfer using this payment method? If so, how much?

No

Fraud risk

How easy or difficult is fraud with this payment method?

fairly difficult

Payment amounts

What is the minimum or maximum amount you can send with this payment method?

refer to https://www.mercadopago.com.ar/ayuda/_620

Payment description

Can a note be added when sending payment with this payment method (would be useful to include the Bisq trade ID)?

it can

pazza83 commented 1 year ago

Hi @rodvar thanks for posting this.

I would really like to see payment methods added for people in Argentina to use.

I think first though Bisq needs to fix the issue to enable BTC/ARS prices to be show at blue dollar rates: https://github.com/bisq-network/bisq/issues/6601

Until then even adding this payment method will not see uptake.

Bisq 2 is being developed which should help out a lot as buyers and sellers in Argentina can make offer at the blue dollar rate rather than the official rate. They can also specify what payment methods they accept.

pazza83 commented 1 year ago

@rodvar if you would like to implement both the BTC/ARS price and the addition of MercadoPago as payment method in Bisq it would be something that you would be compensated for.

It it is something you are able and interested in doing let me know and I will provide you with any help I can.

rodvar commented 1 year ago

Hi @pazza83 and thanks so much for your responses which put me into the broader context of what's been discussed regarding the topic.

I'll guess what we need to do first is make Bisq capable of using the Argentina free market dollar price ("blue"), same goes for other countries like Lebanon. I would start with this and then move into adding Mercadopago.

I would love to contribute to the project and I could from a skills perspective, the thing is that right now I don't have much time available unfortunately - is there a chance that you could bring me up to speed so that I can use my limited time efficiently? This means tips on:

if there is a video somewhere or any resource that would help please point it out. Cheers!

pazza83 commented 1 year ago

Hi @rodvar

I'll guess what we need to do first is make Bisq capable of using the Argentina free market dollar price ("blue"), same goes for other countries like Lebanon. I would start with this and then move into adding Mercadopago.

Yes, that is exactly what is needed.

I am not one of the devs but will see if I can get one to post here for more info of what would be needed. Many thanks

HenrikJannsen commented 1 year ago

@rodvar I am myself not familiar with the price node code but i think it should not be too hard to figure out whats needed to add support for un-official rates.

Here is the repo: https://github.com/bisq-network/bisq-pricenode

I guess a option is to add custom providers at https://github.com/bisq-network/bisq-pricenode/tree/main/src/main/java/bisq/price/spot/providers and filter the currency at the default providers. If there are be multiple providers for blue rates would be better to reduce risks and trust in the provider.

If there is a relative stable relationship of official rate and blue rate we also could apply that ratio to adjust the rates we get from the providers. But I assume that will not be a stable ratio.

rodvar commented 1 year ago

Cool, Thanks @pazza83 and @HenrikJannsen - this is really helpful. When I get some time to have a first glance I'll reach out if I have any questions.

Cheers!

rodvar commented 1 year ago

Hi @pazza83, I've just set up my pricenode dev environment and I'm ready to go. Gonna start working on this in the following days/weeks, may I please have it assigned? And maybe this one too https://github.com/bisq-network/bisq/issues/6601 ? Excited to help! cheers!

pazza83 commented 1 year ago

That is great news :) Many thanks for doing this. If you have any questions just let me know

rodvar commented 1 year ago

https://github.com/bisq-network/growth/issues/278#issuecomment-1533121889

@HenrikJannsen Hi Henrik, hope you are doing well man. I've got my first implementation ready to test but with the latest updates on the repo it's not building for me anymore and its driving me crazy haha giving me a guava conflict dependency error (see below), any hints?

I'm using java 11.0.14.1 % sdk list java | grep jbr
JetBrains | | 17.0.7 | jbr | installed | 17.0.7-jbr
| >>> | 11.0.14.1 | jbr | installed | 11.0.14.1-jbr

HenrikJannsen commented 1 year ago

@jmacxx I tried to look into the Pricenode project but I get the same version conflict as @rodvar mentioned. You did some recent changes, could you run the price node still with the updated Bisq submodule?

To update the submodule one need to run:

git submodule update --remote

There is an unmerged PR open as well as tests are broken in the main branch.

I changed locally the Bisq guava version to 31.1-jre and then it worked. But would leave that to @alvasw whats the best way to deal with the version conflict (eg. exclude guava from the xchange lib.

ghost commented 1 year ago

Not sure when the transitive dependency got introduced. It did build last time but not anymore with the updated submodules. Hopefully @alvasw can help.

rodvar commented 1 year ago

Thanks @HenrikJannsen , I did try git submodule update --remote already and just tried again but doesn't seem to do anything. I guess for now I'll just change the guava version locally to 31.1-jre as you mentioned, I'll try that later today thanks! @jmacxx thanks, @alvasw any clues? cheers!

rodvar commented 1 year ago

thanks for the help guys , I've just submitted my first PR! Looking forward to your comments :)

https://github.com/bisq-network/bisq-pricenode/pull/15

@pazza83 @jmacxx @HenrikJannsen

pazza83 commented 1 year ago

Hi @rodvar

Thanks for your work on the ARS price feed.

I would like to get started on adding MercadoPago as a payment method for Argentinean Bisq users.

Data requirements

What information must a user provide to a counterparty to accept a payment?

Mercadopago id (email address) or CVU (a virtual argentina CBU unique banking account id)

I took a look at the information for sending and receiving payment using MercadoPago found on: https://www.mercadopago.com.ar/amigos

It appears you need to add a contact to be able to make payment to them.

When you add a contact what information is needed?

Can it be any of the above a user has associated with their account?

Also how would you know you have the correct person. Say Juan Gomez did a trade to buy bitcoin from a Maria Garcia would Juan need to know Maria's email, CVU or phone number she had linked to her Mercado Pago account?

When Maria receives the payment from Juan would it show as coming from someone named Juan Gomez?

Payment amounts

What is the minimum or maximum amount you can send with this payment method?

refer to https://www.mercadopago.com.ar/ayuda/_620

With regards payment limits do you know if multiple payments can be send.

Say someone agreed to buy 0.05 BTC about 985,500 ARS could this be sent in two payments if it exceeded the individual limit?

rodvar commented 1 year ago

@pazza83 so excited to receive your message. Let me clear your doubts one by one since I'm a MercadoPago user and I also worked for MercadoPago in its early stages back in 2009.

  1. Do you need to add a contact to transfer money? No, you just need ONE of the following: EMAIL, FULL NAME, PHONE OR CVU key (a string of 4 random words separated by "." ; e.g.: BANCO.CASA.MONEDA.MP
  2. Also how would you know you have the correct person? When you enter say the CVU (which I believe is the preferred way), if that CVU has an associated Mercadopago account, it shows you the name of the account associated with that CVU. This is how you can check if you are the right person.
  3. When Maria receives the payment from Juan would it show as coming from someone named Juan Gomez? -> Correct, it shows the first and last name of the Mercadopago account that sent you the money
  4. With regards to payment limits do you know if multiple payments can be sent. ? Yes, multiple payments can be sent but that user would need to use a different Mercadopago account as the limit is DAILY. However, there are NO LIMITS for transfer between Mercadopago accounts. If both users trading have Mercadopago accounts (and not just using Mercadopago to connect to a traditional bank) -> then there is no limit :)

I hope this helps. I am very keen on starting this ASAP but haven't found some time yet. It would really help me if you can connect me with somebody who has experience adding payment methods to recommend to me which areas of the code to look for, things to consider, etc.

Cheers!!! Rodrigo

pazza83 commented 1 year ago

That is great. I will make a proposal now for the payment method to be added.

Great to hear that you are keen to add the payment method yourself. @jmacxx has experience adding payment methods. You will be able to reach out to him.

rodvar commented 1 year ago

Excellent guys, this will not only help Bisq's growth but more importantly help a super-depressed economy

pazza83 commented 1 year ago

Mercado Pago (Argentina) - Proposed National Currency Payment Method

I am proposing that Mercado Pago to be added as a national currency payment method.


Name of payment method: Mercado Pago (Argentina)

NB: Mercado Pago is available in multiple countries. Therefore, I am recommending adding this one as Mercado Pago (Argentina) so if it is successful more countries can be added. Currently, Mercado Pago only allows payments in the local currency. That is, the account created in Argentina only accepts payments in Argentinean Pesos (ARS) and from clients that have an account in the same country. Therefore, it does not make sense to add Mercado Pago as a multiple currency account.

List of Mercado Pago sites:

Required fields (eg)

Maximum trade duration: 24 hours

Signing required: No

Regions accepted: Argentina

Currencies accepted: ARS

Bisq Limits: 0.25 BTC

Any relevant information for mediators / arbitrators: None

Any relevant information for devs: No

Any relevant information for users: No

Screenshot of expected GUI: TBC

pazza83 commented 1 year ago

Information required for Bisq software strings:

Here is the information for the strings.

Special info about any of the inputs required for creating the payment account:

Mercado Pago (Argentina) is a payment app that allows users to send money to other Mercado Pago accounts instantly and for free in ARS.

When setting up your Mercado Pago account in Bisq please make sure to include your full name and phone number, email or CVU that matches your Mercado Pago account. This will ensure that when you send funds they show from the correct account and when you receive funds they will be credited to your account.

Special items to be aware about when sending payments (for BTC Buyers):

Please send payment only to the user details provided by the BTC Seller in their Bisq account. Please leave the payment description blank.

Special items to be aware about when receiving payments (for BTC Sellers):

BTC Sellers should expect to receive payment from the name shown in the BTC Buyer's Bisq account.

ghost commented 1 year ago

It can be implemented in an extensible manner by making it a country based payment method. The list of accepted countries could be just "AR" if you want to be conservative. Or it could be expanded to add "BR", "CL", "CO", "MX", "PE", "UY" as you documented above. User selects the country when setting up the account, the currency would be set to that country, and that account can only trade with other accounts that have the same country.

image

image

image

rodvar commented 1 year ago

I think we can now close this one @pazza83 :D :D Unless we wanna wait for the pre-release to go release Cheers!

pazza83 commented 12 months ago

Hi @rodvar

Thanks, any ideas how we can increase the number of Argentinian trades? Last one was in May 2023. Would be good to see if an ARS market can be established on Bisq.

rodvar commented 12 months ago

Hi @pazza83

I've been back in Buenos Aires the past 2 months, from what I've gathered the issue is that people don't even know that Bisq exists. How does Bisq do Advertising if any? Maybe organize a Bisq conference in Buenos Aires? Lots of Bitcoin enthusiasts there and the topic is back in the news because of the new president who was voted in saying he will eliminate the country's central bank 😄

50egtftz commented 4 months ago

@rodvar hey hey, are you also from Argentina? Would love to brainstorm about that. I have not been back in a while, but I wonder if it is because on chain fees are too expensive? We would probably need to learn how they locally use Tron and other networks, and see where BISQ can make an impact.

Also, thank you for working and implementing issue 6601!

rodvar commented 4 months ago

@50egtftz I'm starting to see some people putting offers in Bisq for BTC/ARS trading but unfortunately there are no takers from what I've seen and probably related to what you are saying, they don't want to pay the DeFi premium and use CeFi because it's not as regulated yet there and they can just do the BTC trade without worrying too much and less fees? If you have any more insights please share!

pazza83 commented 4 months ago

Fees are low at the moment for on-chain trading.

I think the ARS lacks market makers to post offers. Have you checked out Bisq 2? It might be a good place to try posting some offers as there are no fees to make an offer on Bisq Easy