Gerenciar contestações
Ao receber uma notificação de início de contestação, utilize os dados fornecidos para auxiliar no gerenciamento do processo. Esses dados serão fundamentais para preparar e enviar a documentação necessária à disputa.
Nesta etapa, analise as informações detalhadas incluídas na notificação para compreender os aspectos específicos da contestação. Abaixo, apresentamos um diagrama que ilustra como funciona o fluxo de envio e recebimento da documentação:
sequenceDiagram
participant Servidor as Servidor do vendedor
participant API as API Mercado Pago
API->>Servidor: Notificação de contestação
Servidor-->>API: HTTP 200
Servidor->>API: Consultar contestação
API->>Servidor: Resposta da contestação
Servidor->>API: Enviar documentação comprobatória
API-->>Servidor: HTTP 200
API->>Servidor: Atualização da contestação
Servidor-->>API: HTTP 200
Inicie o processo consultando as informações da contestação utilizando o id ou o payment_id fornecidos no corpo da notificação configurada. A partir dos detalhes obtidos, prepare a documentação comprobatória que será enviada para dar continuidade ao processo de contestação.
documentation_required é legado. Independentemente de o valor retornado ser true ou false, sempre envie documentação comprobatória que sustente a contestação e demonstre a validade da venda.Para consultar mais informações sobre a contestação, envie uma solicitação com seu Access Token de produçãoChave privada da aplicação criada no Mercado Pago e utilizada no backend. Você pode acessá-la em Suas integrações > Dados da integração > Produção > Credenciais de produção. ao endpoint /v1/chargebacks/{id}GET, substituindo {id} pelo id da contestação recebido no corpo da notificação.
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 | Descrição e exemplos | Obrigatoriedade |
id | Path. String | ID numérico do caso de contestação, retornado no campo id do body da notificação configurada. Por exemplo, 234000062890459000. | Obrigatório |
Authorization | Header. String | Faz referência à sua chave privada, o Access Token de produçãoChave privada da aplicação criada no Mercado Pago e que é utilizada no backend. Você pode acessá-la através de Suas integrações > Dados da integração > Produção > Credenciais de produção.. | Obrigatório |
X-Caller-Id | Header. Integer | ID do usuário autenticado (seller ID) e proprietário do recurso solicitado. Exemplo: 123456789. | Obrigatório |
Confira abaixo um exemplo de resposta à requisição:
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 }
Confira abaixo os possíveis valores do campo documentation_status:
| Valor | Descrição |
pending | A documentação comprobatória ainda não foi enviada pelo vendedor. |
review_pending | A documentação comprobatória foi enviada e está pendente de revisão pela equipe do Mercado Pago. |
valid | A documentação comprobatória enviada foi revisada e considerada válida. |
invalid | A documentação comprobatória enviada foi revisada e considerada inválida. |
not_supplied | Nenhuma documentação comprobatória foi enviada dentro do prazo estabelecido. |
not_applicable | A API classificou o envio de documentação comprobatória como não aplicável a este caso. Esse status é independente do campo legado documentation_required; envie arquivos quando documentation_status for pending. |
É sempre necessário enviar documentação comprobatória que sustente a contestação e demonstre a validade da venda. Esses documentos permitem que a equipe do Mercado Pago analise os fatos e faça a mediação da resolução junto à bandeira do cartão e ao banco emissor.
documentation_status=pending e que o caso poderá receber os arquivos.Lembre-se que o campo
documentation_required é legado, então independentemente do valor retornado, sempre envie a documentação comprobatória que sustente a contestação.Para enviar os arquivos de evidência que comprovem a validade da venda, envie uma requisição com seu Access Token de produçãoChave privada da aplicação criada no Mercado Pago e utilizada no backend. Você pode acessá-la em Suas integrações > Dados da integração > Produção > Credenciais de produção. ao endpoint /v1/chargebacks/{id}/documentationPOST, substituindo {id} pelo id da contestação.
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 | Descrição e exemplos | Obrigatoriedade |
id | Path. String | ID numérico do caso de contestação, retornado no campo id do body da notificação configurada. Por exemplo, 234000062890459000. | Obrigatório |
Authorization | Header. String | Faz referência à sua chave privada, o Access Token de produçãoChave privada da aplicação criada no Mercado Pago e que é utilizada no backend. Você pode acessá-la através de Suas integrações > Dados da integração > Produção > Credenciais de produção.. | Obrigatório |
X-Caller-Id | Header. Integer | ID do usuário autenticado (seller ID) e proprietário do recurso solicitado. Exemplo: 123456789. | Obrigatório |
file | Body. Array | Arquivo(s) de evidência (notas fiscais, comprovantes de envio, capturas de tela, etc.) nos formatos JPEG, PNG ou PDF. Máximo de 10 arquivos com tamanho total de até 10 MB. | Obrigatório |
Se os arquivos forem enviados com sucesso, a API retornará um código HTTP 200 e o documentation_status da contestação será alterado para review_pending. A resposta incluirá a lista dos arquivos enviados:
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" } ]
Após o envio da documentação comprobatória, é possível baixar cada arquivo ou acessá-lo individualmente pela URL disponível no campo url do array documentation.
Para visualizar ou baixar um arquivo específico, envie uma solicitação com seu Access Token de produçãoChave privada da aplicação criada no Mercado Pago e utilizada no backend. Você pode acessá-la em Suas integrações > Dados da integração > Produção > Credenciais de produção. ao endpoint /v1/chargebacks/documentation/{type}/{uuid}GET, substituindo {type} pela categoria do documento e {uuid} pelo identificador do arquivo.
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 | Descrição e exemplos | Obrigatoriedade |
type | Path. String | Categoria do documento. O único valor permitido é collector, correspondente aos arquivos enviados pelo vendedor. | Obrigatório |
uuid | Path. String | Identificador único do arquivo, obtido do array documentation na resposta do endpoint /v1/chargebacks/{id}GET. Por exemplo, a1b2c3d4-e5f6-7890-abcd-ef1234567890. | Obrigatório |
Authorization | Header. String | Faz referência à sua chave privada, o Access Token de produçãoChave privada da aplicação criada no Mercado Pago e que é utilizada no backend. Você pode acessá-la através de Suas integrações > Dados da integração > Produção > Credenciais de produção.. | Obrigatório |
X-Caller-Id | Header. Integer | ID do usuário autenticado (seller ID) e proprietário do recurso solicitado. Exemplo: 123456789. | Obrigatório |
O arquivo é retornado com seu tipo MIME original (image/jpeg, image/png ou application/pdf), permitindo que seja renderizado diretamente no navegador ou salvo localmente.
Após o envio da documentação comprobatória e uma vez concluída a análise por parte da bandeira do cartão e do banco emissor, a resolução da contestação é determinada e as partes envolvidas são notificadas.
Aguarde a notificação Webhook referente à resolução e consulte novamente a contestação enviando uma solicitação ao endpoint /v1/chargebacks/{id}GET. Após a resolução, o campo coverage_applied indicará o resultado:
| Valor | Descrição |
true | A decisão foi favorável ao vendedor e o valor será devolvido. |
false | A decisão foi contrária ao vendedor e o valor será descontado. |