Online checkout integration intelligence for Mercado Pago. This skill contains stable integration patterns, decision trees, and flow descriptions. For dynamic data (current SDK code, payload schemas, test cards), consult the MCP server or fetch docs.
Products Covered
- Checkout Pro: Redirect-based, preference-driven. Best for fast integration.
- Checkout API: Direct server-to-server payment creation. Supports cards (with tokenization), bank transfers, cash/offline methods, and wallets. Full control, full customization.
- 3D Secure (3DS): Additional cardholder authentication layer. Required by some acquirers.
- Cross-Border Payments (CBP): Accept payments from buyers in other countries.
When to Use This Skill
Use when the conversation mentions: preference, init_point, back_urls, Checkout Pro, Checkout API, payment.create, card tokenization, 3DS, cross-border, online payments, checkout customization, on-site checkout.
Do NOT use for: QR/Point (use mp-instore), subscriptions (use mp-subscriptions), marketplace splits (use mp-marketplace).
Decision Tree: Which Checkout Variant?
Developer needs to accept online payments
|
+-- Wants fastest integration, OK with redirect?
| +-- YES --> Checkout Pro
| +-- Create preference --> redirect to init_point
|
+-- Wants full control over payment flow (on-site checkout)?
| +-- YES --> Checkout API
| +-- Cards: tokenize client-side --> create payment server-side
| +-- Non-card methods (Pix, Boleto, OXXO, PSE, etc.): create payment directly
|
+-- Needs 3DS authentication?
+-- Add 3DS to any of the above flows
Integration Flow: Checkout Pro
- Server: Create a preference with items, back_urls, notification_url
- Client: Redirect buyer to
init_point. - Buyer completes payment on MP checkout page
- MP redirects buyer to back_url with query params (collection_id, status, etc.)
- Server: Verify payment status via Payments API (NEVER trust redirect params alone)
- Server: Process webhook notification for definitive status
Key fields for preference: items[].title, items[].unit_price, items[].quantity (required). back_urls, auto_return, notification_url, statement_descriptor, external_reference (recommended).
Gotcha: currency_id must match the country. ARS for Argentina, BRL for Brazil, etc. See agent country detection.
Gotcha: For testing, always use init_point to redirect the test user to the checkout. Do NOT use sandbox_init_point — it is deprecated and will be discontinued. For the test purchase flow, consult MCP (search_documentation with term "checkout pro test purchase").
Integration Flow: Checkout API
Card payments
- Client: Tokenize card using MercadoPago.js
cardFormorcreateCardToken - Client: Send token + payment details to server
- Server: Create payment with token, transaction_amount, payment_method_id, installments, payer
- Server: Return status to client
- Server: Process webhook for definitive status
Non-card payments (Pix, Boleto, OXXO, PSE, bank transfers, etc.)
- Client: Collect payer details (email, identification, address as needed)
- Server: Create payment directly with
payment_method_idand payer data (no tokenization needed) - Server: Return transaction details to client (e.g., QR code for Pix, ticket URL for Boleto/OXXO)
- Server: Process webhook for definitive status
Gotcha: Card tokens are single-use and expire in 7 days.
Gotcha: issuer_id is required for some card payment methods.
Gotcha: Available payment methods vary by country. Consult MCP (search_documentation) for the current list per country.
3D Secure (3DS) -- Skeleton
- 3DS adds an authentication step before payment processing
- Required by some acquirers/issuers for fraud prevention
- Adds an iframe challenge flow for the buyer
- Only integrable for Checkout API or Checkout Bricks. Checkout Pro is already integrated by default
- Always use
binary_mode: false, otherwise the payment won't be able to show the challenge orpendingstatus. - For endpoints, payloads, and implementation details: Consult the MCP server or fetch docs at
{DOMAIN}/developers/{LANG}/docs/checkout-api/3ds
Cross-Border Payments (CBP) -- Skeleton
- Allows accepting payments from buyers in countries different from the seller's
- Requires specific configuration and approval
- Currency conversion is handled by MP
- For endpoints, payloads, and implementation details: Consult integrator or Key Account Manager. The product doesn't have public documentation yet.
Payment Status Reference
| Status | Status Detail | Meaning |
|---|---|---|
| approved | accredited | Payment approved and credited |
| in_process | pending_contingency | Under review |
| in_process | pending_review_manual | Manual review |
| rejected | cc_rejected_bad_filled_card_number | Wrong card number |
| rejected | cc_rejected_bad_filled_date | Wrong expiration |
| rejected | cc_rejected_bad_filled_security_code | Wrong CVV |
| rejected | cc_rejected_high_risk | Fraud risk |
| rejected | cc_rejected_insufficient_amount | Insufficient funds |
| rejected | cc_rejected_max_attempts | Too many attempts |
| pending | pending_waiting_payment | Awaiting offline payment |
Prerequisites
- Mercado Pago account with approved application
- Access Token (server-side) and Public Key (client-side)
- SDK installed (Node.js:
mercadopago, Python:mercadopago, etc.) - HTTPS endpoint for notification_url (webhooks)
Country Availability
All 7 countries: Argentina, Brazil, Mexico, Chile, Colombia, Peru, Uruguay.
CBP: Requires specific country-pair approval.
Testing
- Checkout Pro: Use
init_pointto redirect test users to the checkout. Do NOT usesandbox_init_point— it is deprecated and will be discontinued. For the test purchase flow, consult MCP (search_documentationwith term "checkout pro test purchase") - Use production credentials (
APP_USR-*) of a test user — Mercado Pago no longer usesTEST-sandbox credentials - For automated test credentials: access the Developer Dashboard > application details > test credentials (available directly without creating test users)
- Create test users from the Developer Dashboard or via the MCP tool
create_test_userif needed - Load balance into seller test users with the MCP tool
add_money_test_user - For current test cards and test user emails: Consult MCP server or fetch
{DOMAIN}/developers/{LANG}/docs/your-integrations/test/cards
What to Fetch from MCP
When helping a developer, use the Mercado Pago MCP server (mercadopago) to get:
- Current SDK initialization code per language
- Preference creation endpoint and full payload schema
- Payment creation endpoint and payload schema
- 3DS configuration endpoints
- Test card numbers and test user patterns
- Current error codes and messages
What to Fetch from Docs (WebFetch fallback)
If MCP is unavailable:
{DOMAIN}/developers/{LANG}/docs/checkout-pro/landing-- Checkout Pro guide{DOMAIN}/developers/{LANG}/docs/checkout-bricks/landing-- Bricks guide{DOMAIN}/developers/{LANG}/docs/checkout-api/landing-- Checkout API guide (note: this path may redirect to Orders API docs in some countries){DOMAIN}/developers/{LANG}/docs/checkout-api/3ds-- 3DS guide{DOMAIN}/developers/{LANG}/docs/your-integrations/test/cards-- Test cards