Se não tiver processado ainda na prefeitura vc precisa fazer um consulta de Situacao, caso a nota esteja processada vc faz uma consulta por RPS então ele te retorna o XML pronto.
Mas esse controle vc precisa implementar no seu sistema.
Por exemplo:
ACBrNFSe.ConsultarSituacao(CNPJ, INSC_MUNICIPAL,PROTOCOLO); if (ACBrNFSe.WebServices.ConsSitLote.Situacao = 4) then begin ACBrNFSe.ConsultarNFSeporRps(IntToStr(pRps), SERIE, TIPO, CNPJ, INSC_MUNICIPAL); ACBrNFSe.WebServices.ConsNfseRps.RetWS //esse é o XML de retorno na consulta
//aqui faço a impressao e salvo o XML na base. end;
Eu uso assim no meu sistema e funciona 100%. No meu caso criei um Status de diferente onde trato o retorno do acbr e vejo se o ACBrNFSe.NotasFiscais.Items[0].NFSe.Situacao for um dos abaixo
// 1 = Não Recebido // 2 = Não Processado // 3 = Processado com Erro // 4 = Processado com Sucesso
se não for processado com sucesso então bloqueio a nota para que nao posso mais ser alterada.
E se no teu caso a nota não estiver processada ainda ainda deixo bloqueada, caso for um erro de informacao faço um update na nota para aberto e mostro o erro.
e assim por diante.
Depois que implementei isso nunca mais me incomodei, ate por que tinha vezes que na Betha, Pronim demorava 1 hora para processar a nota...