Skip to main content
Uma disputa acontece quando o portador questiona uma cobrança de cartão. Quando isso acontece, a Chargefy cria um objeto dispute ligado à charge original e abre um prazo para envio de evidências. Este guia mostra o que fazer quando uma disputa é criada, quais arquivos são aceitos, como enviar a contestação e como acompanhar a decisão.
O prazo de defesa é de 7 dias corridos a partir da emissão da notificação. Use o campo evidence_details.due_by do dispute como fonte de verdade para o prazo.

Resumo do fluxo

  1. Receba o webhook charge.dispute.created ou veja a disputa no Dashboard.
  2. Consulte o dispute e confirme status, reason, charge e evidence_details.due_by.
  3. Reúna todos os documentos em um único arquivo.
  4. Faça upload da evidência antes do prazo.
  5. Envie a contestação para análise.
  6. Acompanhe charge.dispute.updated e charge.dispute.closed até a decisão final.

O que muda quando a disputa nasce

Quando o dispute é criado, ele normalmente começa em needs_response. Nesse estado, a organização ainda pode enviar evidências. Campos importantes:
CampoComo usar
idID da disputa (dp_*). Use em consultas, upload e envio para análise.
chargeCharge contestada (ch_*). Use para reconciliar com pedido, invoice ou assinatura.
amountValor contestado, em centavos.
customerCustomer relacionado, quando disponível.
evidence_details.due_byPrazo final para envio da contestação.
evidence_details.has_evidenceIndica se já existe arquivo associado.
evidence_details.submission_countQuantidade de envios para análise já feitos.
reasonMotivo normalizado quando disponível. Pode ser null.
statusEstado atual da disputa.
No 8º dia corrido, pode haver ajuste financeiro relacionado à contestação. Isso não significa decisão final. O dispute público permanece em under_review enquanto a análise final estiver em andamento.

Prazos e estados

MomentoO que aconteceO que você deve fazer
Dia 0Disputa criada em needs_response.Comece a reunir documentos imediatamente.
Até 7 dias corridosA contestação ainda pode ser enviada.Faça upload do arquivo e envie para análise.
Dia 8 em dianteA disputa segue em análise quando a defesa foi enviada.Acompanhe webhooks e reconciliação financeira.
Decisão finalO status muda para won ou lost.Trate charge.dispute.closed e atualize seu backoffice.
A decisão final pode levar semanas e, em alguns casos, até cerca de 120 dias. Evite fazer polling agressivo: use webhooks para acompanhar a mudança de estado.

Requisitos do arquivo

A defesa deve ser consolidada em um único arquivo. A Chargefy não aceita múltiplos anexos para a mesma submissão.
RequisitoValor
FormatoPDF ou TIF
Tamanho máximo7 MB
Quantidade de arquivos1 arquivo
PDFAté 10 páginas
ResoluçãoAté 200 DPI
OrientaçãoPáginas verticais
CorPreferencialmente preto e branco
Também recomendamos:
  • Não envie arquivo protegido por senha.
  • Não envie páginas em branco.
  • Use nomes de arquivo simples, sem caracteres especiais.
  • Garanta que textos, comprovantes e datas estejam legíveis.
  • Consolide prints, comprovantes, conversas e recibos no mesmo PDF/TIF.
Se o arquivo estiver ilegível, exceder o limite ou for enviado fora do prazo, a contestação pode não ser analisada. O upload valida formato, tamanho e contagem de páginas do PDF; qualidade visual e conteúdo continuam sendo responsabilidade da organização.

O que incluir na defesa

Monte o documento pensando em uma pessoa que não conhece a venda. O arquivo precisa explicar por que a cobrança é legítima ou por que o produto/serviço foi entregue corretamente.

Fraude ou cobrança não reconhecida

Inclua evidências que conectem o comprador à transação:
  • Recibo ou comprovante de compra.
  • Dados de autenticação, login, IP, dispositivo ou aceite de termos, quando existirem.
  • Comprovante de entrega, uso, acesso ou ativação do serviço.
  • Comunicação com o comprador reconhecendo a compra.
  • Em casos de fraude, inclua o vínculo com Mensagem Emissor quando aplicável.

Produto não recebido

Inclua evidências de entrega ou disponibilização:
  • Código de rastreio, comprovante de postagem ou comprovante de entrega.
  • Data e endereço de entrega.
  • Logs de acesso, ativação ou download em produtos digitais.
  • Histórico de atendimento mostrando resolução ou tentativa de contato.

Produto inaceitável, cancelamento ou desacordo comercial

Inclua contexto comercial:
  • Descrição do produto/serviço vendido.
  • Política de cancelamento, troca ou reembolso aceita pelo comprador.
  • Comprovante de aceite dos termos.
  • Conversas de suporte.
  • Evidências de que o serviço foi prestado ou que o produto estava de acordo com a oferta.

Duplicidade, crédito não processado ou assinatura cancelada

Inclua linha do tempo e conciliação:
  • IDs das cobranças relacionadas.
  • Comprovantes de refund, cancelamento ou ausência de refund.
  • Histórico de invoices, assinaturas ou pedidos.
  • Datas de cobrança, cancelamento e comunicação com o cliente.

Enviar pelo Dashboard

Use este caminho quando a operação é feita por uma pessoa da organização.
  1. Acesse o Dashboard da Chargefy.
  2. Entre em Financeiro → Disputas.
  3. Abra a disputa.
  4. Confira o prazo, valor, charge e customer.
  5. Faça upload do arquivo PDF/TIF.
  6. Revise o checklist exibido na tela.
  7. Clique em Enviar à análise.
  8. Acompanhe o histórico de envios na própria disputa.
Se a organização decidir não defender a cobrança, use Encerrar. Essa ação concede a contestação e muda o dispute para lost.

Enviar pela API

Use este caminho quando seu sistema opera disputas server-to-server. Para plataformas, inclua o header Organization com a organização conectada que originou a disputa.

1. Consulte a disputa

curl -X GET "https://api.chargefy.io/v1/disputes/dp_123" \
  -H "Authorization: Bearer {{API_KEY}}"
Resposta resumida:
{
  "id": "dp_123",
  "object": "dispute",
  "amount": 15000,
  "charge": "ch_123",
  "created_at": "2026-05-22T03:00:00Z",
  "currency": "brl",
  "evidence_details": {
    "due_by": "2026-05-29T03:00:00Z",
    "has_evidence": false,
    "past_due": false,
    "submission_count": 0
  },
  "reason": "fraudulent",
  "status": "needs_response"
}
Veja o contrato completo em Consultar dispute.

2. Faça upload do arquivo

Envie exatamente um arquivo no campo file.
curl -X POST "https://api.chargefy.io/v1/dispute-evidence-upload" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -F "dispute_id=dp_123" \
  -F "file=@/caminho/local/defesa.pdf;type=application/pdf"
Para API key de plataforma:
curl -X POST "https://api.chargefy.io/v1/dispute-evidence-upload" \
  -H "Authorization: Bearer {{PLATFORM_API_KEY}}" \
  -H "Organization: org_123" \
  -F "dispute_id=dp_123" \
  -F "file=@/caminho/local/defesa.pdf;type=application/pdf"
Erros comuns de upload:
StatusQuando ocorre
400Arquivo ausente, mais de um arquivo, MIME inválido, PDF sem contagem de páginas legível ou PDF com mais de 10 páginas.
400Arquivo acima de 7 MB.
404Disputa não encontrada na organização autenticada.
409Disputa já fechada.

3. Envie para análise

Depois do upload, envie submit: true no dispute.
curl -X POST "https://api.chargefy.io/v1/disputes/dp_123" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "submit": true
  }'
Você também pode atualizar metadata e evidências textuais antes do envio:
curl -X POST "https://api.chargefy.io/v1/disputes/dp_123" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "evidence": {
      "customer_communication": "Conversation and receipt attached."
    },
    "metadata": {
      "case_owner": "ops"
    },
    "submit": true
  }'
Se o envio for aceito, o dispute passa para under_review.
POST /v1/disputes/{id}/close não envia defesa. Essa ação concede a contestação e retorna o dispute como lost.

Webhooks que você deve tratar

Configure seu endpoint para receber estes eventos:
EventoQuando tratar
charge.dispute.createdAbrir tarefa operacional e iniciar coleta de evidências.
charge.dispute.updatedAtualizar status interno, evidência enviada ou contagem de submissões.
charge.dispute.closedRegistrar decisão final como won ou lost.
Em plataformas, use o campo top-level organization do webhook para identificar a organização conectada que originou a disputa.

Checklist operacional

Antes de clicar em Enviar à análise ou enviar submit: true, confirme:
  • O prazo evidence_details.due_by ainda não expirou.
  • O arquivo é PDF ou TIF.
  • O arquivo tem no máximo 7 MB.
  • O PDF tem até 10 páginas.
  • O documento está legível, vertical e preferencialmente em preto e branco.
  • Todas as evidências estão consolidadas em um único arquivo.
  • A defesa explica o contexto da compra, entrega, uso ou cancelamento.
  • Seu sistema está preparado para receber charge.dispute.closed.

Erros comuns

SituaçãoComo evitar
Perder o prazoCrie automação interna no recebimento de charge.dispute.created e trate due_by como prazo fatal.
Enviar vários arquivosConsolide tudo em um único PDF/TIF antes do upload.
Arquivo ilegívelRevise o PDF/TIF como se fosse uma impressão: texto pequeno, cortes e páginas tortas reduzem a chance de análise.
Enviar defesa sem arquivoPrimeiro faça upload, depois envie submit: true.
Conceder por enganoUse close somente quando a organização decidiu aceitar a perda da contestação.
Ignorar closedA decisão final pode chegar muito depois do envio; trate charge.dispute.closed para fechar o caso no seu sistema.