====== Especificação técnica: Facture_e.dll ====== ===== Resumo ===== O pacote Facture_e.dll provê o acesso aos serviços de webservices da Sefaz, contemplando serviços para documentos fiscais tais como NF-e, NFC-e, MDF-e e CT-e. ===== Descrição ===== O pacote hoje é compilado no Visual Studio 2017 utilizando a versão 4.7.2 do .netframework. O protocolo de comunicação é o TLS 1.2. Ele implementa os webservices relacionados aos documentos fiscais utilizados pelo sistema Facture-e.exe. Os serviços do pacote são acessados pelo Delphi através de suas classes pai, ex: NFe.Enviar() cujo NFe é a classe liberada para acesso contendo o método Enviar que poderá ser utilizado por quem implementar a dll. ==== Serviços implementados ==== === NF-e/NFC-e === |< 100% 20% 70%>| ^ Serviço ^ Detalhes ^ |NfeConsultaCadastro | Serviço para consulta de CPF/CNPJ de empresas | |RecepcaoEvento | Serviço de recepção dos eventos da NF-e/NFC-e: cancelamento, correção, manifestação do destinatário e contingência. | |NfeInutilizacao | Serviço de inutilização de numeração de NF-e/NFC-e não utilizada. | |NfeConsultaProtocolo | Serviço de consulta de NF-e/NFC-e através do protocolo de autorização. | |NfeStatusServico | Serviço que verifica se o serviço de recepção está ativo para a UF informada. | |NFeAutorizacao | Serviço de autorização de NF-e/NFC-e. | |NFeRetAutorizacao | Serviço de retorno da autorização, através desse serviço o sistema verifica se a NF-e/NFC-e foi ou não autorizada. | |NFeDistribuicaoDFe | Serviço de distribuição de documentos fiscais aos participantes envolvidos no processo de autorização. | === CT-e/CT-e OS === |< 100% 20% 70%>| ^ Serviço ^ Detalhes ^ |CteRecepcao | Serviço de autorização do CT-e. | |CteRetRecepcao | Serviço de retorno da autorização. | |CteInutilizacao | Serviço de inutilização de numeração de CT-e não utilizado. | |CteConsultaProtocolo | Serviço de consulta de CT-e através do protocolo de autorização. | |CteStatusServico | Serviço que informa se o serviço de autorização está operante. | |CteRecepcaoEvento | Serviço de recepção de eventos do CT-e: cancelamento, correção, prestação de serviço em desacordo e contingência. | |CTeDistribuicaoDFe | Serviço de distribuição de documentos fiscais aos participantes envolvidos no processo de autorização. | |cteRecepcaoOS | Serviço de autorização síncrono de CT-e OS | === MDF-e === |< 100% 20% 70%>| ^ Serviço ^ Detalhes ^ |MDFeRecepcao | Serviço de autorização do MDF-e. | |MDFeRetRecepcao | Serviço de retorno da autorização. | |MDFeRecepcaoEvento | Serviço de recepção de eventos do MDF-e: cancelamento, encerramento e inclusão de condutor. | |MDFeConsulta | Serviço que retorna a situação do MDF-e na UF autorizadora. | |MDFeStatusServico | Serviço que informa se o serviço de autorização está operante. | |MDFeConsNaoEnc | Serviço que retorna uma lista de MDF-e ainda não encerrados. | ==== Métodos distribuídos ==== === NF-e === * public string **cancelar**(int ambiente, int codigoUF, string cnpj, int idLote, string chaveAcesso, string protocolo, string justificativa, string idCertificado) * public string **consultarCadastro**(string basePath, int codigoUF, string ie, string cnpj, string cpf, int ambiente, string idCertificado) * public string **consultarProcessamento**(int ambiente, int codigoUF, string numeroRecibo, string idCertificado) * public string **consultarSituacaoAtual**(int ambiente, int codigoUF, string chaveAcesso, string idCertificado) * public string **consultarStatusServico**(int ambiente, int codigoUF, string idCertificado) * public string **contingencia**(int idLote, int ambiente, int codigoUF, string cnpjEmitente, string ieEmitente, string versaoAplicativo, string chaveAcesso, string tipoNota, string ufDestinatario, string documentoDestinatario, string ieDestinatario, string valorNotaFiscal, string valorTotalICMS, string valorTotalICMSST, string idCertificado) * public string **corrigir**(int ambiente, int codigoUF, string cnpj, int idLote, string chaveAcesso, string correcao, int SeqEvento, string idCertificado) * public string **distribuicaoDFe**(string basePath, int ambiente, int codigoUF, int codigoUFOrgao, string idCertificado, string CNPJAutor, string NSU) * public string **downloadNFe**(string basePath, int ambiente, int codigoUF, int codigoUFOrgao, string idCertificado, string CNPJAutor, string NSU, string ChaveAcesso) * public string **enviarNFe**(int ambiente, int codigoUF, string caminhoXml, string idCertificado) * public string **getXMLNFe**(string pathXML, string NSU) * public string **inutilizarNumeracao**(int ambiente, int codigoUF, string cnpj, string modelo, string serie, int numeroInicial, int numeroFinal, string justificativa, string idCertificado) * public string **manifestacaoDestinatario**(int ambiente, int codigoUF, string cnpj, int idLote, string chaveAcesso, int tipoEvento, string justificativa, string idCertificado) * public string **validarXml**(string caminhoXml, string caminhoXsd) === NFC-e === * public string **cancelar**(int ambiente, int codigoUF, string cnpj, int idLote, string chaveAcesso, string protocolo, string justificativa, string idCertificado) * public string **consultarProcessamento**(int ambiente, int codigoUF, string numeroRecibo, string idCertificado) * public string **consultarSituacaoAtual**(int ambiente, int codigoUF, string chaveAcesso, string idCertificado) * public string **consultarStatusServico**(int ambiente, int codigoUF, string idCertificado) * public string **enviarNFCe**(int ambiente, int codigoUF, string caminhoXml, string idCertificado, string idToken, string Token) * public string **getURLConsultaNFCe**(int codigoUF, int ambiente) * public string **inutilizarNumeracao**(int ambiente, int codigoUF, string cnpj, string modelo, string serie, int numeroInicial, int numeroFinal, string justificativa, string idCertificado) === CT-e/CT-e OS === * public string **cancelar**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, int sequencialEvento, string idEvento, string protocolo, string justificativa, string idCertificado) * public string **consultarProcessamento**(int ambiente, int codigoUF, string numeroRecibo, string idCertificado) * public string **consultarSituacaoAtual**(int ambiente, int codigoUF, string chaveAcesso, string idCertificado) * public string **consultarStatusServico**(int ambiente, int codigoUF, string idCertificado) * public string **contingencia**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, int sequencialEvento, string idEvento, string ((Xml específico do evento de contingência))xmlevEPECCTe, string idCertificado) * public string **corrigir**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, int sequencialEvento, string idEvento, string ((Xml específico do evento de correção))xmlInfCorrecao, string idCertificado) * public string **distribuicaoDFe**(string basePath, int ambiente, int codigoUF, int codigoUFOrgao, string idCertificado, string CNPJAutor, string NSU) * public string **enviarCTe**(int ambiente, int codigoUF, string caminhoXml, string idCertificado) * public string **enviarCTeOS**(int ambiente, int codigoUF, string caminhoXml, string idCertificado) * public string **getXMLCTe**(string pathXML, string NSU) * public string **inutilizarNumeracao**(int ambiente, int codigoUF, string cnpj, string modelo, string serie, int numeroInicial, int numeroFinal, string justificativa, string idCertificado) * public string **PrestacaoServicoDesacordo**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, int sequencialEvento, string idEvento, string observacaoTomador, string idCertificado) * public string **validarXml**(string caminhoXml, string caminhoXsd) === MDF-e === * public string **cancelar**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, string protocolo, string justificativa, string idCertificado) * public string **consultarNaoEncerrados**(int ambiente, int codigoUF, string cnpj, string idCertificado) * public string **consultarProcessamento**(string caminhoXMLEnvio, int ambiente, int codigoUF, string numeroRecibo, string idCertificado) * public string **consultarSituacaoAtual**(int ambiente, int codigoUF, string chaveAcesso, string idCertificado) * public string **consultarStatusServico**(int ambiente, int codigoUF, string idCertificado) * public string **encerrar**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, string protocolo, DateTime dataEncerramento, string ufEncerramento, int codigoMunicipioEncerramento, string idCertificado) * public string **enviar**(int ambiente, int codigoUF, string caminhoXml, string idCertificado) * public string **incluirCondutor**(int ambiente, int codigoUF, string cnpj, string chaveAcesso, int nSeqEvento, string nomeCondutor, string cpfCondutor, string idCertificado) ==== Certificação digital ==== O pacote Facture_e.dll também é responsável pela obtenção dos dados da certificação digital da empresa, é através desses dados que o xml dos documentos fiscais são assinados e enviados para a Sefaz. A ddl também provê um serviço de seleção de certificação digital, pois o usuário pode ter mais que um certificado, e através do serviço de seleção o sistema consegue identificar o certificado que será utilizado para assinar um documento fiscal. ===== Observações ===== ~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~