Gestionar contracargos
Al recibir una notificación de inicio de contracargo, utiliza los datos proporcionados para ayudar en la gestión del proceso. Estos datos serán fundamentales para preparar y enviar la documentación necesaria para la disputa.
En esta etapa, analiza la información detallada incluida en la notificación para comprender los aspectos específicos del contracargo. A continuación, presentamos un diagrama que ilustra cómo funciona el flujo de envío y recepción de la documentación:
sequenceDiagram
participant Servidor as Servidor del vendedor
participant API as API Mercado Pago
API->>Servidor: Notificación de contracargo
Servidor-->>API: HTTP 200
Servidor->>API: Consultar contracargo
API->>Servidor: Respuesta del contracargo
Servidor->>API: Enviar documentación probatoria
API-->>Servidor: HTTP 200
API->>Servidor: Actualización del contracargo
Servidor-->>API: HTTP 200
Inicia el proceso consultando la información del contracargo utilizando tu case_id o el payment_id devueltos en el cuerpo de la notificación configurada para el tópico de chargebacks. A partir de los detalles obtenidos, prepara la documentación probatoria que se enviará para dar continuidad al proceso de contracargo.
documentation_required es legado. Independientemente de que el valor devuelto sea true o false, siempre envía documentación probatoria que respalde el contracargo y demuestre la validez de la venta.Para consultar más información sobre el contracargo, envía una solicitud al endpoint /v1/chargebacks/{id}GET con tu Access Token de producciónClave privada de la aplicación creada en Mercado Pago, utilizada en el backend. Puedes acceder a ella en Tus integraciones > Datos de la integración > Producción > Credenciales de producción., utilizando el case_id del contracargo recibido en el cuerpo de la notificación.
curlcurl -X GET \ 'https://api.mercadopago.com/v1/chargebacks/{id}' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'X-Caller-Id: <YOUR_SELLER_ID>'
| Parámetro | Tipo | Descripción y ejemplos | Obligatoriedad |
id | Path. String | Identificador numérico (case_id) del caso de contracargo devuelto en el body de la notificación configurada para contracargos. Por ejemplo, 234000062890459000. | Obligatorio |
Authorization | Header. String | Hace referencia a tu clave privada, el Access Token de producciónClave privada de la aplicación creada en Mercado Pago y utilizada en el backend. Puedes acceder a ella a través de Tus integraciones > Datos de la integración > Producción > Credenciales de producción.. | Obligatorio |
X-Caller-Id | Header. Integer | ID del usuario autenticado (seller ID) y propietario del recurso solicitado. Por ejemplo: 123456789. | Obligatorio |
A continuación, compartimos un ejemplo de respuesta a la solicitud:
json{ "id": "234000062890459000", "payments": [ 86439942806 ], "currency": "ARS", "amount": 1000.50, "reason": "unauthorized", "reason_id": "6", "coverage_applied": null, "coverage_eligible": true, "documentation_status": "not_supplied", "documentation": [], "date_documentation_deadline": null, "date_created": "2024-02-01T10:30:00.000-03:00", "date_last_updated": "2024-10-17T12:48:24.000-04:00", "live_mode": true }
Consulta a continuación los posibles valores del campo documentation_status:
| Valor | Descripción |
pending | El vendedor aún no ha enviado la documentación probatoria. |
review_pending | La documentación probatoria fue enviada y está pendiente de revisión por el equipo de Mercado Pago. |
valid | La documentación probatoria enviada fue revisada y es considerada válida. |
invalid | La documentación probatoria enviada fue revisada y es considerada inválida. |
not_supplied | No se envió documentación probatoria dentro del plazo establecido. |
not_applicable | La API clasificó el envío de documentación probatoria como no aplicable para este caso. Este status es independiente del campo legado documentation_required; envía archivos cuando documentation_status sea pending. |
Siempre es necesario enviar documentación probatoria que respalde el contracargo y demuestre la validez de la venta. Estos documentos permiten que el equipo de Mercado Pago analice los hechos y medie la resolución junto a la marca de la tarjeta y el banco emisor.
documentation_status=pending y que el caso puede recibir los archivos.Recuerda que el campo
documentation_required es legado, por lo que, independientemente del valor devuelto, siempre debes enviar documentación probatoria que respalde el contracargo.Para enviar los archivos de evidencia que demuestren la validez de la venta, envía una solicitud al endpoint /v1/chargebacks/{id}/documentationPOST con tu Access Token de producciónClave privada de la aplicación creada en Mercado Pago, utilizada en el backend. Puedes acceder a ella en Tus integraciones > Datos de la integración > Producción > Credenciales de producción., utilizando el case_id del contracargo.
curlcurl -X POST \ 'https://api.mercadopago.com/v1/chargebacks/{id}/documentation' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'X-Caller-Id: <YOUR_SELLER_ID>' \ -H 'X-Idempotency-Key: <SOME_UNIQUE_VALUE>' \ -F 'file=@/path/to/file/file1.png' \ -F 'file=@/path/to/file/file2.pdf'
| Parámetro | Tipo | Descripción y ejemplos | Obligatoriedad |
id | Path. String | Identificador numérico del caso de contracargo (case_id) devuelto en el body de la notificación configurada para contracargos. Por ejemplo, 234000062890459000. | Obligatorio |
Authorization | Header. String | Hace referencia a tu clave privada, el Access Token de producciónClave privada de la aplicación creada en Mercado Pago y utilizada en el backend. Puedes acceder a ella a través de Tus integraciones > Datos de la integración > Producción > Credenciales de producción.. | Obligatorio |
X-Caller-Id | Header. Integer | ID del usuario autenticado (seller ID) y propietario del recurso solicitado. Por ejemplo: 123456789. | Obligatorio |
file | Body. Array | Archivo(s) de evidencia (facturas, guías de envío, capturas de pantalla, etc.) en formato JPEG, PNG o PDF. Máximo 10 archivos con tamaño total de hasta 10 MB. | Obligatorio |
Si los archivos se envían con éxito, la API devolverá un código HTTP 200 y el documentation_status del contracargo se cambiará a review_pending. La respuesta incluirá la lista de archivos subidos:
json[ { "type": "collector", "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "url": "https://storage.mlstatic.com/op/123/456789/file1.png", "description": "file1.png" }, { "type": "collector", "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "url": "https://storage.mlstatic.com/op/123/456789/file2.pdf", "description": "file2.pdf" } ]
Tras el envío de la documentación probatoria, es posible descargar los archivos o acceder a cada uno individualmente mediante la URL disponible en el campo url del array documentation.
Para ver o descargar un archivo específico, envía una solicitud al endpoint /v1/chargebacks/documentation/{type}/{uuid}GET con tu Access Token de producciónClave privada de la aplicación creada en Mercado Pago, utilizada en el backend. Puedes acceder a ella en Tus integraciones > Datos de la integración > Producción > Credenciales de producción., sustituyendo {type} por la categoría del documento y {uuid} por el identificador único del archivo.
curlcurl -X GET \ 'https://api.mercadopago.com/v1/chargebacks/documentation/{type}/{uuid}' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'X-Caller-Id: <YOUR_SELLER_ID>'
| Parámetro | Tipo | Descripción y ejemplos | Obligatoriedad |
type | Path. String | Categoría del documento. El único valor permitido es collector, correspondiente a los archivos subidos por el vendedor. | Obligatorio |
uuid | Path. String | Identificador único del archivo, obtenido del array documentation en la respuesta del endpoint /v1/chargebacks/{id}GET. Por ejemplo, a1b2c3d4-e5f6-7890-abcd-ef1234567890. | Obligatorio |
Authorization | Header. String | Hace referencia a tu clave privada, el Access Token de producciónClave privada de la aplicación creada en Mercado Pago y utilizada en el backend. Puedes acceder a ella a través de Tus integraciones > Datos de la integración > Producción > Credenciales de producción.. | Obligatorio |
X-Caller-Id | Header. Integer | ID del usuario autenticado (seller ID) y propietario del recurso solicitado. Por ejemplo: 123456789. | Obligatorio |
El archivo es retornado con su tipo MIME original (image/jpeg, image/png o application/pdf), lo que permite renderizarlo directamente en el navegador o guardarlo localmente.
Tras el envío de la documentación probatoria y una vez concluido el análisis por parte de la marca de la tarjeta y del banco emisor, se determina la resolución del contracargo y se notifica a las partes involucradas.
Espera la notificación Webhook referente a la resolución y consulta nuevamente el contracargo utilizando el endpoint /v1/chargebacks/{id}GET. Después de la resolución, el campo coverage_applied indicará el resultado:
| Valor | Descripción |
true | La decisión fue favorable al vendedor y el dinero será devuelto. |
false | La decisión fue en contra del vendedor y el dinero será descontado. |