Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Bom dia, depende do "exemplo" prático, pq para cada cst\cclasstrib a estrutura muda, e muda bastante, tenho alguns clientes rodando com algumas situações, se precisar de uma consultoria, me chama no privado.

  • Membro Pro Verificado
Postado
20 horas atrás, durvalcastro disse:

Algum tem exemplo prático de NFe com IBS e CBS e quais campos informar pra validar as NFes agora pra agosto/26

Bom dia.... pq desta pergunta Durval? O que irá mudar em agosto que seja diferente do que já implantamos em jan/26 com relação ao IBS/CBS?

 

  • Curtir 1
Postado
1 hora atrás, MARCOS LIVIO SACUCCI disse:

Bom dia.... pq desta pergunta Durval? O que irá mudar em agosto que seja diferente do que já implantamos em jan/26 com relação ao IBS/CBS?

 

é o exemplo de NFe que ta nos fontes?

Postado (editado)

Boa tarde Sres, antes de mais nada parabens por esse espaço e pelo belo trabalho na ACBR, Conforme disse o colega eu tb estou com dificuldades e gostaria de submeter o que fiz pra vcs me darem algum pitaco, desde ja meu mt obrigado

 

        IBSCBS.Valores.trib.gIBSCBS.CST        := cst010;
        IBSCBS.Valores.trib.gIBSCBS.cClassTrib := '101001'; // Código fornecido pela contabilidade
        IBSCBS.valores.trib.gIBSCBS.cCredPres := cpNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.CSTReg := cstNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.cClassTribReg := '';

        IBSCBS.Valores.Cbs      := 0.9;   // Alíquota de CBS (%)
        IBSCBS.Valores.ValorCbs := 0.90;  // Valor calculado da CBS (R$)

        IBSCBS.Valores.IbsEstadual       := 0.1;   // Alíquota do IBS Estadual (%)
        IBSCBS.Valores.ValorIbsEstadual  := 0.10;  // Valor do IBS Estadual (R$)

        IBSCBS.Valores.IbsMunicipal      := 0.05;  // Alíquota do IBS Municipal (%)
        IBSCBS.Valores.ValorIbsMunicipal := 0.05;  // Valor do IBS Municipal (R$)

        InfNFSe.IBSCBS.Valores.vBC := strtofloat(pValor);
        infNFSe.IBSCBS.cLocalidadeIncid := StrToIntDef(pMunicipioIncide,0); // Código da localidade        InfNFSe.IBSCBS.Valores.trib.gIBSCBS.CST := cst010;
        infNFSe.IBSCBS.xLocalidadeIncid := pNomeMunicipio;
        infNFSe.IBSCBS.Valores.uf.pAliqEfetUF := 0.10;
        infNFSe.IBSCBS.Valores.fed.pAliqEfetCBS := 0.90;
        infNFSe.IBSCBS.Valores.fed.pCBS := 0.90;
        infNFSe.IBSCBS.Valores.uf.pIBSUF := 0.10;

 

 

Editado por Marcelo Cabello
Postado
17 minutos atrás, Marcelo Cabello disse:

Boa tarde Sres, antes de mais nada parabens por esse espaço e pelo belo trabalho na ACBR, Conforme disse o colega eu tb estou com dificuldades e gostaria de submeter o que fiz pra vcs me darem algum pitaco, desde ja meu mt obrigado

 

        IBSCBS.Valores.trib.gIBSCBS.CST        := cst010;
        IBSCBS.Valores.trib.gIBSCBS.cClassTrib := '101001'; // Código fornecido pela contabilidade
        IBSCBS.valores.trib.gIBSCBS.cCredPres := cpNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.CSTReg := cstNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.cClassTribReg := '';

        IBSCBS.Valores.Cbs      := 0.9;   // Alíquota de CBS (%)
        IBSCBS.Valores.ValorCbs := 0.90;  // Valor calculado da CBS (R$)

        IBSCBS.Valores.IbsEstadual       := 0.1;   // Alíquota do IBS Estadual (%)
        IBSCBS.Valores.ValorIbsEstadual  := 0.10;  // Valor do IBS Estadual (R$)

        IBSCBS.Valores.IbsMunicipal      := 0.05;  // Alíquota do IBS Municipal (%)
        IBSCBS.Valores.ValorIbsMunicipal := 0.05;  // Valor do IBS Municipal (R$)

        InfNFSe.IBSCBS.Valores.vBC := strtofloat(pValor);
        infNFSe.IBSCBS.cLocalidadeIncid := StrToIntDef(pMunicipioIncide,0); // Código da localidade        InfNFSe.IBSCBS.Valores.trib.gIBSCBS.CST := cst010;
        infNFSe.IBSCBS.xLocalidadeIncid := pNomeMunicipio;
        infNFSe.IBSCBS.Valores.uf.pAliqEfetUF := 0.10;
        infNFSe.IBSCBS.Valores.fed.pAliqEfetCBS := 0.90;
        infNFSe.IBSCBS.Valores.fed.pCBS := 0.90;
        infNFSe.IBSCBS.Valores.uf.pIBSUF := 0.10;

 

 

Seria esse o padrão pra Sefa aceitar a NFe / NFCe?

Postado
3 horas atrás, Marcelo Cabello disse:

Boa tarde Sres, antes de mais nada parabens por esse espaço e pelo belo trabalho na ACBR, Conforme disse o colega eu tb estou com dificuldades e gostaria de submeter o que fiz pra vcs me darem algum pitaco, desde ja meu mt obrigado

 

        IBSCBS.Valores.trib.gIBSCBS.CST        := cst010;
        IBSCBS.Valores.trib.gIBSCBS.cClassTrib := '101001'; // Código fornecido pela contabilidade
        IBSCBS.valores.trib.gIBSCBS.cCredPres := cpNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.CSTReg := cstNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.cClassTribReg := '';

        IBSCBS.Valores.Cbs      := 0.9;   // Alíquota de CBS (%)
        IBSCBS.Valores.ValorCbs := 0.90;  // Valor calculado da CBS (R$)

        IBSCBS.Valores.IbsEstadual       := 0.1;   // Alíquota do IBS Estadual (%)
        IBSCBS.Valores.ValorIbsEstadual  := 0.10;  // Valor do IBS Estadual (R$)

        IBSCBS.Valores.IbsMunicipal      := 0.05;  // Alíquota do IBS Municipal (%)
        IBSCBS.Valores.ValorIbsMunicipal := 0.05;  // Valor do IBS Municipal (R$)

        InfNFSe.IBSCBS.Valores.vBC := strtofloat(pValor);
        infNFSe.IBSCBS.cLocalidadeIncid := StrToIntDef(pMunicipioIncide,0); // Código da localidade        InfNFSe.IBSCBS.Valores.trib.gIBSCBS.CST := cst010;
        infNFSe.IBSCBS.xLocalidadeIncid := pNomeMunicipio;
        infNFSe.IBSCBS.Valores.uf.pAliqEfetUF := 0.10;
        infNFSe.IBSCBS.Valores.fed.pAliqEfetCBS := 0.90;
        infNFSe.IBSCBS.Valores.fed.pCBS := 0.90;
        infNFSe.IBSCBS.Valores.uf.pIBSUF := 0.10;

 

 

Sugiro você ler a NT do Sefaz e entender bem antes de desenvolver, não faz sentido esse CST e cClassTrib
Você esta misturando tags de Nota de Serviço NFS-e com as tags NF-e,

Postado

Bom dia @durvalcastro, na verdade é assim, o ACBR da um exemplo "genérico" de todos os campos "possíveis", não significa que colocando desse jeito para qualquer grupo de CST\CLASSTRIB funcione, pelo contrário, a depender do conjunto de informações, essa estrutura do exemplo muda, assim como os totais.

Já tenho clientes em produção usando o CST 000, CST 200 e CST 600, todos ok, mas para cada um deles, existem uma variação desse exemplo.

Postado
Em 02/07/2026 at 07:06, osmarbentojr disse:

Bom dia @durvalcastro, na verdade é assim, o ACBR da um exemplo "genérico" de todos os campos "possíveis", não significa que colocando desse jeito para qualquer grupo de CST\CLASSTRIB funcione, pelo contrário, a depender do conjunto de informações, essa estrutura do exemplo muda, assim como os totais.

Já tenho clientes em produção usando o CST 000, CST 200 e CST 600, todos ok, mas para cada um deles, existem uma variação desse exemplo.

Poxa mano da uma dica do basico, tipo o CST tributado e um não tributado...

Postado

Bom dia @durvalcastro, na verdade eu acho que você não entendeu bem, não existe um "gesso" que vc molda daquele jeito e esta funcionando, tem que conhecer a legislação, ir testando e enviando em homologação.

Abaixo segue uma parte do meu código, que ainda esta sendo ajustado para atender a todas as situações, mas que já funciona em produção 

                  if dm.Q1.FieldByName('pro_rcst').AsString = '000' then IBSCBS.CST := cst000;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '010' then IBSCBS.CST := cst010;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '011' then IBSCBS.CST := cst011;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then IBSCBS.CST := cst200;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '220' then IBSCBS.CST := cst220;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '221' then IBSCBS.CST := cst221;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '222' then IBSCBS.CST := cst222;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '400' then IBSCBS.CST := cst400;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '410' then IBSCBS.CST := cst410;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '510' then IBSCBS.CST := cst510;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '515' then IBSCBS.CST := cst515;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '550' then IBSCBS.CST := cst550;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '620' then IBSCBS.CST := cst620;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '800' then IBSCBS.CST := cst800;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '810' then IBSCBS.CST := cst810;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '811' then IBSCBS.CST := cst811;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '820' then IBSCBS.CST := cst820;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '830' then IBSCBS.CST := cst830;

                  IBSCBS.cClassTrib := dm.Q1.FieldByName('pro_cclasstrib').AsString;
                  _vitem := dm.Q1.FieldByName('itenfe_quantidade').AsFloat * dm.Q1.FieldByName('itenfe_valor').AsFloat;
                  _tot_baseibscbs := _tot_baseibscbs + _vitem;
                  _val_ibsuf := (_vitem / 100) * 0.1;
                  _val_ibsmun := (_vitem / 100) * 0.0;
                  _val_cbs := (_vitem / 100) * 0.9;


                  IBSCBS.gIBSCBS.vBC := _vitem;

                  IBSCBS.gIBSCBS.gIBSUF.pIBSUF := 0.1;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then //grupo de redução de base
                  begin
                     IBSCBS.gIBSCBS.gIBSUF.gRed.pRedAliq  := 100;
                     IBSCBS.gIBSCBS.gIBSUF.gRed.pAliqEfet := 0;
                     _val_ibsuf := 0;
                  end;
                  IBSCBS.gIBSCBS.gIBSUF.vIBSUF := _val_ibsuf;

                  IBSCBS.gIBSCBS.gIBSMun.pIBSMun := 0;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then
                  begin
                     IBSCBS.gIBSCBS.gIBSMun.gRed.pRedAliq := 100;
                     IBSCBS.gIBSCBS.gIBSMun.gRed.pAliqEfet := 0;
                     _tot_ibsmun := 0;
                  end;
                  IBSCBS.gIBSCBS.gIBSMun.vIBSMun := _tot_ibsmun;

                  IBSCBS.gIBSCBS.vIBS := _val_ibsmun + _val_ibsuf;

                  IBSCBS.gIBSCBS.gCBS.pCBS := 0.9;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then
                  begin
                     IBSCBS.gIBSCBS.gCBS.gRed.pRedAliq := 100;
                     IBSCBS.gIBSCBS.gCBS.gRed.pAliqEfet := 0;
                     _val_cbs := 0;
                  end;
                  IBSCBS.gIBSCBS.gCBS.vCBS := _val_cbs;

                  _tot_ibsuf := _tot_ibsuf + _val_ibsuf;
                  _tot_ibsmun := _tot_ibsmun + _val_ibsmun;
                  _tot_cbs := _tot_cbs + _val_cbs;

                  if dm.Q1.FieldByName('pro_rcst').AsString = '410' then
                  begin
                     _tot_ibsuf := 0;
                     _tot_ibsmun := 0;
                     _tot_cbs := 0;
                     _tot_baseibscbs := 0;
                  end;

                  if dm.Q1.FieldByName('pro_rcst').AsString = '600' then
                  begin
                     IBSCBS.gIBSCBSMono.vTotCBSMonoItem := 0;
                     IBSCBS.gIBSCBSMono.vTotIBSMonoItem := 0;
                  end;
               end;

Postado
50 minutos atrás, osmarbentojr disse:

Bom dia @durvalcastro, na verdade eu acho que você não entendeu bem, não existe um "gesso" que vc molda daquele jeito e esta funcionando, tem que conhecer a legislação, ir testando e enviando em homologação.

Abaixo segue uma parte do meu código, que ainda esta sendo ajustado para atender a todas as situações, mas que já funciona em produção 

                  if dm.Q1.FieldByName('pro_rcst').AsString = '000' then IBSCBS.CST := cst000;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '010' then IBSCBS.CST := cst010;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '011' then IBSCBS.CST := cst011;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then IBSCBS.CST := cst200;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '220' then IBSCBS.CST := cst220;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '221' then IBSCBS.CST := cst221;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '222' then IBSCBS.CST := cst222;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '400' then IBSCBS.CST := cst400;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '410' then IBSCBS.CST := cst410;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '510' then IBSCBS.CST := cst510;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '515' then IBSCBS.CST := cst515;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '550' then IBSCBS.CST := cst550;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '620' then IBSCBS.CST := cst620;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '800' then IBSCBS.CST := cst800;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '810' then IBSCBS.CST := cst810;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '811' then IBSCBS.CST := cst811;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '820' then IBSCBS.CST := cst820;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '830' then IBSCBS.CST := cst830;

                  IBSCBS.cClassTrib := dm.Q1.FieldByName('pro_cclasstrib').AsString;
                  _vitem := dm.Q1.FieldByName('itenfe_quantidade').AsFloat * dm.Q1.FieldByName('itenfe_valor').AsFloat;
                  _tot_baseibscbs := _tot_baseibscbs + _vitem;
                  _val_ibsuf := (_vitem / 100) * 0.1;
                  _val_ibsmun := (_vitem / 100) * 0.0;
                  _val_cbs := (_vitem / 100) * 0.9;


                  IBSCBS.gIBSCBS.vBC := _vitem;

                  IBSCBS.gIBSCBS.gIBSUF.pIBSUF := 0.1;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then //grupo de redução de base
                  begin
                     IBSCBS.gIBSCBS.gIBSUF.gRed.pRedAliq  := 100;
                     IBSCBS.gIBSCBS.gIBSUF.gRed.pAliqEfet := 0;
                     _val_ibsuf := 0;
                  end;
                  IBSCBS.gIBSCBS.gIBSUF.vIBSUF := _val_ibsuf;

                  IBSCBS.gIBSCBS.gIBSMun.pIBSMun := 0;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then
                  begin
                     IBSCBS.gIBSCBS.gIBSMun.gRed.pRedAliq := 100;
                     IBSCBS.gIBSCBS.gIBSMun.gRed.pAliqEfet := 0;
                     _tot_ibsmun := 0;
                  end;
                  IBSCBS.gIBSCBS.gIBSMun.vIBSMun := _tot_ibsmun;

                  IBSCBS.gIBSCBS.vIBS := _val_ibsmun + _val_ibsuf;

                  IBSCBS.gIBSCBS.gCBS.pCBS := 0.9;
                  if dm.Q1.FieldByName('pro_rcst').AsString = '200' then
                  begin
                     IBSCBS.gIBSCBS.gCBS.gRed.pRedAliq := 100;
                     IBSCBS.gIBSCBS.gCBS.gRed.pAliqEfet := 0;
                     _val_cbs := 0;
                  end;
                  IBSCBS.gIBSCBS.gCBS.vCBS := _val_cbs;

                  _tot_ibsuf := _tot_ibsuf + _val_ibsuf;
                  _tot_ibsmun := _tot_ibsmun + _val_ibsmun;
                  _tot_cbs := _tot_cbs + _val_cbs;

                  if dm.Q1.FieldByName('pro_rcst').AsString = '410' then
                  begin
                     _tot_ibsuf := 0;
                     _tot_ibsmun := 0;
                     _tot_cbs := 0;
                     _tot_baseibscbs := 0;
                  end;

                  if dm.Q1.FieldByName('pro_rcst').AsString = '600' then
                  begin
                     IBSCBS.gIBSCBSMono.vTotCBSMonoItem := 0;
                     IBSCBS.gIBSCBSMono.vTotIBSMonoItem := 0;
                  end;
               end;

Valeu, já ajuda

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.

The popup will be closed in 10 segundos...