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...
The popup will be closed in 10 segundos...