- Estorna a cobrança original (sempre conclui o débito no saldo, mesmo que o PSP não exponha estorno por API).
- Debita do saldo disponível do estabelecimento a taxa de alerta de chargeback configurada para o merchant.
- Marca a cobrança como
pre_chargeback.
Esta rota é administrativa e exige a permissão
admin.chargeback_alerts.create. Não há equivalente público para o merchant.Quando usar
- O adquirente enviou um alerta de chargeback (programas Verifi/Ethoca, RDR, etc.) e você quer registrar internamente o estorno preventivo da transação.
- Você precisa cobrar do estabelecimento a taxa contratada por alerta recebido.
- Você quer que a cobrança apareça filtrada como
pre_chargebacknas telas de pedidos e relatórios de vendas.
pre_chargeback para chargeback no fluxo regular de contestação.
Pré-requisitos
- A cobrança deve estar com
status: "paid". - A cobrança não pode ter um alerta de chargeback já registrado (a operação é idempotente: tentar repetir devolve
422). - O estabelecimento precisa ter a taxa de alerta de chargeback configurada — diretamente ou via valor padrão do gateway. Sem configuração válida, a API retorna
400.
Configurar a taxa do estabelecimento
A taxa é armazenada emmerchant_settings com a chave chargeback_alert_fee. O conteúdo é um JSON com valor e moeda:
- Painel administrativo: abra a ficha do estabelecimento e use o modal Custo de alerta de chargeback para definir o valor.
- API administrativa: envie um
POST /v1/merchants/:id/settingscomname: "chargeback_alert_fee"econtentno formato acima.
default_merchant_settings com a mesma chave). Se nenhum dos dois existir, a chamada falha com CHARGEBACK_ALERT_FEE_NOT_CONFIGURED.
Gerar o alerta
admin.chargeback_alerts.create.
Body (JSON)
Response
HTTP 201 CreatedCódigos de erro
Fluxo de estorno manual (fallback)
Para PSPs que não expõem estorno por API, o serviço conclui o estorno no saldo da mesma forma (a cobrança volta pararefunded no ledger), mas adiciona uma entrada na fila de estornos manuais para que o time financeiro execute a devolução por fora.
Quando o response do alerta traz refund.mode: "manual", é necessário acompanhar e resolver a solicitação:
Listar solicitações pendentes
admin.manual_refund_requests.read.
Query params
A resposta inclui nome e e-mail do estabelecimento de cada item e um
pendingCount global, útil para badges de notificação no painel.
Resolver uma solicitação
admin.manual_refund_requests.update.
Body (JSON)
resolved_by_user_id, resolved_at e notes para auditoria. O estorno em si não é refeito ao resolver — o saldo já foi ajustado quando o alerta foi gerado; o endpoint apenas marca a solicitação como tratada.
Reflexos no extrato e nas listagens
Extrato (GET /v1/statement)
A taxa de alerta aparece como um lançamento dedicado:
movement_type:chargeback_alert_feereferenceType:chargeback_alert— também aceito como filtro no parâmetroreferenceTypedo/v1/statement.amount: valor negativo (débito) na moeda configurada.
Status de cobrança
Dois novos valores passam a circular em todas as APIs e webhooks que reportamChargeStatus:
Os dois status estão disponíveis no filtro
status do GET /v1/charges e nos relatórios de vendas, e disparam o evento charge.updated.
Resumo das permissões administrativas
Ao serem criadas via migração, essas permissões herdam automaticamente os grupos que já possuem
admin.refunds.manual.