Desfaz pagamento de fatura
POST /api/{userId}/establishment/{establishmentId}/invoices/undopayment/{clientId}/{invoiceDateTime}
Desfaz o pagamento de uma fatura paga, desativando a transação vinculada e retornando a fatura para situação pendente.
Parâmetros de rota
| Nome | Tipo | Descrição |
|---|---|---|
userId | number | Identificador do usuário |
establishmentId | number | Identificador do estabelecimento |
clientId | string | Identificador do cliente |
invoiceDateTime | string | Chave da fatura |
Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
userPassword | string | sim | Senha do usuário (validação interna) |
reason | string | sim | Motivo (registrado em histórico) |
Requisição
- Método:
POST - Path:
/api/\{userId\}/establishment/\{establishmentId\}/invoices/undopayment/\{clientId\}/\{invoiceDateTime\} - Headers:
Authorization,Accept: application/json,Content-Type: application/json
Formato da resposta (JSON)
- Sucesso (HTTP 200):
{ "response": "success", "data": { "msg": "...", "code": "..." } } - Erro (HTTP 400):
{ "response": "error", "data": { "msg": "...", "code": "..." } } - Não autorizado / permissão: Autorização
Nuâncias (o que é alterado)
Quando permitido, o fluxo normalmente:
- Desativa a transação principal do pagamento (
status = 0) - Desativa uma transação vinculada (ex.: taxa), quando existir
- Atualiza a fatura:
- limpa
transactionIdeuserOutputId - limpa
paymentDateTime(em geral vai para um “placeholder” interno) - muda
situationIdpara1(pendente)
- limpa
- Atualiza transações de OS (quando a fatura é pós paga e possui lançamentos), voltando-as para a situação “pendente” do fluxo interno.
- Pode cancelar NFSe vinculada (quando existir), antes de desativar transações.
Códigos de erro comuns
| Código | Quando ocorre |
|---|---|
06001 | Fatura não encontrada |
06023 | Fatura não possui transação (nada a desfazer) |
06024 | Transação está em situação não elegível para desfazer |
06026 | Falha no processo (ex.: erro transacional/rollback) |
80001 | Senha do usuário não informada |
80002 | Motivo não informado |
80003 | Senha inválida |
Exemplo de requisição
{
"userPassword": "minha-senha",
"reason": "Pagamento duplicado"
}