dispute ligado à charge
original e abre um prazo para envio de evidências.
Este guia mostra o que fazer quando uma disputa é criada, como montar a defesa
nos campos nomeados de evidence, como enviar a contestação e como acompanhar
a decisão. Para o conceito — quem participa, o ciclo de vida completo, o
efeito no saldo e como prevenir disputas —, veja
Como funcionam as disputas.
O prazo de defesa é de 6 dias corridos a partir da criação da disputa. Use
o campo
evidence_details.due_by do dispute como fonte de verdade para o
prazo.Resumo do fluxo
- Receba o webhook
charge.dispute.createdou veja a disputa no Dashboard. - Consulte o
disputee confirmestatus,reason,chargeeevidence_details.due_by. - Suba cada documento da defesa com
POST /v1/filesepurpose=dispute_evidence(PDF, JPG ou PNG) — cada upload retorna umfile_*. - Anexe cada
file_*ao campo de arquivo correspondente deevidencee preencha os campos de texto comPOST /v1/disputes/{id}, usandosubmit: falseenquanto monta a defesa. - Envie a defesa com
submit: true. O envio é único e irreversível. - Acompanhe
charge.dispute.updatedecharge.dispute.closedaté a decisão final.
Se o prazo termina com pelo menos um campo de arquivo preenchido e a defesa
ainda não enviada, a Chargefy envia a defesa automaticamente por você. Você
recebe um e-mail confirmando o envio e o
charge.dispute.updated reflete a
mudança para under_review.O que muda quando a disputa nasce
Quando odispute é criado, ele normalmente começa em needs_response.
Nesse estado, a organização ainda pode montar e enviar a defesa.
Campos importantes:
Os valores possíveis de
status:
Os valores possíveis de
reason, quando informado:
O ajuste financeiro do valor contestado acontece após o fim do prazo de
defesa. Se nenhum campo de arquivo foi preenchido até lá, a disputa é
encerrada como
lost e você recebe charge.dispute.closed. Se a defesa foi
enviada — por você ou automaticamente —, o dispute permanece em
under_review até a decisão final da análise.Prazos e estados
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.
Como a defesa é montada
A defesa inteira vive nos campos nomeados deevidence do dispute: 18
campos de texto (dados do comprador, datas, explicações) e 9 campos de
arquivo (recibo, conversas, comprovante de envio, políticas). Campo de
arquivo recebe o file_* de um upload com purpose=dispute_evidence; campo
de texto recebe string livre.
Cada update faz merge por campo — o que você não enviar fica como está — e
string vazia ("") limpa um campo, de texto ou de arquivo. O catálogo
completo dos 27 campos, com a descrição de cada um, está na
visão geral do dispute.
Requisitos e limites
Os limites somados valem para o conjunto de campos preenchidos e são validados
a cada update de
evidence — você nunca descobre um estouro só na hora do
envio, e a mensagem de erro diz quanto ainda resta.
Também recomendamos, pela legibilidade da defesa:
- Prefira páginas e capturas em orientação vertical.
- Preto e branco costuma ficar mais legível na análise; use cor quando ela for parte da prova.
- PDF protegido por senha é recusado no upload.
- Não use páginas em branco.
- Use nomes de arquivo simples, sem caracteres especiais.
- Garanta que textos, comprovantes e datas estejam legíveis.
O que incluir na defesa
Monte a defesa pensando em uma pessoa que não conhece a venda. Os campos preenchidos precisam explicar por que a cobrança é legítima ou por que o produto/serviço foi entregue corretamente. Use os campos indicados peloreason da disputa; uncategorized_text e uncategorized_file recebem o que
não couber nos demais.
Fraude ou cobrança não reconhecida
Conecte o comprador à transação:receipt: recibo ou comprovante da compra.customer_communication: conversas em que o comprador reconhece a compra.access_activity_logecustomer_purchase_ip: autenticação, login, IP, dispositivo ou uso do produto.customer_name,customer_email_addressebilling_address: dados usados na compra.customer_signature: assinatura em contrato ou comprovante de retirada.product_description: o que foi vendido e como é entregue.
Produto não recebido
Prove a entrega ou disponibilização:shipping_documentation: comprovante de postagem ou de entrega.shipping_carrier,shipping_date,shipping_tracking_numbereshipping_address: transportadora, datas, rastreio e endereço.- Em produtos digitais,
access_activity_logeservice_documentationmostram acesso, ativação ou download.
Produto inaceitável ou desacordo comercial
Mostre o contexto comercial:product_description: a oferta como anunciada.service_documentationeservice_date: o que foi prestado e quando.customer_communication: tratativas de suporte.refund_policy,refund_policy_disclosureerefund_refusal_explanation: a política de reembolso, como o comprador tomou ciência dela e sua justificativa.
Cancelamento de assinatura
Mostre a regra aceita pelo comprador:cancellation_policyecancellation_policy_disclosure: a política de cancelamento e como ela foi apresentada.cancellation_rebuttal: por que a cobrança é válida mesmo com a alegação.customer_communication: histórico com o cliente.
Duplicidade ou crédito não processado
Monte a linha do tempo e a conciliação:duplicate_charge_id: a charge (ch_*) que o comprador aponta como duplicata.duplicate_charge_explanationeduplicate_charge_documentation: por que são vendas distintas.refund_policyerefund_refusal_explanation: contexto do reembolso prometido ou recusado.
Enviar pelo Dashboard
Use este caminho quando a operação é feita por uma pessoa da organização.- Acesse o Dashboard da Chargefy.
- Entre em Pagamentos → Disputas.
- Abra a disputa.
- Confira o prazo, valor, charge e customer.
- Anexe os documentos nos campos de arquivo e preencha os campos de texto da defesa. Você pode editar e limpar os campos enquanto o prazo estiver aberto.
- Revise os campos preenchidos e as Orientações exibidas na tela.
- Clique em Submeter evidências. O envio é único e irreversível.
- Acompanhe o histórico na própria disputa.
dispute para lost.
Enviar pela API
Use este caminho quando seu sistema opera disputas server-to-server. As diferenças para contas com Chargefy for Platforms estão na seção dedicada mais abaixo.1. Consulte a disputa
dispute nasce com o hash de evidence completo — todas as 27 chaves, em
ordem alfabética, null enquanto vazias:
2. Suba os documentos
Cada documento da defesa é um upload próprio emPOST /v1/files, com
purpose=dispute_evidence. Repita para cada arquivo — um file_* por
documento.
file criado — guarde o id:
3. Anexe os arquivos e preencha os textos
Aponte cadafile_* para o campo de arquivo correspondente de evidence e
preencha os campos de texto, com submit: false enquanto monta. O merge é
por campo; pra trocar um documento, envie o campo de novo com outro file_*;
pra limpar um campo, envie "".
file_* não pode ocupar dois campos.
4. Envie a defesa
Com pelo menos um campo de arquivo preenchido, envie a defesa. O request final pode completar os últimos campos e enviar na mesma chamada:dispute passa para under_review e evidence
fica somente leitura. O envio é único: depois de aceito, a defesa não pode
ser alterada nem reenviada. Os parâmetros, validações e erros completos estão
em Atualizar disputa.
Erros comuns do fluxo:
Webhooks que você deve tratar
Configure seu endpoint para receber estes eventos — o cadastro do endpoint, a verificação de assinatura e a reentrega estão em Entrega de webhooks:Chargefy for Platforms
As disputas nascem nas vendas das suas organizações filhas. O fluxo é o mesmo descrito acima, com duas diferenças:- Webhooks — nos eventos
charge.dispute.*entregues à plataforma, o campo top-levelorganizationidentifica a organização filha que originou a disputa. Use-o para rotear o caso no seu sistema. - Chamadas de API — envie o header
Organizationcom essa organização filha em todas as chamadas do fluxo, inclusive nos uploads dePOST /v1/files. Sem o header, a disputa da organização filha não é encontrada.
Checklist operacional
Antes de enviar a defesa — pelo Dashboard ou pela API —, confirme:- O prazo
evidence_details.due_byainda não expirou. - Todos os arquivos são PDF, JPG ou PNG, com até 7 MB cada.
- O conjunto preenchido respeita os limites somados: até 10 páginas e 6,5 MB de arquivos, e até 150.000 caracteres de texto.
- Pelo menos um campo de arquivo está preenchido — o envio exige arquivo.
- Os documentos estão legíveis, de preferência em orientação vertical.
- A defesa explica o contexto da compra, entrega, uso ou cancelamento.
- Seu sistema está preparado para receber
charge.dispute.closed.

