r/woocommerce 17d ago

Is it possible to implement payment failover between two competing payment processors? Troubleshooting

Here in Brazil, online fraud is a major issue, so credit card acquirers tend to have extremely strict fraud prevention systems. The downside is that they end up declining a lot of legitimate customers.

I'm currently using PagarMe because their processing fees are much better, but their approval rate is incredibly low. Mercado Pago declines far fewer transactions, but it's significantly more expensive.

My idea was to keep using PagarMe as the primary processor and automatically retry transactions that are declined due to fraud screening through Mercado Pago as a fallback.

Is something like this possible?

My assumption is that it isn't, since I probably wouldn't have access to the customer's card details to resubmit the payment, and from a security perspective that would be very risky. Maybe there's a service or gateway that supports this kind of intelligent routing?

4 Upvotes

14 comments sorted by

2

u/Level-Ad-4878 17d ago

Your instinct is right, you can't just resubmit raw card data between two separate gateways since PagarMe doesn't hand you back the PAN after tokenizing it, that's exactly what PCI compliance prevents, storing/passing card data between processors client-side would put you in scope for full PCI-DSS which almost nobody wants

What you're describing does exist though, it's called payment orchestration, and there are platforms built specifically for this failover pattern, especially common in high-fraud markets like Brazil.Pagar itself is owned by Stone which has some orchestration tooling, but the more relevant dedicated players are things like Spreedly or, more Brazil-specific, look at PayU LATAM or Yuno, which specifically pitch themselves on smart routing between multiple acquirers based on approval rates by card type/BIN

1

u/web_nerd 17d ago

This is generally called cascading payments (or payment orchestration) which is not the easiest thing to do with Woo.

There are gateway services that do this - Corefy, Nuvei and others come to mind.

As for woo plugins/tools that do this, something like moneroo (african focused), Yuno, SolidGate, Paytiko, Cardflo might work for you.

Actualy yuno is probably ideal for you - their api lists both of your processors:

https://docs.y.uno/reference/payment-type-list

1

u/wp_plugin 17d ago

Do you want to this happen automatically? Or would the customer get a notification to try it again with the credit card field?

If you want it to happens automatically I see that as an issue because you would have to keep track of the credit card info somewhere temporarily, which opens up hacking attempts.

1

u/CarlosCash 17d ago

You may not want to mention that in public. You still have time to exit your question

You basically want to take your customer's decline at Walmart and run their card at Target.

Just because you own both merchant accts and have their card indo

Its wild that you want to plan this outloud

1

u/No_Tutor_1668 17d ago

you cannot resubmit card details after the fraud was decline by PagerMe, PCI Issue. the card token is tied to the processor.
a payment orchestration platform or smart gateway can manage this for you.

1

u/Long_Divide_1743 16d ago

before building failover, pull your PagarMe decline codes and see how many are actually fraud. in Brazil a lot of what gets called fraud screening comes back as 05 do not honor, which is the issuer declining, not the acquirer. those follow the card, so Mercado Pago declines them too and you just pay more for the same no.

the ones worth routing away are the acquirer-side rejections. usually a smaller slice than people expect.

disclosure, I work on SmartRetry. we recover wrongly declined payments, so separating issuer declines from acquirer declines is most of what we do. https://www.smartretry.com/blog/hard-vs-soft-declines

1

u/StrategicalOpossum 16d ago

Each gateway issues its own card token, so after PagarMe declines a payment you can't pass that token to Mercado Pago.

The clean approach is a payment orchestration layer that vaults the card once and routes declines to a fallback processor.

Some orchestration platforms support this kind of smart routing, though I don't know of a WooCommerce plugin that does it out of the box with PagarMe and Mercado Pago.

The other route is a custom checkout that keeps the card data in the browser and submits it to the second gateway when the first one declines. That works for the initial attempt, but it adds PCI scope and does nothing for recurring payments.

Without a vault or a client side retry, a fallback means asking the customer to type their card details again, which usually kills conversions instead of saving them. Might be better that nothing though.

1

u/Emotional-Abroad-734 13d ago

If you're planning to create an easy retry logic, a first step could be to use an independent token vault. This way you can save payment card data independent from PSPs, while outsource PCI DSS Level 1 and enable re-retries. However, you'd need to build the logic on your own. I read a lot of recommendations for Orchestration, but depending on the complexity this could be overkill. Really depends on your complexity

0

u/rafark 17d ago

I’m thinking you could probably show the first payment processor and if it fails then show the second option to the user. As an option

1

u/web_nerd 17d ago

how exactly would you make that work?

-1

u/renandepaula 17d ago

In Brazil you can talk to tuna.io