Ir para conteúdo
  • Cadastre-se

Rejeição: Valor do IBS UF difere do calculado


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 288 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros
Postado

@DevAgrotis eu consegui aqui....vou postar parte do xml...

<IBSCBS>
<CST>000</CST>
<cClassTrib>000001</cClassTrib>
<gIBSCBS>
<vBC>500.00</vBC>
<gIBSUF>
<pIBSUF>0.1000</pIBSUF>
<vIBSUF>0.50</vIBSUF>
</gIBSUF>
<gIBSMun>
<pIBSMun>0.0000</pIBSMun>
<vIBSMun>0.00</vIBSMun>
</gIBSMun>
<vIBS>0.50</vIBS>
<gCBS>
<pCBS>0.9000</pCBS>
<vCBS>4.50</vCBS>
</gCBS>
</gIBSCBS>
</IBSCBS>
<vTotDFe>500.00</vTotDFe>
  • Membros
Postado (editado)

@DevAgrotis  Parece que sim....peguei do demo ACBrCT-e...

// Reforma Tributária
    if rgReformaTributaria.ItemIndex = 0 then
    begin
      Imp.vTotDFe := 100;
      Imp.IBSCBS.CST := cst000;
      Imp.IBSCBS.cClassTrib := ct000001;

      Imp.IBSCBS.gIBSCBS.vBC := 100;

      Imp.IBSCBS.gIBSCBS.gIBSUF.pIBS := 5;
      Imp.IBSCBS.gIBSCBS.gIBSUF.gDif.pDif := 5;
      Imp.IBSCBS.gIBSCBS.gIBSUF.gDif.vDif := 50;
      Imp.IBSCBS.gIBSCBS.gIBSUF.gDevTrib.vDevTrib := 50;
      Imp.IBSCBS.gIBSCBS.gIBSUF.gRed.pRedAliq := 5;
      Imp.IBSCBS.gIBSCBS.gIBSUF.gRed.pAliqEfet := 5;
      Imp.IBSCBS.gIBSCBS.gIBSUF.vIBS := 50;

      Imp.IBSCBS.gIBSCBS.gIBSMun.pIBS := 5;
      Imp.IBSCBS.gIBSCBS.gIBSMun.gDif.pDif := 5;
      Imp.IBSCBS.gIBSCBS.gIBSMun.gDif.vDif := 50;
      Imp.IBSCBS.gIBSCBS.gIBSMun.gDevTrib.vDevTrib := 50;
      Imp.IBSCBS.gIBSCBS.gIBSMun.gRed.pRedAliq := 5;
      Imp.IBSCBS.gIBSCBS.gIBSMun.gRed.pAliqEfet := 5;
      Imp.IBSCBS.gIBSCBS.gIBSMun.vIBS := 50;

      Imp.IBSCBS.gIBSCBS.gCBS.pCBS := 5;
      Imp.IBSCBS.gIBSCBS.gCBS.gDif.pDif := 5;
      Imp.IBSCBS.gIBSCBS.gCBS.gDif.vDif := 50;
      Imp.IBSCBS.gIBSCBS.gCBS.gDevTrib.vDevTrib := 50;
      Imp.IBSCBS.gIBSCBS.gCBS.gRed.pRedAliq := 5;
      Imp.IBSCBS.gIBSCBS.gCBS.gRed.pAliqEfet := 5;
      Imp.IBSCBS.gIBSCBS.gCBS.vCBS := 50;

      Imp.IBSCBS.gIBSCBS.gTribRegular.CSTReg := cst000;
      Imp.IBSCBS.gIBSCBS.gTribRegular.cClassTribReg := ct000001;
      Imp.IBSCBS.gIBSCBS.gTribRegular.pAliqEfetRegIBSUF := 5;
      Imp.IBSCBS.gIBSCBS.gTribRegular.vTribRegIBSUF := 50;
      Imp.IBSCBS.gIBSCBS.gTribRegular.pAliqEfetRegIBSMun := 5;
      Imp.IBSCBS.gIBSCBS.gTribRegular.vTribRegIBSMun := 50;
      Imp.IBSCBS.gIBSCBS.gTribRegular.pAliqEfetRegCBS := 5;
      Imp.IBSCBS.gIBSCBS.gTribRegular.vTribRegCBS := 50;

      Imp.IBSCBS.gIBSCBS.gIBSCredPres.cCredPres := cp01;
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.pCredPres := 5;
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.vCredPres := 50;
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.vCredPresCondSus := 50;

      Imp.IBSCBS.gIBSCBS.gCBSCredPres.cCredPres := cp01;
      Imp.IBSCBS.gIBSCBS.gCBSCredPres.pCredPres := 5;
      Imp.IBSCBS.gIBSCBS.gCBSCredPres.vCredPres := 50;
      Imp.IBSCBS.gIBSCBS.gCBSCredPres.vCredPresCondSus := 50;

      // Tipo Tributação Compra Governamental
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqIBSUF := 5;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribIBSUF := 50;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqIBSMun := 5;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribIBSMun := 50;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqCBS := 5;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribCBS := 50;
    end;

Editado por Jhonlenon Ribeiro
  • Membros TEF Pro
Postado

@Jhonlenon Ribeiro

Você chegou a emitir o XML?

No meu caso, ao utilizar a seguinte estrutura:

 
<vBC>500.00</vBC>
<gIBSUF>
<pIBSUF>0.1000</pIBSUF>
<vIBSUF>0.50</vIBSUF>
</gIBSUF>

O sistema retorna a rejeição:

318 – Rejeição: Valor do IBS UF difere do calculado.

No entanto, se eu estruturo da seguinte forma:

 
 
<vBC>500.00</vBC>
<gIBSUF>
<pIBSUF>0.1000</pIBSUF> <!-- Neste caso a alíquota é 10%, mas no XML eu informo como 0.1 (dividindo por 100) -->
<vIBSUF>50.00</vIBSUF>
</gIBSUF>

O XML é autorizado e transmitido corretamente.

  • Membros
Postado
2 minutos atrás, DevAgrotis disse:

@Jhonlenon Ribeiro

Você chegou a emitir o XML?

No meu caso, ao utilizar a seguinte estrutura:

 
<vBC>500.00</vBC>
<gIBSUF>
<pIBSUF>0.1000</pIBSUF>
<vIBSUF>0.50</vIBSUF>
</gIBSUF>

O sistema retorna a rejeição:

318 – Rejeição: Valor do IBS UF difere do calculado.

No entanto, se eu estruturo da seguinte forma:

 
 
<vBC>500.00</vBC>
<gIBSUF>
<pIBSUF>0.1000</pIBSUF> <!-- Neste caso a alíquota é 10%, mas no XML eu informo como 0.1 (dividindo por 100) -->
<vIBSUF>50.00</vIBSUF>
</gIBSUF>

O XML é autorizado e transmitido corretamente.

Mais fica errado porque as Aliquota IBS 0.1 e CBS 0.9 são essas para 2026....eu Autorizei o XML em homologação

  • Membros TEF Pro
Postado

 

No seu cálculo, quando você informa o valor da alíquota como 0,1, no campo <vIBSUF> você utiliza a fórmula baseibscbs * (aliqibsuf / 100) ou baseibscbs * aliqibsuf?"

 

  • Membros
Postado
Agora, DevAgrotis disse:

 

No seu cálculo, quando você informa o valor da alíquota como 0,1, no campo <vIBSUF> você utiliza a fórmula baseibscbs * (aliqibsuf / 100) ou baseibscbs * aliqibsuf?"

 

Vou postar meu codigo pra vc ver se entendi como estou fazendo...deixei fixo as aliquotas pra melhor entender...

// REFORMA TRIBUTARIA
    if REFORMA_TRIBUTARIA = 'SIM' then
    begin
      AliqIBSUF    := 0.1;  // exemplo de partilha dentro do 0,1% (estado)
      AliqCBS      := 0.9;  // CBS federal
      AliqCredPres := 0;    // só se legislação definir

      Imp.vTotDFe := TotalPrestacao.Value;

      Imp.IBSCBS.CST := cst000;
      Imp.IBSCBS.cClassTrib := '000001';

      // Base de cálculo
      Imp.IBSCBS.gIBSCBS.vBC := TotalPrestacao.Value;

      // =======================================================================
      // IBS Estadual (UF)
      Imp.IBSCBS.gIBSCBS.gIBSUF.pIBS := AliqIBSUF;  // 0.10 (já em %)
      Imp.IBSCBS.gIBSCBS.gIBSUF.vIBS := SimpleRoundTo(TotalPrestacao.Value * (AliqIBSUF / 100), -2);
      // IBS Municipal
      Imp.IBSCBS.gIBSCBS.gIBSMun.pIBS := 0;//AliqIBSMun;
      Imp.IBSCBS.gIBSCBS.gIBSMun.vIBS := 0;//RoundTo(TotalPrestacao.Value * AliqIBSMun / 100, -2);

      // CBS Federal
      Imp.IBSCBS.gIBSCBS.gCBS.pCBS := AliqCBS; // 0.90
      Imp.IBSCBS.gIBSCBS.gCBS.vCBS := SimpleRoundTo(TotalPrestacao.Value * (AliqCBS / 100), -2);
      Imp.IBSCBS.gIBSCBS.vIBS := SimpleRoundTo(Imp.IBSCBS.gIBSCBS.gIBSUF.vIBS + Imp.IBSCBS.gIBSCBS.gIBSMun.vIBS, -2);
      // =======================================================================
      // Créditos Presumidos
      // =======================================================================
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.pCredPres := 0;//AliqCredPres;
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.vCredPres := 0;//RoundTo(TotalPrestacao.Value * AliqCredPres / 100, -2);

      // Crédito Condicional/Suspenso (se aplicável)
      Imp.IBSCBS.gIBSCBS.gIBSCredPres.vCredPresCondSus := 0;//Imp.IBSCBS.gIBSCBS.gIBSCredPres.vCredPres;

      // =======================================================================
      // Compra Governamental (se for o caso)
      // =======================================================================
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqIBSUF := 0;//AliqIBSUF;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribIBSUF := 0;//RoundTo(TotalPrestacao.Value * AliqIBSUF / 100, -2);

      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqIBSMun := 0;//AliqIBSMun;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribIBSMun := 0;//RoundTo(TotalPrestacao.Value * AliqIBSMun / 100, -2);

      Imp.IBSCBS.gIBSCBS.gTribCompraGov.pAliqCBS := 0;//AliqCBS;
      Imp.IBSCBS.gIBSCBS.gTribCompraGov.vTribCBS := 0;//RoundTo(TotalPrestacao.Value * AliqCBS / 100, -2);
    end;

 

  • Consultores
  • Solution
Postado

Bom dia @DevAgrotis,

A alíquota do IBSUF não é 10% e sim 0,1% conforme aparece na calculadora que o @Jhonlenon Ribeiro anexou a imagem.

Se a base de calculo é R$ 500,00 e a alíquota é 0,1% o valor do IBSUF é R$ 0,50

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • 2 semanas depois ...
Postado

Olá pessoal,

Estou trabalhando na implementação da NFCom Modelo 62 e encontrei alguns problemas ao inicializar os objetos relacionados a IBS/CBS. Segue o cenário:


Ponto 1 – Inicialização do objeto IBSCBS

Estou incluindo o seguinte bloco de código:

IBSCBS.CST := cst000;
IBSCBS.cClassTrib := '000001';

// Base de cálculo
IBSCBS.gIBSCBS.vBC := 0;

// IBS Estadual (UF)
IBSCBS.gIBSCBS.gIBSUF.pIBS := 0;
IBSCBS.gIBSCBS.gIBSUF.vIBS := 0;
// IBS Municipal
IBSCBS.gIBSCBS.gIBSMun.pIBS := 0;
IBSCBS.gIBSCBS.gIBSMun.vIBS := 0;
// CBS Federal
IBSCBS.gIBSCBS.gCBS.pCBS := 0;
IBSCBS.gIBSCBS.gCBS.vCBS := 0;
IBSCBS.gIBSCBS.vIBS      := 0;

// Créditos Presumidos
IBSCBS.gIBSCBS.gIBSCredPres.pCredPres := 0;
IBSCBS.gIBSCBS.gIBSCredPres.vCredPres := 0;
// Crédito Condicional/Suspenso (se aplicável)
IBSCBS.gIBSCBS.gIBSCredPres.vCredPresCondSus := 0;

 

Ao compilar, recebo o seguinte erro:

[DCC Error] udmNFComMod62.pas(737): E2003 Undeclared identifier: 'cst000' 

Não consigo localizar a unit ou o arquivo onde a constante cst000 é declarada.

Minhas dúvidas:

  1. Qual unit ou biblioteca declara cst000?

  2. Existe alguma constante equivalente que eu possa usar para inicializar IBSCBS.CST?


Ponto 2 – Campos dentro do objeto IBSCBSTot (Total)

Dentro do objeto IBSCBSTot, estou incluindo os seguintes campos:

vTotDFe := 0; 
IBSCBSTot.vBCIBSCBS := 0;
IBSCBSTot.gIBS.vIBS := 0;
IBSCBSTot.gIBS.vCredPres := 0;
IBSCBSTot.gIBS.vCredPresCondSus := 0;
IBSCBSTot.gIBS.gIBSUFTot.vDif := 0;
IBSCBSTot.gIBS.gIBSUFTot.vDevTrib := 0;
IBSCBSTot.gIBS.gIBSUFTot.vIBSUF := 0;
IBSCBSTot.gIBS.gIBSMunTot.vDif := 0;
IBSCBSTot.gIBS.gIBSMunTot.vDevTrib := 0;
IBSCBSTot.gIBS.gIBSMunTot.vIBSMun := 0;

Minha dúvida:

  • Falta mais algum campo obrigatório para inicializar corretamente o objeto Total para envio da NFCom Modelo 62, ou esse conjunto já é suficiente?


Agradeço desde já pela ajuda!

Postado
12 horas atrás, Fabricio Rieg Viana disse:

Minhas dúvidas:

  1. Qual unit ou biblioteca declara cst000?

  2. Existe alguma constante equivalente que eu possa usar para inicializar IBSCBS.CST?

Bom dia.

Os tipos do CST e cClassTrib estão na unit ACBrDFe.Conversao, em seu sistema você pode usar as funções StrToCSTIBSCBS e StrTocClassTrib para converter uma string para o tipo.

  • Curtir 1
Postado
5 horas atrás, Fabio Luiz Binhara disse:

Bom dia.

Os tipos do CST e cClassTrib estão na unit ACBrDFe.Conversao, em seu sistema você pode usar as funções StrToCSTIBSCBS e StrTocClassTrib para converter uma string para o tipo.

Obrigado pela sua contribuição deu certo, o campo "IBSCBS.cClassTrib := '410010';" incluí direto pois não encontrei a função "StrTocClassTrib"... 

  • Este tópico foi criado há 288 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...