# Estorno e Regras de Desfazimento

<section class="capitulo" id="bkmrk-em-alguns-casos%2C-o-o">Em alguns casos, o operador pode cancelar um pagamento já feito — mas existem regras de prazo e tipo de pagamento que precisam ser respeitadas.

<section class="para-todos">## Em linguagem simples

Se o operador cometeu um erro ou o cliente desistiu, é possível **desfazer o pagamento** — mas com estas regras:

<table><thead><tr><th>Regra</th><th>Explicação</th></tr></thead><tbody><tr><td>**Prazo de 24 horas**</td><td>Só dá para desfazer pagamentos feitos nas últimas 24 horas.</td></tr><tr><td>**Pagamento Instantâneo não pode**</td><td>Pagamentos feitos por Pagamento Instantâneo não aparecem na lista de desfazimento.</td></tr><tr><td>**Só pagamentos confirmados**</td><td>Apenas pagamentos com situação "efetivado" (confirmado).</td></tr><tr><td>**Registra saída no caixa**</td><td>O estorno gera uma despesa no Ponto de Venda (dinheiro "sai" do caixa).</td></tr></tbody></table>

Passos para o operador:

1. Consultar o Cadastro de Pessoa Física do cliente.
2. Abrir a lista de pagamentos que podem ser desfeitos.
3. Escolher o pagamento e confirmar o desfazimento.
4. O sistema cancela na Credsystem e registra a despesa no caixa.

</section>![Fluxo de estorno](https://kb.illimitar.pro/uploads/images/gallery/2026-06/embedded-image-k4gbbf8l.png)

*Figura 9 — Estorno: lista filtrada → desfazimento na Credsystem → atualização local → despesa no Ponto de Venda.*

<section class="para-ti">## Detalhes para Tecnologia da Informação

### Constante de prazo

`PRAZO_DESFAZIMENTO_HORAS = 24` em `88e14c87/controle.php`

### Query de listagem (listarPagamentosCredsystemIntegrador)

- `situacao = 'EFETIVADO'`
- `pagamento <> 'PIX'`
- `data_criacao >= NOW() - 24 HOURS`
- Limite: 2000 registros por Cadastro de Pessoa Física

### desfazerPagamento()

1. Valida prazo e existência do registro em `cred_pagamento`
2. Chama `api_integracao_credsystem::desfazer()` → `desfazimento`
3. Atualiza `cred_pagamento.situacao` para `ESTORNADO`
4. `registrarDespesa()` → `vendarapida::sangriasuprimento` (DESPESA, usa `idNaturezaDespesa`)
5. Auditoria: `credsystem-estorno-pagamento`

### Estorno automático em falha

No fluxo `pagamento()` (981bfb94), se `estornarEmFalha=true` (default) e a efetivação falhar após pré-autorização, o sistema chama `desfazer` automaticamente.

</section></section>