Pular para o conteúdo principal

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

NomeTipoDescrição
userIdnumberIdentificador do usuário
establishmentIdnumberIdentificador do estabelecimento
clientIdstringIdentificador do cliente
invoiceDateTimestringChave da fatura

Body (JSON)

CampoTipoObrigatórioDescrição
userPasswordstringsimSenha do usuário (validação interna)
reasonstringsimMotivo (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 transactionId e userOutputId
    • limpa paymentDateTime (em geral vai para um “placeholder” interno)
    • muda situationId para 1 (pendente)
  • 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ódigoQuando ocorre
06001Fatura não encontrada
06023Fatura não possui transação (nada a desfazer)
06024Transação está em situação não elegível para desfazer
06026Falha no processo (ex.: erro transacional/rollback)
80001Senha do usuário não informada
80002Motivo não informado
80003Senha inválida

Exemplo de requisição

{
"userPassword": "minha-senha",
"reason": "Pagamento duplicado"
}