From mp-developer
Mercado Pago webhook and IPN notification handling. Use when implementing webhook receivers, validating x-signature headers, handling notification retries, debugging missing notifications, or configuring notification types per product.
npx claudepluginhub mercadopago/mercadopago-claude-marketplace --plugin mp-developerThis skill uses the workspace's default tool permissions.
- **Webhooks (v2)**: JSON-based, HMAC-signed. Recommended for all new integrations.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
Use when: notification_url, x-signature, webhook, IPN, HMAC, retry, notification types. Do NOT use for: payment creation (-> mp-checkout-online), QR notifications (-> mp-instore).
| Product | Event Types |
|---|---|
| Checkout Pro / Bricks / API | payment.created, payment.updated |
| Subscriptions | plan.created, plan.updated, subscription.created, subscription.updated, invoice.created, invoice.updated |
| Point / In-Store | point_integration_wh |
| Marketplace | payment.created, payment.updated (with marketplace context) |
| Chargebacks | chargeback.created, chargeback.updated |
| Delivery | delivery.created, delivery.updated |
New integration?
├── YES -> Use Webhooks (v2)
│ ├── Need signature validation? -> YES (always recommended)
│ └── Configure in Dashboard or via notification_url in preference
└── NO (legacy system already using IPN)
└── Consider migrating to Webhooks
├── Benefits: HMAC security, JSON format, better retry
└── Migration: Update URL, change handler to accept JSON body
Two methods:
notification_url field when creating a preferenceRequirements for notification_url:
This pattern is stable and rarely changes. Keep it in the skill.
x-signature: ts=1234567890,v1=abc123def456...
id:{data.id};request-id:{x-request-id};ts:{ts};
{data.id} -- From query param ?data.id=xxx or body data.id{x-request-id} -- From request header{ts} -- From x-signature headerts and v1 from x-signature headerdata.id from query string or bodyx-request-id from headersid:{data.id};request-id:{x-request-id};ts:{ts};For working code implementations: Consult MCP server for current SDK patterns per language.
| Attempt | Delay |
|---|---|
| 1st retry | 5 minutes |
| 2nd retry | 45 minutes |
| 3rd retry | 6 hours |
| 4th retry | 2 days |
| 5th retry | 4 days |
Failure conditions: non-2xx status, timeout >5s, unreachable endpoint.
Format: GET https://yoursite.com/ipn?topic=payment&id=123456789
ngrok http <port> to expose local serverhttp://127.0.0.1:4040 to replay{DOMAIN}/developers/{LANG}/docs/your-integrations/notifications/webhooks{DOMAIN}/developers/{LANG}/docs/your-integrations/notifications/ipn