Para realizar o cancelamento de uma NFS-e podemos utilizar três métodos disponíveis na interface do Manager Client, são eles:
- CancelarNFSePorHandle
- CancelarNFSePorNumero
- CancelarNFSePorRPS
No cancelamento existe uma particularidade, onde dependendo do padrão do município ou de alguma legislação especifica, vamos precisar informar um parâmetro extra para conseguir autorizar o cancelamento da NFS-e. Devido a esse motivo temos variações dos métodos de cancelamento, onde os mesmos além dos parâmetros normais recebem esse parâmetro extra. São eles:
- CancelarNFSePorHandleEx
- CancelarNFSePorNumeroEx
- CancelarNFSePorRPSEx
Todos utilizam a mesma interface de retorno. Seguem abaixo os detalhes dos métodos e de seus retornos.
Detalhes CancelarNFSePorHandle e CancelarNFSePorHandleEx
Função: Realiza o cancelamento de uma NFS-e utilizando o identificador do registro no banco de dados do Manager SaaS/EDoc.
Classe: TspdNFSeClientX
Método: CancelarNFSePorHandle
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aHandle | Texto | Sim |
Número do identificador único da NFS-e no banco de dados do Manager SaaS/EDoc.
Observação: o handle é informado no retorno do envio do RPS. |
Método: CancelarNFSePorHandleEx
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aHandle | Texto | Sim |
Número do identificador único da NFS-e no banco de dados do Manager SaaS/EDoc.
Observação: o handle é informado no retorno do envio do RPS. |
aParametroExtra | Texto | Sim |
Parâmetro extra requisitado pelo padrão da prefeitura. Exemplo: parametroExtra=Motivo de cancelamento de teste |
Detalhes CancelarNFSePorNumero e CancelarNFSePorNumeroEx
Função: Realiza o cancelamento de uma NFS-e através do número da NFS-e (fornecido após a prefeitura autorizar o RPS).
Classe: TspdNFSeClientX
Método: CancelarNFSePorNumero
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumNFSe | Texto | Sim |
Número da NFS-e autorizada retornado pelo WebService da prefeitura. |
Método: CancelarNFSePorNumeroEx
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumNFSe | Texto | Sim |
Número da NFS-e autorizada retornado pelo WebService da prefeitura. |
aParametroExtra | Texto | Sim |
Parâmetro extra requisitado pelo padrão da prefeitura. Exemplo: parametroExtra=Motivo de cancelamento de teste |
Detalhes CancelarNFSePorRPS e CancelarNFSePorRPS
Função: Realiza o cancelamento de uma NFS-e através dos dados do RPS de envio. O cancelamento só será realizado caso o RPS tenho sido autorizado.
Classe: TspdNFSeClientX
Método: CancelarNFSePorRPS
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumRPS | Texto | Sim |
Número do RPS enviado ao WebService da prefeitura. |
aSerie | Texto | Sim |
Série do RPS. |
aTipoRPS | Texto | Sim |
Tipo do RPS enviado. Exemplos: 1 - RPS (Padrão) 2 - Nota Fiscal Conjugada (Mista) 3 - Cupom |
Método: CancelarNFSePorRPSEx
Tipo Retorno: spdRetCancelamentoNFSeX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumRPS | Texto | Sim |
Número do RPS enviado ao WebService da prefeitura. |
aSerie | Texto | Sim |
Série do RPS. |
aTipoRPS | Texto | Sim |
Tipo do RPS enviado. Exemplos: 1 - RPS (Padrão) 2 - Nota Fiscal Conjugada (Mista) 3 - Cupom |
aParametroExtra | Texto | Sim |
Parâmetro extra requisitado pelo padrão da prefeitura. Exemplo: parametroExtra=Motivo de cancelamento de teste |
Delphi
procedure TfrmExemplo.btnCancelarNFSePorHandleClick(Sender: TObject);
var
_Retorno: spdRetCancelamentoNFSeX;
_Handle: string;
begin
if not InputQuery('Handle', 'Handle da Nota:', _Handle) then exit;
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorHandle(_Handle);
//Exibe o retorno no memo
memoRetorno.Clear;
if _Retorno.Status = Sucesso then
memoRetorno.Lines.Add('Mensagem: ' + _Retorno.Mensagem)
else
memoRetorno.Lines.Add('Erro: ' + _Retorno.NomeExcecao + ', ' + _Retorno.Mensagem);
end;
No exemplo acima utilizamos o método CancelarNFSePorHandle, mas o processo e o tipo de retorno é exatamente o mesmo para os demais métodos, bastando trocar a linha do exemplo onde o _Retorno recebe seu valor.
Para o método CancelarNFSePorHandleEx:
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorHandleEx(_Handle,'parametroExtra=Motivo de cancelamento de teste');
Para o método CancelarNFSePorNumero e CancelarNFSePorNumeroEx:
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorNumero(_NumeroNFSe);
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorNumeroEx(_NumeroNFSe,'parametroExtra=Motivo de cancelamento de teste');
Para o método CancelarNFSePorRPS e CancelarNFSePorRPSEx:
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorRPS(_NumRPS,_SerieRPS,_TipoRPS);
//Esse método cancela a nota através do Componente Manager Client
_Retorno := NFSe.CancelarNFSePorRPS(_NumRPS,_SerieRPS,_TipoRPS,'parametroExtra=Motivo de cancelamento de teste');
C#
private void CancelarNFSe_Click(object sender, EventArgs e)
{
spdRetCancelamentoNFSeX Retorno = null;
string Handle= InputBox("Handle da Nota", "Handle da Nota:", "");
if (Handle != "")
{
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorHandle(Handle);
//Exibe o retorno do memo
if (Retorno.Status == spdManagerClientX.TStatus.Sucesso)
memoRetorno.Text = "Mensagem: " + Retorno.Mensagem + "\n";
else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem;
}
}
Para o método CancelarNFSePorHandleEx:
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorHandle(Handle,"parametroExtra=Motivo de cancelamento de teste");
Para o método CancelarNFSePorNumero e CancelarNFSePorNumeroEx:
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorNumero(NumeroNFSe);
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorNumeroEx(NumeroNFSe,"parametroExtra=Motivo de cancelamento de teste");
Para o método CancelarNFSePorRPS e CancelarNFSePorRPSEx:
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorRPS(_NumRPS,_SerieRPS,_TipoRPS);
//Esse método cancela a NFSe através do Componente Manager Client
Retorno = NFSe.CancelarNFSePorRPSEx(_NumRPS,_SerieRPS,_TipoRPS,"parametroExtra=Motivo de cancelamento de teste");
Visual Basic 6
Private Sub btnCancelarNFSe_Click()
Dim Retorno As spdRetCancelamentoNFSeX
Dim Handle As String
Chave = InputBox("Handle da Nota:", "Handle da Nota", "")
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorHandle(Handle)
'Exibe o retorno do memo
If Retorno.Status = Sucesso Then
memoRetorno.Text = "Mensagem: " + Retorno.Mensagem + vbCrLf
Else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem
End If
End Sub
Para o método CancelarNFSePorHandleEx:
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorHandleEx(NumeroNFSe,"parametroExtra=Motivo de cancelamento de teste")
Para o método CancelarNFSePorNumero e CancelarNFSePorNumeroEx:
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorNumero(NumeroNFSe)
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorNumeroEx(NumeroNFSe,"parametroExtra=Motivo de cancelamento de teste")
Para o método CancelarNFSePorRPS e CancelarNFSePorRPSEx:
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorRPS(NumRPS,SerieRPS,TipoRPS)
'Esse método cancela a NFSe através do Componente Manager Client
Set Retorno = NFSe.CancelarNFSePorRPSEx(NumRPS,SerieRPS,TipoRPS,"parametroExtra=Motivo de cancelamento de teste")
Retorno
O tipo spdRetCancelamentoNFSeX possui os seguintes campos:
Campo | Tipo | Descrição |
Status | Constante | Retorna o status da operação: Sucesso ou Erro. |
NomeExcecao | Texto | Em caso de erro retorna a classe da Exception. |
Mensagem | Texto | Retorna a descrição da resposta do servidor. |
handle | Texto | Número do identificador único do registro da NFS-e no banco de dados do Manager SaaS/EDoc. |
NumeroNFSe | Texto | Número da NFS-e cancelada. |
NumeroProtocolo | Texto | Número do protocolo de cancelamento. |
Comentários
0 comentário
Por favor, entre para comentar.