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 seu case_id ou o payment_id retornados no body da notificação configurada para o tópico de chargebacks. 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 ao endpoint /v1/chargebacks/{id}GET com seu Access TokenChave 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., utilizando o case_id da contestaçã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 | Identificador numérico (case_id) do caso de contestação retornado no body da notificação configurada para contestações. 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 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 comprobatórios que comprovem a validade da venda, envie uma solicitação ao endpoint /v1/chargebacks/{id}/documentationPOST com seu Access TokenChave 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., utilizando o case_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 | Identificador numérico do caso de contestação (case_id) retornado no body da notificação configurada para contestações. 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 baixá-los ou acessar cada arquivo individualmente pela URL disponível no campo url do array documentation.
Para visualizar ou baixar um arquivo específico, envie uma solicitação ao endpoint /v1/chargebacks/documentation/{type}/{uuid}GET com seu Access TokenChave 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., substituindo {type} pela categoria do documento e {uuid} pelo identificador único 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. 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 usando o 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. |