Ir para conteúdo
  • Cadastre-se

dev botao

Como interceptar EACBrNFeException p/exibir outra Mensagem?


FocusRJ
  • Este tópico foi criado há 4060 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Amigos,

como devo proceder para interceptar as mensagens de exception do Acbr e mostrar uma mensagem de minha autoria?

Uma outra coisa que me fez ter interesse nessa possibilidade é ter o poder de caso ocorra uma duplicidade de nfe o emissor automaticamente incrementa o número da nfe e tenta enviá-lo novamente sem que apareça a mensagem de duplicidade ao usuário.

Teria essa possibilidade? Alguém teria alguma informação que seria contra esse tipo de utilização?

Att.

Rômulo Mayworm

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

Boa Tarde Romulo...

Aqui eu faço o seguinte...criei uma função que le o retorno e ja trata a mensagem

caso a mensagem não for encontrada eu mostro o erro que deu.

function fncRetornoMotivoNfe(pXMotivo: integer): string;

var

Retorno: string;

begin

case pXMotivo of

100: Retorno := 'Motivo: 100 -> Autorizado o uso da NF-e.';

101: Retorno := 'Motivo: 101 -> Cancelamento de NF-e homologado.';

102: Retorno := 'Motivo: 102 -> Inutilização de número homologado.';

103: Retorno := 'Motivo: 103 -> Lote recebido com sucesso.';

104: Retorno := 'Motivo: 104 -> Lote processado.';

105: Retorno := 'Motivo: 105 -> Lote em processamento.';

106: Retorno := 'Motivo: 106 -> Lote não localizado.';

107: Retorno := 'Motivo: 107 -> Serviço em Operação.';

108: Retorno := 'Motivo: 108 -> Serviço Paralisado Momentaneamente (curto prazo).';

109: Retorno := 'Motivo: 109 -> Serviço Paralisado sem Previsão.';

110: Retorno := 'Motivo: 110 -> Uso Denegado.';

111: Retorno := 'Motivo: 111 -> Consulta cadastro com uma ocorrência.';

112: Retorno := 'Motivo: 112 -> Consulta cadastro com mais de uma ocorrência.';

128: Retorno := 'Motivo: 128 -> Lote de Evento Processado';

135: Retorno := 'Motivo: 135 -> Evento registrado e vinculado a NF-e';

136: Retorno := 'Motivo: 136 -> Evento registrado, mas não vinculado a NF-e';

201: Retorno := 'Motivo: 201 -> Rejeição: O numero máximo de numeração de NF-e a inutilizar ultrapassou o limite.';

202: Retorno := 'Motivo: 202 -> Rejeição: Falha no reconhecimento da autoria ou integridade do arquivo digital.';

203: Retorno := 'Motivo: 203 -> Rejeição: Emissor não habilitado para emissão da NF-e.';

204: Retorno := 'Motivo: 204 -> Rejeição: Duplicidade de NF-e.';

205: Retorno := 'Motivo: 205 -> Rejeição: NF-e está denegada na base de dados da SEFAZ.';

206: Retorno := 'Motivo: 206 -> Rejeição: NF-e já está inutilizada na Base de dados da SEFAZ.';

207: Retorno := 'Motivo: 207 -> Rejeição: CNPJ do emitente inválido.';

208: Retorno := 'Motivo: 208 -> Rejeição: CNPJ do destinatário inválido.';

209: Retorno := 'Motivo: 209 -> Rejeição: IE do emitente inválida.';

210: Retorno := 'Motivo: 210 -> Rejeição: IE do destinatário inválida.';

211: Retorno := 'Motivo: 211 -> Rejeição: IE do substituto inválida.';

212: Retorno := 'Motivo: 212 -> Rejeição: Data de emissão NF-e posterior a data de recebimento.';

213: Retorno := 'Motivo: 213 -> Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital.';

214: Retorno := 'Motivo: 214 -> Rejeição: Tamanho da mensagem excedeu o limite estabelecido.';

215: Retorno := 'Motivo: 215 -> Rejeição: Falha no schema XML.';

216: Retorno := 'Motivo: 216 -> Rejeição: Chave de Acesso difere da cadastrada.';

217: Retorno := 'Motivo: 217 -> Rejeição: NF-e não consta na base de dados da SEFAZ.';

218: Retorno := 'Motivo: 218 -> Rejeição: NF-e já esta cancelada na base de dados da SEFAZ.';

219: Retorno := 'Motivo: 219 -> Rejeição: Circulação da NF-e verificada.';

220: Retorno := 'Motivo: 220 -> Rejeição: NF-e autorizada há mais de 7 dias (168 horas).';

221: Retorno := 'Motivo: 221 -> Rejeição: Confirmado o recebimento da NF-e pelo destinatário.';

222: Retorno := 'Motivo: 222 -> Rejeição: Protocolo de Autorização de Uso difere do cadastrado.';

223: Retorno := 'Motivo: 223 -> Rejeição: CNPJ do transmissor do lote difere do CNPJ do transmissor da consulta.';

224: Retorno := 'Motivo: 224 -> Rejeição: A faixa inicial é maior que a faixa final.';

225: Retorno := 'Motivo: 225 -> Rejeição: Falha no Schema XML do lote de NFe.';

226: Retorno := 'Motivo: 226 -> Rejeição: Código da UF do Emitente diverge da UF autorizadora.';

227: Retorno := 'Motivo: 227 -> Rejeição: Erro na Chave de Acesso - Campo Id – falta a literal NFe.';

228: Retorno := 'Motivo: 228 -> Rejeição: Data de Emissão muito atrasada.';

229: Retorno := 'Motivo: 229 -> Rejeição: IE do emitente não informada.';

230: Retorno := 'Motivo: 230 -> Rejeição: IE do emitente não cadastrada.';

231: Retorno := 'Motivo: 231 -> Rejeição: IE do emitente não vinculada ao CNPJ.';

232: Retorno := 'Motivo: 232 -> Rejeição: IE do destinatário não informada.';

233: Retorno := 'Motivo: 233 -> Rejeição: IE do destinatário não cadastrada.';

234: Retorno := 'Motivo: 234 -> Rejeição: IE do destinatário não vinculada ao CNPJ.';

235: Retorno := 'Motivo: 235 -> Rejeição: Inscrição SUFRAMA inválida.';

236: Retorno := 'Motivo: 236 -> Rejeição: Chave de Acesso com dígito verificador inválido.';

237: Retorno := 'Motivo: 237 -> Rejeição: CPF do destinatário inválido.';

238: Retorno := 'Motivo: 238 -> Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente.';

239: Retorno := 'Motivo: 239 -> Rejeição: Cabeçalho - Versão do arquivo XML não suportada.';

240: Retorno := 'Motivo: 240 -> Rejeição: Cancelamento/Inutilização - Irregularidade Fiscal do Emitente.';

241: Retorno := 'Motivo: 241 -> Rejeição: Um número da faixa já foi utilizado.';

242: Retorno := 'Motivo: 242 -> Rejeição: Cabeçalho - Falha no Schema XML.';

243: Retorno := 'Motivo: 243 -> Rejeição: XML Mal Formado.';

244: Retorno := 'Motivo: 244 -> Rejeição: CNPJ do Certificado Digital difere do CNPJ da Matriz e do CNPJ do Emitente.';

245: Retorno := 'Motivo: 245 -> Rejeição: CNPJ Emitente não cadastrado.';

246: Retorno := 'Motivo: 246 -> Rejeição: CNPJ Destinatário não cadastrado.';

247: Retorno := 'Motivo: 247 -> Rejeição: Sigla da UF do Emitente diverge da UF autorizadora.';

248: Retorno := 'Motivo: 248 -> Rejeição: UF do Recibo diverge da UF autorizadora.';

249: Retorno := 'Motivo: 249 -> Rejeição: UF da Chave de Acesso diverge da UF autorizadora.';

250: Retorno := 'Motivo: 250 -> Rejeição: UF diverge da UF autorizadora.';

251: Retorno := 'Motivo: 251 -> Rejeição: UF/Município destinatário não pertence a SUFRAMA.';

252: Retorno := 'Motivo: 252 -> Rejeição: Ambiente informado diverge do Ambiente de recebimento.';

253: Retorno := 'Motivo: 253 -> Rejeição: Digito Verificador da chave de acesso composta inválida.';

254: Retorno := 'Motivo: 254 -> Rejeição: NF-e complementar não possui NF referenciada.';

255: Retorno := 'Motivo: 255 -> Rejeição: NF-e complementar possui mais de uma NF referenciada.';

256: Retorno := 'Motivo: 256 -> Rejeição: Uma NF-e da faixa já está inutilizada na Base de dados da SEFAZ.';

257: Retorno := 'Motivo: 257 -> Rejeição: Solicitante não habilitado para emissão da NF-e.';

258: Retorno := 'Motivo: 258 -> Rejeição: CNPJ da consulta inválido.';

259: Retorno := 'Motivo: 259 -> Rejeição: CNPJ da consulta não cadastrado como contribuinte na UF.';

260: Retorno := 'Motivo: 260 -> Rejeição: IE da consulta inválida.';

261: Retorno := 'Motivo: 261 -> Rejeição: IE da consulta não cadastrada como contribuinte na UF.';

262: Retorno := 'Motivo: 262 -> Rejeição: UF não fornece consulta por CPF.';

263: Retorno := 'Motivo: 263 -> Rejeição: CPF da consulta inválido.';

264: Retorno := 'Motivo: 264 -> Rejeição: CPF da consulta não cadastrado como contribuinte na UF.';

265: Retorno := 'Motivo: 265 -> Rejeição: Sigla da UF da consulta difere da UF do Web Service.';

266: Retorno := 'Motivo: 266 -> Rejeição: Série utilizada não permitida no Web Service.';

267: Retorno := 'Motivo: 267 -> Rejeição: NF Complementar referencia uma NF-e inexistente.';

268: Retorno := 'Motivo: 268 -> Rejeição: NF Complementar referencia uma outra NF-e Complementar.';

269: Retorno := 'Motivo: 269 -> Rejeição: CNPJ Emitente da NF Complementar difere do CNPJ da NF Referenciada.';

270: Retorno := 'Motivo: 270 -> Rejeição: Código Município do Fato Gerador: dígito inválido.';

271: Retorno := 'Motivo: 271 -> Rejeição: Código Município do Fato Gerador: difere da UF do emitente.';

272: Retorno := 'Motivo: 272 -> Rejeição: Código Município do Emitente: dígito inválido.';

273: Retorno := 'Motivo: 273 -> Rejeição: Código Município do Emitente: difere da UF do emitente.';

274: Retorno := 'Motivo: 274 -> Rejeição: Código Município do Destinatário: dígito inválido.';

275: Retorno := 'Motivo: 275 -> Rejeição: Código Município do Destinatário: difere da UF do Destinatário.';

276: Retorno := 'Motivo: 276 -> Rejeição: Código Município do Local de Retirada: dígito inválido.';

277: Retorno := 'Motivo: 277 -> Rejeição: Código Município do Local de Retirada: difere da UF do Local de Retirada.';

278: Retorno := 'Motivo: 278 -> Rejeição: Código Município do Local de Entrega: dígito inválido.';

279: Retorno := 'Motivo: 279 -> Rejeição: Código Município do Local de Entrega: difere da UF do Local de Entrega.';

280: Retorno := 'Motivo: 280 -> Rejeição: Certificado Transmissor inválido.';

281: Retorno := 'Motivo: 281 -> Rejeição: Certificado Transmissor Data Validade.';

282: Retorno := 'Motivo: 282 -> Rejeição: Certificado Transmissor sem CNPJ.';

283: Retorno := 'Motivo: 283 -> Rejeição: Certificado Transmissor - erro Cadeia de Certificação.';

284: Retorno := 'Motivo: 284 -> Rejeição: Certificado Transmissor revogado.';

285: Retorno := 'Motivo: 285 -> Rejeição: Certificado Transmissor difere ICP-Brasil.';

286: Retorno := 'Motivo: 286 -> Rejeição: Certificado Transmissor erro no acesso a LCR.';

287: Retorno := 'Motivo: 287 -> Rejeição: Código Município do FG - ISSQN: dígito inválido.';

288: Retorno := 'Motivo: 288 -> Rejeição: Código Município do FG - Transporte: dígito inválido.';

289: Retorno := 'Motivo: 289 -> Rejeição: Código da UF informada diverge da UF solicitada.';

290: Retorno := 'Motivo: 290 -> Rejeição: Certificado Assinatura inválido.';

291: Retorno := 'Motivo: 291 -> Rejeição: Certificado Assinatura Data Validade.';

292: Retorno := 'Motivo: 292 -> Rejeição: Certificado Assinatura sem CNPJ.';

293: Retorno := 'Motivo: 293 -> Rejeição: Certificado Assinatura - erro Cadeia de Certificação.';

294: Retorno := 'Motivo: 294 -> Rejeição: Certificado Assinatura revogado.';

295: Retorno := 'Motivo: 295 -> Rejeição: Certificado Assinatura difere ICP-Brasil.';

296: Retorno := 'Motivo: 296 -> Rejeição: Certificado Assinatura erro no acesso a LCR.';

297: Retorno := 'Motivo: 297 -> Rejeição: Assinatura difere do calculado.';

298: Retorno := 'Motivo: 298 -> Rejeição: Assinatura difere do padrão do Projeto.';

299: Retorno := 'Motivo: 299 -> Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8.';

301: Retorno := 'Motivo: 301 -> Uso Denegado: Irregularidade fiscal do emitente.';

401: Retorno := 'Motivo: 401 -> Rejeição: CPF do remetente inválido.';

402: Retorno := 'Motivo: 402 -> Rejeição: XML da área de dados com codificação diferente de UTF-8.';

403: Retorno := 'Motivo: 403 -> Rejeição: O grupo de informações da NF-e avulsa é de uso exclusivo do Fisco.';

404: Retorno := 'Motivo: 404 -> Rejeição: Uso de prefixo de namespace não permitido.';

405: Retorno := 'Motivo: 405 -> Rejeição: Código do país do emitente: dígito inválido.';

406: Retorno := 'Motivo: 406 -> Rejeição: Código do país do destinatário: dígito inválido.';

407: Retorno := 'Motivo: 407 -> Rejeição: O CPF só pode ser informado no campo emitente para a NF-e avulsa.';

409: Retorno := 'Motivo: 409 -> Rejeição: Campo cUF inexistente no elemento nfeCabecMsg do SOAP Header.';

410: Retorno := 'Motivo: 410 -> Rejeição: UF informada no campo cUF não é atendida pelo Web Service.';

411: Retorno := 'Motivo: 411 -> Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP Header.';

420: Retorno := 'Motivo: 420 -> Rejeição: Cancelamento para NF-e já cancelada.';

450: Retorno := 'Motivo: 450 -> Rejeição: Modelo da NF-e diferente de 55.';

451: Retorno := 'Motivo: 451 -> Rejeição: Processo de emissão informado inválido.';

452: Retorno := 'Motivo: 452 -> Rejeição: Tipo Autorizador do Recibo diverge do Órgão Autorizador.';

453: Retorno := 'Motivo: 453 -> Rejeição: Ano de inutilização não pode ser superior ao Ano atual.';

454: Retorno := 'Motivo: 454 -> Rejeição: Ano de inutilização não pode ser inferior a 2006.';

478: Retorno := 'Motivo: 478 -> Rejeição: Local da entrega não informado para faturamento direto de veículos novos.';

489: Retorno := 'Motivo: 489 -> Rejeição: CNPJ informado inválido (DV ou zeros)';

490: Retorno := 'Motivo: 490 -> Rejeição: CPF informado inválido (DV ou zeros)';

491: Retorno := 'Motivo: 491 -> Rejeição: O tpEvento informado inválido';

492: Retorno := 'Motivo: 492 -> Rejeição: O verEvento informado inválido';

493: Retorno := 'Motivo: 493 -> Rejeição: Evento não atende o Schema XML específico';

494: Retorno := 'Motivo: 494 -> Rejeição: Chave de Acesso inexistente';

501: Retorno := 'Motivo: 501 -> Rejeição: NF-e autorizada há mais de 30 dias (720 horas)';

502: Retorno := 'Motivo: 502 -> Rejeição: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes.';

503: Retorno := 'Motivo: 503 -> Rejeição: Série utilizada fora da faixa permitida no SCAN (900-999).';

504: Retorno := 'Motivo: 504 -> Rejeição: Data de Entrada/Saída posterior ao permitido.';

505: Retorno := 'Motivo: 505 -> Rejeição: Data de Entrada/Saída anterior ao permitido.';

506: Retorno := 'Motivo: 506 -> Rejeição: Data de Saída menor que a Data de Emissão.';

507: Retorno := 'Motivo: 507 -> Rejeição: O CNPJ do destinatário/remetente não deve ser informado em operação com o exterior.';

508: Retorno := 'Motivo: 508 -> Rejeição: O CNPJ com conteúdo nulo só é válido em operação com exterior.';

509: Retorno := 'Motivo: 509 -> Rejeição: Informado código de município diferente de “9999999” para operação com o exterior.';

510: Retorno := 'Motivo: 510 -> Rejeição: Operação com Exterior e Código País destinatário é 1058 (Brasil) ou não informado.';

511: Retorno := 'Motivo: 511 -> Rejeição: Não é de Operação com Exterior e Código País destinatário difere de 1058 (Brasil).';

512: Retorno := 'Motivo: 512 -> Rejeição: CNPJ do Local de Retirada inválido.';

513: Retorno := 'Motivo: 513 -> Rejeição: Código Município do Local de Retirada deve ser 9999999 para UF retirada = EX.';

514: Retorno := 'Motivo: 514 -> Rejeição: CNPJ do Local de Entrega inválido.';

515: Retorno := 'Motivo: 515 -> Rejeição: Código Município do Local de Entrega deve ser 9999999 para UF entrega = EX.';

516: Retorno := 'Motivo: 516 -> Rejeição: Falha no schema XML – inexiste a tag raiz esperada para a mensagem.';

517: Retorno := 'Motivo: 517 -> Rejeição: Falha no schema XML – inexiste atributo versao na tag raiz da mensagem.';

518: Retorno := 'Motivo: 518 -> Rejeição: CFOP de entrada para NF-e de saída.';

519: Retorno := 'Motivo: 519 -> Rejeição: CFOP de saída para NF-e de entrada.';

520: Retorno := 'Motivo: 520 -> Rejeição: CFOP de Operação com Exterior e UF destinatário difere de EX.';

521: Retorno := 'Motivo: 521 -> Rejeição: CFOP não é de Operação com Exterior e UF destinatário é EX.';

522: Retorno := 'Motivo: 522 -> Rejeição: CFOP de Operação Estadual e UF emitente difere UF destinatário.';

523: Retorno := 'Motivo: 523 -> Rejeição: CFOP não é de Operação Estadual e UF emitente igual a UF destinatário.';

524: Retorno := 'Motivo: 524 -> Rejeição: CFOP de Operação com Exterior e não informado NCM.';

525: Retorno := 'Motivo: 525 -> Rejeição: CFOP de Importação e não informado dados da DI.';

526: Retorno := 'Motivo: 526 -> Rejeição: CFOP de Exportação e não informado Local de Embarque.';

527: Retorno := 'Motivo: 527 -> Rejeição: Operação de Exportação com informação de ICMS incompatível.';

528: Retorno := 'Motivo: 528 -> Rejeição: Valor do ICMS difere do produto BC e Alíquota.';

529: Retorno := 'Motivo: 529 -> Rejeição: NCM de informação obrigatória para produto tributado pelo IPI.';

530: Retorno := 'Motivo: 530 -> Rejeição: Operação com tributação de ISSQN sem informar a Inscrição Municipal.';

531: Retorno := 'Motivo: 531 -> Rejeição: Total da BC ICMS difere do somatório dos itens.';

532: Retorno := 'Motivo: 532 -> Rejeição: Total do ICMS difere do somatório dos itens.';

533: Retorno := 'Motivo: 533 -> Rejeição: Total da BC ICMS-ST difere do somatório dos itens.';

534: Retorno := 'Motivo: 534 -> Rejeição: Total do ICMS-ST difere do somatório dos itens.';

535: Retorno := 'Motivo: 535 -> Rejeição: Total do Frete difere do somatório dos itens.';

536: Retorno := 'Motivo: 536 -> Rejeição: Total do Seguro difere do somatório dos itens.';

537: Retorno := 'Motivo: 537 -> Rejeição: Total do Desconto difere do somatório dos itens.';

538: Retorno := 'Motivo: 538 -> Rejeição: Total do IPI difere do somatório dos itens.';

539: Retorno := 'Motivo: 539 -> Rejeição: Duplicidade de NF-e, com diferença na Chave de Acesso.';

540: Retorno := 'Motivo: 540 -> Rejeição: CPF do Local de Retirada inválido';

541: Retorno := 'Motivo: 541 -> Rejeição: CPF do Local de Entrega inválido.';

542: Retorno := 'Motivo: 542 -> Rejeição: CNPJ do Transportador inválido.';

543: Retorno := 'Motivo: 543 -> Rejeição: CPF do Transportador inválido.';

544: Retorno := 'Motivo: 544 -> Rejeição: IE do Transportador inválida.';

545: Retorno := 'Motivo: 545 -> Rejeição: Falha no schema XML – versão informada na versaoDados do SOAPHeader diverge da versão da mensagem.';

546: Retorno := 'Motivo: 546 -> Rejeição: Erro na Chave de Acesso – Campo Id – falta a literal NFe.';

547: Retorno := 'Motivo: 547 -> Rejeição: Dígito Verificador da Chave de Acesso da NF-e Referenciada inválido.';

548: Retorno := 'Motivo: 548 -> Rejeição: CNPJ da NF referenciada inválido.';

549: Retorno := 'Motivo: 549 -> Rejeição: CNPJ da NF referenciada de produtor inválido.';

550: Retorno := 'Motivo: 550 -> Rejeição: CPF da NF referenciada de produtor inválido.';

551: Retorno := 'Motivo: 551 -> Rejeição: IE da NF referenciada de produtor inválido.';

552: Retorno := 'Motivo: 552 -> Rejeição: Dígito Verificador da Chave de Acesso do CT-e Referenciado inválido.';

553: Retorno := 'Motivo: 553 -> Rejeição: Tipo autorizador do recibo diverge do Órgão Autorizador.';

554: Retorno := 'Motivo: 554 -> Rejeição: Série difere da faixa 0-899.';

555: Retorno := 'Motivo: 555 -> Rejeição: Tipo autorizador do protocolo diverge do Órgão Autorizador.';

556: Retorno := 'Motivo: 556 -> Rejeição: Justificativa de entrada em contingência não deve ser informada para tipo de emissão normal.';

557: Retorno := 'Motivo: 557 -> Rejeição: A Justificativa de entrada em contingência deve ser informada.';

558: Retorno := 'Motivo: 558 -> Rejeição: Data de entrada em contingência posterior a data de emissão.';

559: Retorno := 'Motivo: 559 -> Rejeição: UF do Transportador não informada.';

560: Retorno := 'Motivo: 560 -> Rejeição: CNPJ base do emitente difere do CNPJ base da primeira NF-e do lote recebido.';

561: Retorno := 'Motivo: 561 -> Rejeição: Mês de Emissão informado na Chave de Acesso difere do Mês de Emissão da NF-e.';

562: Retorno := 'Motivo: 562 -> Rejeição: Código Numérico informado na Chave de Acesso difere do Código Numérico da NF-e.';

563: Retorno := 'Motivo: 563 -> Rejeição: Já existe pedido de Inutilização com a mesma faixa de inutilização.';

564: Retorno := 'Motivo: 564 -> Rejeição: Total do Produto / Serviço difere do somatório dos itens.';

565: Retorno := 'Motivo: 565 -> Rejeição: Falha no schema XML – inexiste a tag raiz esperada para o lote de NF-e.';

567: Retorno := 'Motivo: 567 -> Rejeição: Falha no schema XML – versão informada na versaoDados do SOAPHeader diverge da versão do lote de NF-e.';

568: Retorno := 'Motivo: 568 -> Rejeição: Falha no schema XML – inexiste atributo versao na tag raiz do lote de NF-e.';

572: Retorno := 'Motivo: 572 -> Rejeição: Erro Atributo ID do evento não corresponde a concatenação dos campos (ID+ tpEvento + chNFe + nSeqEvento)';

573: Retorno := 'Motivo: 573 -> Rejeição: Duplicidade de Evento';

574: Retorno := 'Motivo: 574 -> Rejeição: O autor do evento diverge do emissor da NF-e';

575: Retorno := 'Motivo: 575 -> Rejeição: O autor do evento diverge do destinatário da NF-e';

576: Retorno := 'Motivo: 576 -> Rejeição: O autor do evento não é um órgão autorizado a gerar o evento';

577: Retorno := 'Motivo: 577 -> Rejeição: A data do evento não pode ser menor que a data de emissão da NF-e';

578: Retorno := 'Motivo: 578 -> Rejeição: A data do evento não pode ser maior que a data do processamento';

579: Retorno := 'Motivo: 579 -> Rejeição: A data do evento não pode ser menor que a data de autorização para NF-e não emitida em contingência';

580: Retorno := 'Motivo: 580 -> Rejeição: O evento exige uma NF-e autorizada';

587: Retorno := 'Motivo: 587 -> Rejeição: Usar somente o namespace padrão da NF-e';

588: Retorno := 'Motivo: 588 -> Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem';

594: Retorno := 'Motivo: 594 -> Rejeição: O número de seqüencia do evento informado é maior que o permitido';

//597: Retorno := 'Rejeição: CFOP de Importação e não informado dados de IPI';

//599: Retorno := 'Rejeição: CFOP de Importação e não informado dados de II';

595: Retorno := 'Motivo: 595 -> Rejeição: A versão do leiaute da NF-e utilizada não é mais válida';

596: Retorno := 'Motivo: 596 -> Rejeição: Ambiente de homologação indisponível para recepção de NF-e da versão 1.10.';

597: Retorno := 'Motivo: 597 -> Rejeição: NF-e emitida em ambiente de homologação com CNPJ do destinatário diferente de 99999999000191';

598: Retorno := 'Motivo: 598 -> Rejeição: NF-e emitida em ambiente de homologação com Razão Social do destinatário diferente de NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL';

599: Retorno := 'Motivo: 599 -> Rejeição: NF-e emitida em ambiente de homologação com IE do destinatário diferente de vazio';

601: Retorno := 'Motivo: 601 -> Rejeição: Total do II difere do somatório dos itens';

602: Retorno := 'Motivo: 602 -> Rejeição: Total do PIS difere do somatório dos itens sujeitos ao ICMS';

603: Retorno := 'Motivo: 603 -> Rejeição: Total do COFINS difere do somatório dos itens sujeitos ao ICMS';

604: Retorno := 'Motivo: 604 -> Rejeição: Total do vOutro difere do somatório dos itens';

605: Retorno := 'Motivo: 605 -> Rejeição: Total do vServ difere do somatório do vProd dos itens sujeitos ao ISSQN';

606: Retorno := 'Motivo: 606 -> Rejeição: Total do vBC do ISS difere do somatório dos itens';

607: Retorno := 'Motivo: 607 -> Rejeição: Total do ISS difere do somatório dos itens';

608: Retorno := 'Motivo: 608 -> Rejeição: Total do PIS difere do somatório dos itens sujeitos ao ISSQN';

609: Retorno := 'Motivo: 609 -> Rejeição: Total do COFINS difere do somatório dos itens sujeitos ao ISSQN';

610: Retorno := 'Motivo: 610 -> Rejeição: Total da NF difere do somatório dos Valores compõe o valor Total da NF.';

611: Retorno := 'Motivo: 611 -> Rejeição: cEAN inválido';

612: Retorno := 'Motivo: 612 -> Rejeição: cEANTrib inválido';

613: Retorno := 'Motivo: 613 -> Rejeição: Chave de Acesso difere da existente em BD';

614: Retorno := 'Motivo: 614 -> Rejeição: Chave de Acesso inválida (Código UF inválido)';

615: Retorno := 'Motivo: 615 -> Rejeição: Chave de Acesso inválida (Ano < 05 ou Ano maior que Ano corrente)';

616: Retorno := 'Motivo: 616 -> Rejeição: Chave de Acesso inválida (Mês < 1 ou Mês > 12)';

617: Retorno := 'Motivo: 617 -> Rejeição: Chave de Acesso inválida (CNPJ zerado ou dígito inválido)';

618: Retorno := 'Motivo: 618 -> Rejeição: Chave de Acesso inválida (modelo diferente de 55)';

619: Retorno := 'Motivo: 619 -> Rejeição: Chave de Acesso inválida (número NF = 0)';

621: Retorno := 'Motivo: 621 -> Rejeição: CPF Emitente não cadastrado';

622: Retorno := 'Motivo: 622 -> Rejeição: IE emitente não vinculada ao CPF';

623: Retorno := 'Motivo: 623 -> Rejeição: CPF Destinatário não cadastrado';

624: Retorno := 'Motivo: 624 -> Rejeição: IE Destinatário não vinculada ao CPF';

625: Retorno := 'Motivo: 625 -> Rejeição: Inscrição SUFRAMA deve ser informada na venda com isenção para ZFM';

626: Retorno := 'Motivo: 626 -> Rejeição: O CFOP de operação isenta para ZFM deve ser 6109 ou 6110';

627: Retorno := 'Motivo: 627 -> Rejeição: O valor do ICMS desonerado deve ser informado';

628: Retorno := 'Motivo: 628 -> Rejeição: Total da NF superior ao valor limite estabelecido pela SEFAZ [Limite]';

629: Retorno := 'Motivo: 629 -> Rejeição: Valor do Produto difere do produto Valor Unitário de Comercialização e Quantidade Comercial';

630: Retorno := 'Motivo: 630 -> Rejeição: Valor do Produto difere do produto Valor Unitário de Tributação e Quantidade Tributável';

635: Retorno := 'Motivo: 635 -> Rejeição: NF-e com mesmo número e série já transmitida e aguardando processamento';

999: Retorno := '';

else

Retorno := '';

end;

Result := Retorno;

end;

  • Curtir 1

Att.:

W7 Soluções
Ricardo Mendes
Analista/Programador
Skype: ricardo_w7
[email protected]

Link para o comentário
Compartilhar em outros sites

Boa tarde Ricardo,

pelo pouco que vi, se não me engano o próprio ACBR já trata isso, o meu problema está no ACBRNFeWebServices na:

function TWebServices.Envia(ALote: String): Boolean;

begin

  self.Enviar.FLote := ALote;

  if not(Self.Enviar.Executar) then

     begin

       if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then

          TACBrNFe( FACBrNFe ).OnGerarLog(Self.Enviar.Msg);

       raise EACBrNFeException.Create(Self.Enviar.Msg);

     end;


  Self.Retorno.Recibo := Self.Enviar.Recibo;

  if not(Self.Retorno.Executar) then

     begin

       if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then

          TACBrNFe( FACBrNFe ).OnGerarLog(Self.Retorno.Msg);

       raise EACBrNFeException.Create(Self.Retorno.Msg);//cai nessa exceção em caso de duplicidade e mostra na tela a EXCEPTION

     end;

  Result := true;

end;

Que cai na raise EACBRNFeException.Create... caso o envio da NFe resulte em algum erro, tomemos por exemplo uma DUPLICIDADE de NFe, e nessa chamada aparece a mensagem da Exception gerada na tela, e eu queria tratar isso de forma que sem que essa mensagem apareça ao usuário, se no Retorno.Msg, que é chamado em caso de duplicidade, estiver presente a palavra 'DUPLICIDADE' o programa, de forma automática, acresceria o sequencial numérico da NFe e tentaria enviar a mesma novamente com um novo número até que seu Status fosse de autorizado.

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

é só no seu software vc tratar o erro:


try

   acbrnfe.envia(nrlote)

except on E:Exception do

    showmessage('erro :'e.message) //<-

end; 

Mas é meio loucura isso que vc quer fazer de ficar incrementando o número da nf até que ela seja enviada.

Isso deve ser controlado pelo seu software no momento em que a nota é gravada.

  • Curtir 1

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

Link para o comentário
Compartilhar em outros sites

Mas já está assim e não cai na exceção do meu!!! INCRÍVEL rs

try

      try          

        Transmitida := ACBrNFe1.Enviar(0);

        TpAmbiente := TpAmbToStr(ACBrNFe1.Configuracoes.WebServices.Ambiente);

        if (MessageBox(0, 'Deseja salvar o DANFE em *.pdf?', 'Atenção', MB_ICONQUESTION or MB_YESNO) = idYes) then

        begin

          ACBrNFe1.NotasFiscais.ImprimirPDF;

        end;

      except

        on E: Exception do begin

          ShowMessage(RetornaErroNFe(ACBrNFe1.WebServices.Retorno.cStat)+'.'+#13+#10+E.Message);

          Exit;

        end;

      end;

    finally

      SalvaRetorno;

    end;
Da forma que está, debuguei e na linha
Transmitida := ACBrNFe1.Enviar(0);

vai pros códigos do ACBR, aparece a mensagem de duplicidade daquele RAISE que postei acima e cai no meu finally! Ocorrendo somente o SalvaRetorno!!!

Att.

Rômulo Mayworm

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

O problema, que estou tendo, é que o código do ACBRNFeWebServices força a entrada da mensagem


     if not(Self.Retorno.Executar) then

     begin

       if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then

          TACBrNFe( FACBrNFe ).OnGerarLog(Self.Retorno.Msg);

       raise EACBrNFeException.Create(Self.Retorno.Msg);//cai nessa exceção em caso de duplicidade e mostra na tela a EXCEPTION

     end;

Me retorna a mensagem de ERRO, no caso da duplicidade, dessa forma eu queria tratar essa duplicidade sem que o usuário fosse notificado.

Não seria interessante o ACBRNFE ter os eventos para os erros? Conforme o ACBRECF, onErrorXXX...?

Att.

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...

Olá amigo.

Sei que o tópico já está morto e enterrado, mas li seu post e consegui uma solução para o caso da duplicidade. Pode ser que ainda ajude vc ou outras pessoas, portanto vou postar o que eu fiz:

// Tento enviar a NFe

Try

ACBrNFe1.Enviar(Lote); // Vc controla os lotes a sua maneira, pode usar 0 se quiser

Except on E: Exception do // Erro

begin

if (Pos('Duplicidade', E.Message)<>0) then // Pego a exceção pela mensagem de erro e nao pelo cStat, pq nao vem preenchido

begin

// Ai eh soh tratar o procedimento de duplicidade. No meu caso, consulto a NFe para ter os dados de recibo e dps

// gravo no meu banco de dados, mas pode-se tratar da maneira que quiser.

MessageBox(Handle,'O sistema da SEFAZ informa que a nota fiscal XXXXXXXX' está em duplicidade! O sistema irá consultar os dados de entrega e em seguida marcá-la como TRANSMITIDA.'), 'Informação', MB_ICONINFORMATION);

if (ACBrNFe1.Consultar) then

// Faça seu tratamento de duplicidade aqui!!

else

raise Exception.Create('Nota fiscal em duplicidade. Falha na tentativa de recuperar os dados da NF-e...')

end else begin

raise Exception.Create(E.Message); // Aqui existe essa exception para os outros erros.

end;

end;

End;

Isto está funcionando perfeitamente pra mim. Acontece as vezes, de o webservices de retorno de consulta demorar a responder se a nota foi autorizada ou não, aí o ACBr não complementa o XML com os dados de autorização, o que leva o usuário a acreditar que a nota não foi transmitida. O usuário, então, clica no botão "Enviar NFe" novamente e aparece o erro de duplicidade. A solução é, quando enviar a NFe novamente e gerar a exceção, pegar a msg de duplicidade e tratá-la.

Espero ter ajudado.

[ ] 's

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Sei que o tópico é antigo, mas estou com o mesmo problema, no meu caso deixei a UF do transportador em branco, ele gera e valida a o xml, inclusive transmite, mas no retorno ele gera a exception e par, nao faz mais nada apos o codigo  pNFe.Enviar(pLote, false) .. queri eu tratar isso... assim que descobrir como posto aqui... seria tão simples se ele não forçasse a exceção já que temos a tag cStat...

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4060 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.