MercadoPago on WooCommerce is the silent tax of LATAM e-commerce. There's an official plugin, three semi-maintained forks, five abandoned ones, and half the Stack Overflow threads are from 2019. Here's what actually works in 2026.
Use the official plugin — but pin the version
Mercado Pago Payments for WooCommerce (by Mercado Pago, ~400k active installs) is the one you want. It covers Checkout Pro, Checkout Transparente, Pix, and cuotas sin interés. Pin its version in the client's site — auto-updates on payment plugins are how you wake up to a broken checkout at 9am.
Keys and webhooks, the real setup
You need four credentials (Public Key + Access Token, for both test and prod) and a webhook URL pointing at your store. The webhook is the one everyone forgets. Without it, payments can be approved by MP and WooCommerce never marks the order paid — the client refunds, they complain, you look bad.
- —Webhook URL: https://your-site.com/wc-api/WC_WooMercadoPago_Basic_Gateway/
- —Enable it in MP Dashboard → Developers → Your Application → Webhooks
- —Subscribe to 'payments' events (at minimum)
- —Log incoming webhooks during setup — we use a WP plugin called WP Webhook Logger for this
One short email every few weeks. Like this note, but in your inbox.
Sandbox without breaking prod
MP's test environment uses separate credentials and separate test users with fake cards. Never run tests on live credentials, no matter how urgent. Create two test users (one buyer, one seller) in MP's developer panel — use the test cards from their docs. A real order from your phone is not a test.
"Half the MercadoPago tickets we've debugged came from someone running a $1 'real test' on prod credentials at 2am."
Common failures
- —Cuotas sin interés shows wrong: almost always a promo/marketplace-agreement mismatch on the MP side, not WooCommerce
- —Order stays 'pending' forever: webhook never arrived (check logs) or the endpoint returned non-200
- —Checkout redirects to MP, user pays, lands back on a blank page: return URL misconfigured in the plugin
- —Double payments: user opened checkout in two tabs. Enable 'one-click' to reduce it
When NOT to use MP
If ≥70% of your cart is outside LATAM, Stripe is a better default. If you're selling SaaS subscriptions with international clients, Stripe again. MP shines when your buyers are mostly Argentine, Mexican, Brazilian, Colombian or Chilean — it's the checkout they trust and they already have the app. Everywhere else it's friction.