Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 05-12-2025 em todas as áreas

  1. O que vai mudar nas cidades que eu atendo com a Reforma Tributária? A partir de 2026, com a necessidade prevista na Lei Complementar 214/2025 de que as informações do IBS e da CBS sejam informadas na NFSe, os municípios terão que escolher entre: Aderir o Padrão Nacional na íntegra para emissão da nota. Continuar usando o provedor que já atende a cidade, mas agora com uma API própria deles que recepciona o arquivo XML no leiaute do padrão nacional. Continuar usando o provedor que já atende a cidade, mas agora com o leiaute do arquivo XML alterado para receber as novas informações que ele precisa. O ACBr atente a Reforma Tributária? Sim, o leiaute do padrão nacional já foi adequado para gerar as novas tags previstas pela Nota Técnica Nº004. Para os casos das cidades que continuarão usando o leiaute próprio, as soluções estão sendo adequadas gradativamente conforme a obtenção das informações. A situação pode ser acompanhada neste tópico. A resposta anterior menciona Nota Técnica Nº 004, mas já existe a 005, ela não vai ser adequada? Conforme trecho presente na própria versão 005, para 2026, os campos que entrarão em vigor no ambiente de homologação e de produção são os da versão 004. Eu já posso testar a Reforma Tributária com o Padrão Nacional? Sim. Na verdade, conforme noticiado neste tópico, você deve usar a versão 1.01 do Layout do Padrão Nacional desde o dia 10/12/2025 no ambiente de homologação. Do contrário vai receber o erro: Erro(s): Código : RNG6110 Mensagem: Falha Schema Xml Correção: The 'versao' attribute is invalid - The value '1.00' is invalid according to its datatype 'http://www.sped.fazenda.gov.br/nfse:TVerNFSe' - The Pattern constraint failed. Por que o XML gerado com as informações da Reforma Tributária não tem campos como NFSe/infNFSe/IBSCBS/valores/uf/pIBSUF, NFSe/infNFSe/IBSCBS/valores/mun/pIBSMun e NFSe/infNFSe/IBSCBS/valores/fed/pCBS? Observe que os exemplos mencionados fazem parte do grupo infNFSe, ou seja, eles fazem parte da NFSe e não do DPS. O componente gera e envia para a API do Padrão Nacional o XML do DPS. O XML da NFSe é gerado pela própria API do Padrão Nacional ao converter o DPS enviado. Em suma, é a API do Padrão Nacional que gera essas informações e não o contribuinte. O contribuinte precisa se preocupar em preencher apenas as informações do DPS. Eu consigo testar com o Padrão Nacional para adiantar minha integração? Para comunicar com a API do Padrão Nacional, um dos seguintes critérios precisa ser atendido: O prestador de serviços precisa ser um MEI. O município precisa ter aderido a emissão usando o Padrão Nacional na íntegra. Caso nenhuma dessas condições tenham sido atendidas, ao tentar comunicar com o padrão nacional receberá rejeições e erros advindos da API. Para os casos em que vai continuar com o Provedor usando a API própria, o que devo fazer? Caso o provedor já tenha sido adequado no ACBr, os passos para testar são: Abra o arquivo ACBrNFSeXServicos.ini e busque pela seção do município que vai testar, para este exemplo vamos considerar Cerro Branco/RS: [4305132] Nome=Cerro Branco UF=RS Provedor=Pronim Versao=2.03 ProRecepcionar=http://cerrobranco.govbr.cloud/nfse.portal.integracao/services.svc ; URLs para utilizar a API própria do provedor que atende o Padrão Nacional ;Versao=1.01 ;Params=APIPropria: ;ProRecepcionar= ;HomRecepcionar=https://reformatributaria.govbr.cloud/nfse.api.teste/NotaNacional/EnviarSincrono Comente as informações atuais e remova os comentários relacionados a APIPropria: [4305132] Nome=Cerro Branco UF=RS Provedor=Pronim ;Versao=2.03 ;ProRecepcionar=http://cerrobranco.govbr.cloud/nfse.portal.integracao/services.svc ; URLs para utilizar a API própria do provedor que atende o Padrão Nacional Versao=1.01 Params=APIPropria: ProRecepcionar= HomRecepcionar=https://reformatributaria.govbr.cloud/nfse.api.teste/NotaNacional/EnviarSincrono Execute o arquivo Compilas_RES.bat localizado na pasta dos fontes o ACBrNFSeX, reinstale o ACBr e faça um build da aplicação OU coloque o arquivo ACBrNFSeXServicos.ini modificado junto do seu .EXE; Com essa modificação, o demo do ACBrNFSeX, por exemplo, passa a mostrar a seguinte informação: Preencha as informações relacionadas aos novos campos da Reforma Tributária e teste o envio. Eu utilizo a ACBrLibNFSe e/ou o ACBrMonitorPLUS, existe algum exemplo de arquivo INI que eu possa usar para testar? Os campos da Reforma Tributária são lidos da mesma forma no INI, então mesmo que o objetivo seja comunicar com provedores que terão API própria, um bom ponto de partida é adicionar no arquivo INI que já utiliza os campos da Reforma Tributária que existem neste modelo.
    3 pontos
  2. Olá comunidade ! Foi publicado no 02/12/2025, pelo comitê gestor do IBS, o Comunicado Conjunto CGIBS/RFB 01/2025 trazendo diversas orientações e esclarecimentos sobre as obrigatoriedades para o início de 2026 além de outros pontos. Obrigações a partir de 2026 A partir de 1º de janeiro de 2026, os contribuintes estarão obrigados a: Emitir documentos fiscais eletrônicos com destaque da CBS e do IBS, individualizados por operação, conforme as regras e leiautes definidos em Notas Técnicas específicas de cada documento; Apresentar, quando disponibilizadas, as Declarações dos Regimes Específicos – DeRE, conforme as regras e leiautes definidos em Documento Técnico específico de cada documento; Apresentar, quando disponibilizadas, as declarações e/ou documentos fiscais de plataformas digitais, conforme as regras e leiautes definidos em Documento Técnico específico de cada documento; A partir de julho de 2026: As pessoas físicas que sejam contribuintes da CBS e do IBS, deverão se inscrever no CNPJ. A inscrição no CNPJ não transforma a pessoa física em jurídica, servindo apenas para facilitar a apuração do IBS e da CBS. Obrigações Acessórias A partir de Janeiro de 2026 os seguintes documentos fiscais eletrônicos deverão ser emitidos com destaque da CBS e do IBS: Nota Fiscal Eletrônica - NF-e; Nota Fiscal de Consumidor Eletrônica - NFC-e; Conhecimento de Transporte Eletrônico - CT-e; Conhecimento de Transporte Eletrônico - Outros Serviços - CT-e OS; Nota Fiscal de Serviço Eletrônica - NFS-e; Nota Fiscal de Serviço Eletrônica de Exploração de Via - NFS-e Via; Nota Fiscal Fatura de Serviços de Comunicação Eletrônica - NFCom; Nota Fiscal de Energia Elétrica Eletrônica - NF3e; Bilhete de Passagem Eletrônico - BP-e; e Bilhete de Passagem Eletrônico Transporte Metropolitano - BP-e TM; Leiautes definidos sem data de vigência determinada NF-ABI (Nota Fiscal de Alienação de Bens Imóveis); NFAg (Nota Fiscal de Água e Saneamento); BP-e Aéreo (Bilhete de Passagem Aéreo); A data de vigência será definida em ato conjunto ou documento técnico a ser publicado. Leiautes em construção A NF-e Gás (Nota Fiscal de Gás); A Declaração dos Regimes Específicos - DeRE, em construção para os regimes de Instituições Financeiras, Planos de Assistência à Saúde, Concurso de Prognóstico, Administração de Consórcio, Seguro e Previdência; Dispensa do recolhimento em 2026 mediante cumprimento das obrigações acessórias Considerando que o ano de 2026 será o ano de teste da CBS e do IBS, o contribuinte que emitir documentos fiscais ou declaração de regimes específicos observando as normas e notas vigentes, conforme item 3, estará dispensado de recolhimento do IBS e da CBS. Também estarão dispensados de recolhimento do IBS e da CBS os contribuintes para os quais não haja obrigação acessória definida. Fundos de Compensação de Benefícios Fiscais A partir de janeiro de 2026, os titulares de benefícios onerosos relativos ao ICMS poderão apresentar requerimentos para os procedimentos de habilitação a futuros direitos de compensações de que trata o art. 384 da Lei Complementar nº 214, de 2025, por meio do e-CAC, preenchendo formulário eletrônico que estará disponível no SISEN, conforme ato normativo a ser emitido. Deverão ser preenchidos tantos requerimentos quantos forem os benefícios passíveis de compensação usufruídos pelo requerente em cada programa de concessão de benefícios onerosos.
    3 pontos
  3. Bom dia Galera isso aqui é mais uma auxilio eu queria colocar um exemplo de código meu que eu fiz em deno com AcbrLib "loader.ts" /* Essa biblitoeca é responsável pela comunicação com a ACBrLib. */ import * as path from "jsr:@std/path"; export const libSymbols = { NFSE_Inicializar: { parameters: ["buffer", "buffer"], result: "i32" }, NFSE_Finalizar: { parameters: [], result: "i32" }, NFSE_ConfigGravarValor: { parameters: ["buffer", "buffer", "buffer"], result: "i32"}, NFSE_ConfigLerValor: { parameters: ["buffer", "buffer", "buffer", "buffer"], result: "i32"}, NFSE_ConfigGravar: {parameters: [ "buffer"], result: "i32"}, NFSE_UltimoRetorno: { parameters: ["buffer", "buffer"], result: "i32" }, NFSE_CarregarINI: { parameters: ["buffer"], result: "i32" }, NFSE_CarregarXML: { parameters: ["buffer"], result: "i32" }, NFSE_ObterXml: { parameters: ["i32", "buffer", "buffer"], result: "i32"}, NFSE_ObterIni: { parameters: ["i32", "buffer", "buffer"], result: "i32"}, NFSE_ObterXmlRps: { parameters: ["i32", "buffer", "buffer"], result: "i32"}, NFSE_LimparLista: { parameters: [], result: "i32" }, NFSE_Emitir: { parameters: ["buffer", "i32", "i32", "buffer", "buffer"], result: "i32" } } as const satisfies Deno.ForeignLibraryInterface; type typLibNFSe = typeof libSymbols; class loadlibNFSe{ static init() { //Métodos da Biblioteca const __prefixDir : string = path.dirname(path.fromFileUrl(import.meta.url)) as string const libPath = path.join(__prefixDir, 'libnfse.so') const NFSE = Deno.dlopen(libPath, libSymbols); return NFSE; } } export { loadlibNFSe }; export type { typLibNFSe }; "fiscalModulo.ts" import * as path from "jsr:@std/path"; // ACBr FFI import { loadlibNFSe, typLibNFSe } from "./NFSe_ACBrLib/loader.ts" const __prefixDir : string = path.dirname(path.fromFileUrl(import.meta.url)) as string class controleFiscal { CONFIG_INI = path.resolve(__prefixDir, 'config.ini'); NFSE: Deno.DynamicLibrary<typLibNFSe> = loadlibNFSe.init(); init(){ /* Inicia as Bibliotecas, esse metodo só pode ser acionado uma unica vez. */ this.initNFSe(); this.initConfig(); return this; } initNFSe(){ /* inicia a configuração da Lib ACbre NFE */ // this.NFSE = loadlibNFSe.init(); this.NFSE.symbols.NFSE_LimparLista(); const ret : number = this.NFSE.symbols.NFSE_Inicializar( this.txt(this.CONFIG_INI), this.txt("") ) if(ret != 0){ throw Error("não foi possível iniciar a bilbioteca NFe") } } initConfig(){ /* Efetua as configurações iniciais que definem boa parte do funcionamento da bibliote Acbr. */ const pathLog = path.resolve(Deno.cwd(), 'log') const ambiente = String(Number((Deno.env.get("AMBIENTE_SEFAZ")!)) -1) // // Esquemas de XML // const pathEsquemaNFe = path.resolve(__prefixDir, 'NFe_ACBrLib', 'Schemas') // const pathEsquemaMDFe = path.resolve(__prefixDir, 'MDFe_ACBrLib', 'Schemas') const pathEsquemaNFSe = path.resolve(__prefixDir, 'NFSe_ACBrLib', 'Schemas') // const pathEsquemaCTe = path.resolve(__prefixDir, 'CTe_ACBrLib', 'Schemas') // // Arquivo de Urls do Serviço // const path_nf_ser = path.join(path.resolve(__prefixDir, 'NFe_ACBrLib'), 'ACBrNFeServicos.ini') // const path_mdfe_ser = path.join(path.resolve(__prefixDir, 'MDFe_ACBrLib'), 'ACBrMDFeServicos.ini') const path_nfse_ser = path.join(path.resolve(__prefixDir, 'NFSe_ACBrLib'), 'ACBrNFSeServicos.ini') // const path_cte_ser = path.join(path.resolve(__prefixDir, 'CTe_ACBrLib'), 'ACBrCTeServicos.ini') // // Resposta do Tipo INI para evitar problemas com conversão XML // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Principal"), this.txt("TipoResposta"), this.txt("0")) // // Codificação UTF - 8 // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Principal"), this.txt("CodificacaoResposta"), this.txt("0")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Principal"), this.txt("LogNivel"), this.txt("4")) // 4 retorno total // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Principal"), this.txt("LogPath"), this.txt(pathLog)) // // Informações referentes ao sistema & SoftHouse // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Sistema"), this.txt("Nome"), this.txt("DH CONSULTING - HERA")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Sistema"), this.txt("Versao"), this.txt("0.1")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("Sistema"), this.txt("Descricao"), this.txt("Versão de Beta, Em Desenvolvimento")) // // Prenchimento referente a biblioteca NFE // // https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("FormaEmissao"), this.txt(Deno.env.get("AMB_EMI_NFE") || "0")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("SalvarGer"), this.txt("0")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("ExibirErroSchema"), this.txt("1")) // // Problemas de SSL geralmente estão relacionados a essa configuração // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("SSLType"), this.txt("5")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("PathSchemas"), this.txt(pathEsquemaNFe)) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("IniServicos"), this.txt(path_nf_ser)) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("SalvarArq"), this.txt("0")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("Ambiente"), this.txt(ambiente)) // // Desabilita o Digvalue para consulta // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("NFe"), this.txt("ValidarDigest"), this.txt("0")) // // Carregar Certificado // // https://acbr.sourceforge.io/ACBrLib/DFe.html // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("SSLCryptLib"), this.txt("1")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("UF"), this.txt(Deno.env.get("UF_EMIT") || "")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("SSLHttpLib"), this.txt("3")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("SSLXmlSignLib"), this.txt("4")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("TimeZone.Modo"), this.txt("2")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DFe"), this.txt("TimeZone.Str"), this.txt("-03:00")) // //DANFe // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DANFENFe"), this.txt("ExpandirDadosAdicionaisAuto"), this.txt("1")) // this.NFE.symbols.NFE_ConfigGravarValor(this.txt("DANFENFe"), this.txt("LarguraCodProd"), this.txt("100")) // this.NFE.symbols.NFE_ConfigGravar(this.txt(this.CONFIG_INI)); // //this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTe"), this.txt("FormaEmissao"), this.txt("0")) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt("SalvarGer"), this.txt("0")) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt("ExibirErroSchema"), this.txt("1")) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt("SSLType"), this.txt("5")) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt('PathSchemas'), this.txt(pathEsquemaCTe)) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt('IniServicos'), this.txt(path_cte_ser)) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt("SalvarArq"), this.txt("0")) // this.CTE.symbols.CTE_ConfigGravarValor(this.txt("CTE"), this.txt("Ambiente"), this.txt(ambiente)) // this.CTE.symbols.CTE_ConfigGravar(this.txt(this.CONFIG_INI)); // Prenchimento referente a biblioteca NFSe // https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca22.html //this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("FormaEmissao"), this.txt("0")) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("SalvarGer"), this.txt("0")) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("ExibirErroSchema"), this.txt("1")) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("SSLType"), this.txt("5")) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("PathSchemas"), this.txt(pathEsquemaNFSe)) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("IniServicos"), this.txt(path_nfse_ser)) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("SalvarArq"), this.txt("0")) this.NFSE.symbols.NFSE_ConfigGravarValor(this.txt("NFSe"), this.txt("Ambiente"), this.txt(ambiente)) this.NFSE.symbols.NFSE_ConfigGravar(this.txt(this.CONFIG_INI)); // // Prenchimento referente a biblioteca MDFe // // https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca14.html // //this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("FormaEmissao"), this.txt("0")) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("SalvarGer"), this.txt("0")) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("ExibirErroSchema"), this.txt("1")) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("SSLType"), this.txt("5")) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt('PathSchemas'), this.txt(pathEsquemaMDFe)) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt('IniServicos'), this.txt(path_mdfe_ser)) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("SalvarArq"), this.txt("0")) // this.MDFE.symbols.MDFE_ConfigGravarValor(this.txt("MDFe"), this.txt("Ambiente"), this.txt(ambiente)) // this.MDFE.symbols.MDFE_ConfigGravar(this.txt(this.CONFIG_INI)); // // Congigurações do Email // // https://acbr.sourceforge.io/ACBrLib/Geral.html // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Nome"), this.txt("HERA Messageria")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Servidor"), this.txt(Deno.env.get("EMAIL_SERVIDOR") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Conta"), this.txt(Deno.env.get("EMAIL_ENDERECO") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Usuario"), this.txt(Deno.env.get("EMAIL_USUARIO") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Senha"), this.txt(Deno.env.get("EMAIL_SENHA") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("Porta"), this.txt(Deno.env.get("EMAIL_PORTA") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("SSL"), this.txt(Deno.env.get("EMAIL_SSL") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("TLS"), this.txt(Deno.env.get("EMAIL_TLS") || "")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("IsHTML"), this.txt("1")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("SegundoPlano"), this.txt("0")) // this.MAIL.symbols.MAIL_ConfigGravarValor(this.txt("Email"), this.txt("SSLType"), this.txt(Deno.env.get("EMAIL_SSLTYPE") || "")) // this.MAIL.symbols.MAIL_ConfigGravar(this.txt(this.CONFIG_INI)); } ptrDinamicCall(libName: string, method: string = "NFE_ObterXml", params: Array<number | string | Uint8Array> = []){ /* - Metodo de chamada dinamica para funções com passagem de parametro de string os parametros de String ponteiro e int Ponteiro sempre são os ultimos Args: Parms: - libName: o atributo lib a ser chamada como (NFE e MDFE) - method: qual metodo do lib vai ser chamada - params: os parametros passados tirando sResposta e esTamanho. Return: retornará a string já convertida de sResposta */ // por segurança para o metodo para uper case libName = libName.toUpperCase(); // faz a conversão de parametros (se necessário) const args = [ ] params.forEach(param => { switch(typeof param){ case "string": args.push(this.enc.encode(param + '\0')) break; default: args.push(param) } }); const DEFAULT_LENGTH = 2792; // Tem que ser divisivel por 8 const outPtrs = new ArrayBuffer(8 + DEFAULT_LENGTH); // A soma deve dar um valor sem 0 na casa decimal final? const sResposta = new Uint8Array(outPtrs, 8, DEFAULT_LENGTH); const esTamanho = new Uint8Array(outPtrs, 0, 8); // aloca o valor default para os espaço tamanho do buffer const esTamanhoView = new Uint16Array(outPtrs, 0, 4); esTamanhoView[0] = DEFAULT_LENGTH; args.push(sResposta) args.push(esTamanho) type typSymbolFFICall = { symbols : { [Key: string]: CallableFunction } } const libModule = this[libName as keyof controleFiscal] as typSymbolFFICall; if(libModule!.symbols[method](...args) == 0){ // Algo deu errado const esTamanhoValue = esTamanhoView[0]; if (esTamanhoValue > DEFAULT_LENGTH) { // a Biblioteca Precisa de mais memoria // NOTA: supeito que apesar de es tamanho estar em outro buffer // ele precisa desse +64 bits para contablizar o ponteiro de estamanho // sem esse +8 a bilbioteca gera erros como "maloc sized" const realloc = new Uint8Array(esTamanhoValue + 8); libModule.symbols[`${libName}_UltimoRetorno`](realloc, esTamanho); return new TextDecoder().decode(realloc); } else { return new TextDecoder().decode(sResposta.subarray(0, esTamanhoValue)); } }else{ return ""; // Sem dados } } ambienteEmissao(libName: string, ambiente: string){ // Define o ambiente de Envio // # Sefaz // 1 Produção 2 - Homologação // # ACBrLib // 0 - Produção 1 - Homologação type typSymbolFFICall = { symbols : { [Key: string]: CallableFunction } } const tpAmb: string = (ambiente == "1" ? "0" : "1"); // Caso o tipo seja o mesmo não será necessário alterar if (tpAmb != this.ptrDinamicCall( libName, `${libName.toUpperCase()}_ConfigLerValor`, [this.txt(libName), this.txt("Ambiente")] )){ const libModule = this?.[libName.toUpperCase() as keyof controleFiscal] as typSymbolFFICall; libModule.symbols[`${libName.toUpperCase()}_ConfigGravarValor`](this.txt(libName), this.txt("Ambiente"), this.txt(tpAmb)) libModule.symbols[`${libName.toUpperCase()}_ConfigGravar`](this.txt(this.CONFIG_INI)); } } /* converte string para o formato que FFI da chamada da bilvioteca entenda */ private enc = new TextEncoder() txt = (txt : string) => this.enc.encode(txt + '\0') } export { controleFiscal }; "main.ts" import { controleFiscal } from './fiscalModulo.ts' async function main() { const ctl = new controleFiscal().init(); // Teste de Criação ctl.NFSE.symbols.NFSE_LimparLista(); ctl.NFSE.symbols.NFSE_CarregarINI(ctl.txt('./NFSE_CREATE.ini')); const xml = ctl.ptrDinamicCall( "NFSE", "NFSE_ObterXml" [0] ) ctl.ptrDinamicCall( "NFSE", "NFSE_ObterXml" [0] ) } main; aqui deixo uma referencia que pode ser util para parametrização, Foreign Function Interface (FFI) o método ptrDinamicCall é para facilitar retornar os parâmetros
    2 pontos
  4. Olá comunidade ! Nos últimos dias temos recebido múltiplos relatos de problemas com o retorno que devolve um PDF do DANFSe no leiaute do Padrão Nacional. No componente: ACBrNFSeX1.ObterDANFSE(xChaveNFSe); No ACBrMonitorPLUS: NFSe.ObterDANFSE; Na ACBrLib: NFSE_ObterDANFSE; Todos os relatos tem em comum o mesmo comportamento, o PDF salvo é um arquivo com somente 1 kb e ao consultar o JSON que foi devolvido pela API do Padrão Nacional com a string que gera o PDF, seu varia entre: { "tipoAmbiente": "", "versaoAplicativo": "", "dataHoraProcessamento": "", "idDps": "", "chaveAcesso": "", "nfseXmlGZipB64": "", "erros": [ { "mensagem": "", "codigo": "E9999", "descricao": "<html><body><h1>503 Service Unavailable</h1>\nNo server is available to handle this request.\n</body></html>\n", "complemento": "" } ] } OU { "tipoAmbiente": "", "versaoAplicativo": "", "dataHoraProcessamento": "", "idDps": "", "chaveAcesso": "", "nfseXmlGZipB64": "", "erros": [ { "mensagem": "", "codigo": "E9999", "descricao": "<html><body><h1>502 Bad Gateway</h1>\nThe server returned an invalid or incomplete response.\n</body></html>\n", "complemento": "" } ] } Tudo indica ser um problema no próprio end-point /danfse/{chaveAcesso} na API. Buscando informações a respeito, uma justificativa encontrada no Fórum da NFSe é a de que muitos robôs que estão baixando o DANFSe em massa estão tornando o end-point instável.
    2 pontos
  5. Isso, nosso erro parece ser diferente do de vocês, nosso erro era : No final, estávamos configurando para usar o Geral.Layout do padrão nacional em vez do layout do provedor mesmo. Depois desse erro aumentamos o tempo de retorno para não termos Timeout e fomos corrigindo de acordo com o retorno do provedor.
    1 ponto
  6. Só para avisar a todos, conseguimos gerar uma nota com esse provedor para Mogi das Cruzes, porém foi necessário alterar o componenete PadraoNacional.GravarXml.pas. Foi comentado : Dentro de TNFSeW_PadraoNacional.GerarXMLInfNFSe: //Result.AppendChild(AddNode(tcStr, '#1', 'tpAmb', 1, 1, 1, // TipoAmbienteToStr(Ambiente), '')); E dentro de TNFSeW_PadraoNacional.GerarXMLPrestador: //Result.AppendChild(AddNode(tcStr, '#1', 'xNome', 1, 300, 0, // NFSe.Prestador.RazaoSocial, '')); Como seria possível integrar essas mudanças dentro da ACBr de forma que para esse munícipio esses campos do XML não fossem gerados, mas não alterasse para os outros municípios que usam o Padrão Nacional ? Deixo também em anexo como o retorno com sucesso é estruturado. No programa exemplo do ACBr, tive que realizar a seguinte mudança: if ACBrNFSeX1.Configuracoes.Geral.Provedor in [proSilTecnologia] then begin verAplic := 'SilTecnologia_v1.00'; infNFSe.nNFSe := '0'; Prestador.RazaoSocial := edtEmitRazao.Text; end PadraoNacional.GravarXml.pas 5-lista-nfse-ger.xml
    1 ponto
  7. Oi, acho que ele quis dizer Produção restrita, que é o ambiente de testes da Nfse.
    1 ponto
  8. Descobri que o o cliente não tinha autorização da prefeitura para emitir a nota com itermedio de terceiros, por isso o codigo de serviço não era aceito.
    1 ponto
  9. Boa tarde! Ta ok, fico no aguardo da atualização. Se puder me reportar aqui quando a versão for liberada ficarei agradecido!
    1 ponto
  10. Boa tarde, Me desculpe Michel. O erro que estou recebendo é o mesmo que a mensagem que eu tinha citado. E complementando: Tentei assinar usando SHA256, e o erro retornado foi: Erro: Erro no script NFENotaFiscalNacionalWSSILGerar: &#13; Erro no script NFENotaFiscalWSXMLAssinaturaValidar: &#13; cannot find validation key Se eu assinar usando SHA1, o erro retornado é: Erro: Erro no script NFENotaFiscalNacionalWSSILGerar: &#13; Erro no script NFENotaFiscalWSXMLAssinaturaValidar: &#13; javax.xml.crypto.URIReferenceException: com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolverException: Cannot resolve element with ID NFS35060031208768029000120000000000000125120000123455
    1 ponto
  11. Bom dia @HUGO753, Já esta no SVN. Favor atualizar todos os fontes de todas as pastas, reinstale o ACBr e inicie o testes. Para gerar os novos campos no XML foi feita essa alteração: // Reforma Tributária if (NFSe.IBSCBS.dest.xNome <> '') or (NFSe.IBSCBS.valores.trib.gIBSCBS.cClassTrib <> '') then begin NFSeNode.AppendChild(AddNode(tcStr, '#1', 'c_classtrib', 6, 6, 1, NFSe.IBSCBS.valores.trib.gIBSCBS.cClassTrib, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'ind_op', 6, 6, 1, NFSe.IBSCBS.cIndOp, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'exterior_op', 1, 1, 1, TIndicadorToStr(NFSe.IBSCBS.OperExterior), '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'uf_local_op', 2, 2, 1, NFSe.IBSCBS.OperUF, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'cidade_local_op', 1, 60, 1, NFSe.IBSCBS.OperxCidade, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'consumo_pessoal', 1, 1, 1, TIndicadorToStr(NFSe.IBSCBS.ConsumoPessoal), '')); if NFSe.IBSCBS.dest.xNome <> '' then begin if Length(NFSe.IBSCBS.dest.CNPJCPF) = 14 then NFSeNode.AppendChild(AddNode(tcStr, '#1', 'pessoa_destinatario_cbsibs', 1, 1, 1, 'J', '')) else NFSeNode.AppendChild(AddNode(tcStr, '#1', 'pessoa_destinatario_cbsibs', 1, 1, 1, 'F', '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'cnpj_cpf_destinatario_cbsibs', 1, 14, 1, NFSe.IBSCBS.dest.CNPJCPF, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'ie_destinatario_cbsibs', 1, 14, 1, NFSe.IBSCBS.dest.IE, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'im_destinatario_cbsibs', 1, 14, 1, NFSe.IBSCBS.dest.IM, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'razao_social_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.xNome, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'endereco_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.ender.xLgr, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'numero_ende_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.ender.nro, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'complemento_ende_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.ender.xCpl, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'bairro_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.ender.xBairro, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'cep_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.ender.endNac.CEP, '')); xCidade := ObterNomeMunicipioUF(NFSe.IBSCBS.dest.ender.endNac.cMun, xUF); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'cidade_destinatario_cbsibs', 1, 60, 1, xCidade, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'uf_destinatario_cbsibs', 1, 60, 1, xUF, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'pais_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.xPais, '')); NFSeNode.AppendChild(AddNode(tcStr, '#1', 'email_destinatario_cbsibs', 1, 60, 1, NFSe.IBSCBS.dest.email, '')); end; end; A titulo de exemplo, para gerar a tag c_classtrib devemos alimentar o campo: NFSe.IBSCBS.valores.trib.gIBSCBS.cClassTrib
    1 ponto
  12. Sim, vamos pegar o notebook e ver o Windows
    1 ponto
  13. @Gustavo Teruel Leia as demais publicações aqui, pois já postamos inclusive o comunicado oficial da prefeitura. A mudança é certa e já está oficialmente comunicada.
    1 ponto
  14. Pessoal, Era problema na SEFAZ de MG mesmo. Hoje enviei exatamente o mesmo XML e passou.
    1 ponto
  15. cCodVerificacao = Chave da NFSe (padrão Nacional)
    1 ponto
  16. https://acbr.sourceforge.io/ACBrMonitor/NFSeLayoutPadraoNacionalReformaT.html
    1 ponto
  17. Cidade/UF: Ubá/MG Previsão de Mudança: 22 de dezembro de 2025 Tipo de Mudança: Mudança de Leiaute (ABRASF Versao 2.04 + extensão IBS/CBS) Fonte/Documentação: schema_nfse_abrasf_v2.04_ibscbs.zip Foi criado a tarefa 8626 visando implementar as mudanças no layout usado pelo provedor.
    1 ponto
  18. Em uma resposta simples e direta: SIM! Você deve enviar as informações do IBS e da CBS nas notas fiscais emitidas a partir de 2026. Isso é estabelecido na Lei Complementar 214/2025 que estabelece os preceitos da Reforma Tributária. Vide (grifo nosso): Mas e as notícias que eu vi? E quanto a nota técnica? É provável que você viu notícias com títulos como "Receita Federal prorroga IBS e CBS", "Prorrogada a obrigatoriedade do IBS e da CBS" ou até mesmo "Publicação desobriga o preenchimento do IBS e da CBS". Essas notícias costumam citar como fonte a publicação da Nota Técnica 2025/002 v1.33. Vamos conferir direto na fonte, o que diz a nota técnica: Observem que ela menciona (grifo nosso): "(...)não será exigido por regra de validação, porém permanece obrigatório conforme legislação vigente(...)". Quer dizer, não vai validar a presença desses campos por regra de validação, mas eles continuam sendo necessários e obrigatórios conforme a Lei Complementar 214/2025. Mas afinal, o que mudou então? A versão 1.33 da nota técnica definiu como implementação futura a regra de validação que obriga a presença do IBS e da CBS no XML no ambiente de produção. Na prática, isso significa que se em 2026, você não enviar essas informações no seu arquivo XML, você não vai receber como retorno a rejeição "cStat: 1115 Rejeição: IBS/CBS não informado". Mas isso não significa que o seu arquivo XML vai estar correto sem elas. Caso você já tenha adequado seu software e já esteja enviando as informações, as demais regras de validação relacionadas a reforma tributária que não estão definidas como "implementação futura" na NT serão aplicadas.
    1 ponto
  19. Os schemas dos eventos de Manifestação sobre Pedido de Transferência de Crédito de IBS/CBS em Operações de Sucessão possuem acentos e não foram adicionados no DescricaoEventoPrecisaDeAcentos. Segue o .pas alterado ACBrNFe.EnvEvento.pas
    1 ponto
  20. Olá comunidade ! Um ponto que tem trazido certas dúvidas no que diz respeito a reforma tributária é se o IBS e o CBS vão compor a base de cálculo do ICMS. Algumas unidades federativas se pronunciaram quanto a essa questão através da publicação de comunicados internos: Pernambuco: Fonte: https://www.sefaz.pe.gov.br/Noticias-Destaque/Paginas/NOTA-DE-ESCLARECIMENTO.aspx São Paulo: Ementa/Descritivo ICMS – Base de cálculo – Inclusão do IBS e da CBS. I. A base de cálculo do ICMS, nos termos do artigo 13 da LC 87/1996, é o valor da operação ou prestação, abrangendo todos os tributos que compõem o preço total cobrado do adquirente. II. O IBS e a CBS, quando efetivamente exigíveis, devem compor o valor da operação ou prestação para fins de ICMS, e, consequentemente, a base de cálculo do imposto estadual. III Durante o exercício de 2026, os valores correspondentes ao IBS e à CBS não integrarão a base de cálculo do ICMS, considerando que a contribuição ao PIS e a COFINS serão incluídas na base de cálculo do imposto estadual por sua alíquota integral. Fonte: https://www.fazenda.sp.gov.br/DiarioEletronico/ModeloGenerico.aspx?codigo=24751 Brasília: Fonte: https://www.reformatributaria.com/wp-content/uploads/2025/11/solucao-de-consulta-DF-BC-ICMS-1.pdf Santa Catarina: Fonte: https://www.sef.sc.gov.br/api/download?id=7985&nomeArquivo=Correio Eletrônico 2025 29 - DIAT - IBS e CBS não integrarão a base de cálculo do ICMS.pdf&mime=application%2Fpdf Alagoas Fonte: https://www.legisweb.com.br/legislacao/?id=488879 Conclusão Mesmo entre os estados, existe divergência de entendimento, portanto, caso esteja na dúvida e seu estado não seja um dos relacionados acima, é importante que questione a Sefaz de sua jurisdição para confirmar qual é o entendimento aplicado em sua UF.
    1 ponto
  21. Com o advento da reforma tributária, os municípios são deixados com uma escolha: Aderem ao padrão nacional na íntegra ou continuam usando provedor próprio no formato aderindo ao padrão nacional no formato de compartilhamento de informações. Se escolhida a segunda opção, dois caminhos podem ser seguidos: No caminho mais simples, o provedor cria uma API própria para recepcionar os arquivos XMLs segundo o leiaute do Padrão Nacional. Nesta abordagem, o leiaute utilizado é o já existente do padrão nacional, então basta saber qual é a URL da API para comunicação e os end-points. No caminho mais complexo, o provedor altera o leiaute que ele já usa, adicionando novos campos para receber as informações que ela vai compartilhar posteriormente com o padrão nacional. Padrão Nacional A quantidade de municípios que aderiram ao Padrão Nacional é cada vez maior e pode ser conferida em um Dashboard alimentado e atualizado em tempo real. Acesse o Dashboard AQUI. Lembrando que as soluções ACBr já atendem ao padrão nacional. Provedores com API Própria para atender o Padrão Nacional com a Reforma Tributária. Última atualização: 06/01/2026 Observação: Vale reforçar que devido a relação quantidade de provedores x prazo, o foco das implementações inicialmente tem sido os métodos de emissão da NFS-e. Provedor Requisito Cidade testada Cidades atendidas* Emissão funcionando ABase Informar o Token em WSChaveAcesso Boa Vista do Burica/MS 39 Em testes Betha Vai usar WebService Soap Dourados/MS 403 Envio OK Coplan Vai usar WebService Soap Barra do Garças/MT 31 Em testes Citta Enviar o XML da NFS-e São Valentim do Sul/RS 24 Envio OK Digifred Vai usar WebService Soap Ibirubá/RS 21 Envio OK EL Informar o Token em WSChaveAcesso Aracruz/PE 155 Envio OK Infisc - Campo Bom/RS 9 Envio OK ISSNet WS Soap/Permite Lote de DPS - 25 Aguardando as URLs de homologação Pronim Permite o envio de um lote de DPS Regente Feijó/SP 184 Envio OK RLZ - Barretos/SP 9 - SilTecnologia WS Soap/Enviar o XML da NFS-e Franca/SP 16 Retorno Vazio SimplISS - Blumenau/SC 27 Envio OK (Ainda não aceita os campos IBSCBS) Tiplan - Americana/SP 8 Envio OK * Estimativa aproximada Provedores que alteram o layout em uso para atender a Reforma Tributária. Última atualização: 06/01/2026 Provedor Requisito Cidades Atendidas* Emissão funcionando EloTech Versão 2.03 138 Envio OK FintelISS Versão 2.02 4 O webservice da prefeitura não aplicou o novo Schema GeisWeb Próprio 7 Envio OK Ginfes - 22 Giss - 18 Envio OK IPM - 188 Envio OK ISSBarueri - 1 ISSe - 1 Envio OK ISSSaoPaulo Versão 2.00 1 Envio OK Publica Versão 1.00 31 Envio OK SigISSWeb Próprio 11 Envio OK SpeedGov Versão 2.00 32 Tinus Versão 2.03 44 Envio OK WebISS Versão 2.02 87 Envio OK * Estimativa aproximada
    1 ponto
  22. Version 2.1.0.301

    4.943 downloads

    ACBrLibNFSe - Biblioteca para emissão e impressão de Nota Fiscal de Serviços Eletrônica (NFSe). Faça Download pelo SVN, dos Demos de uso da ACBrLibNFSe em diversas linguagens, usando o endereço: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/ Manual On-Line: https://acbr.sourceforge.io/ACBrLib/ACBrLib.html Primeiros passos ? Veja esse tópico:
    1 ponto
  23. Bom dia, Alguém já conseguiu enviar algum XML pra Bauru e que tenha funcionado sem o retorno acima? Já fiz diversos ajustes, assinando o infDPS e assinando NFSe, assinando somente a NFSe, mas em todas as tentativas informa que não conseguiu resolver o elemento. Já enviei email para a SilTecnologia, mas eles não responderam.
    0 pontos
  24. Olá @FabioGrandi A título de testes, apliquei as mudanças que desenvolveu, mas aqui em Bauru a situação persiste com o mesmo erro que estávamos: <return>Erro: Erro no script NFENotaFiscalNacionalWSSILGerar: Erro no script NFENotaFiscalWSXMLAssinaturaValidar: javax.xml.crypto.URIReferenceException: com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolverException: Cannot resolve element with ID NFS35060031221321107000101000000000000025124526687481</return> @Italo Giurizzato Junior, você poderia dar uma luz aqui pra gente de Bauru? Desde já agradeço,
    -1 pontos
×
×
  • 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.