Novos campos da Reforma Tributária

IMPORTANTE

atenção !!!

Pessoal, estou implementando isso, ainda não finalizado, serve apenas de referência.
Conferindo com os schemas do xmls ainda, ok!

AGRADECIMENTOS

agradecimentos

Este DER foi iniciado após conversas com meu concorrente (rs), porém BROTHER de desenvolvimento, amigo verdadeiro (daqueles que se conta numa única mão), cara mais do que parceiro: GLENIO DUARTE.

Estrutura para a Reforma baseada nos schemas de xml

Campos documentados

No item, olhando o grupo IBSCBS (vBCIBSCBS, gIBS, gCBS, gMono, gIBSCredPres, gCBSCredPres, etc.):

Estamos com isso cobrindo o “miolo duro” de base, alíquota, valor e diferimento tanto de IBS quanto CBS, mais classe tributária e monofásico.

Fonte:
Postagem no Forum do ACBR

DER

Banco Mysql

Alinhando campos do DER com os schemas do xml para o banco Mysql:

-- TABELA: nota cabeçalho

-- Natureza da NF quanto a debitos/creditos (uso interno)
  ADD COLUMN tpnfdebito                          TINYINT       NULL COMMENT 'Indicador de NF de debito',
  ADD COLUMN tpnfcredito                         TINYINT       NULL COMMENT 'Indicador de NF de credito',

-- Base combinada IBS/CBS da NF
  ADD COLUMN vbcibscbs                           DECIMAL(15,2) NULL COMMENT 'base de calculo combinada IBS/CBS',

-- Credito Presumido
  ADD COLUMN vcredpres                           DECIMAL(15,2) NULL COMMENT 'valor total de credito presumido (ibs/cbs) da NF',
  ADD COLUMN vcredprescondsus                    DECIMAL(15,2) NULL COMMENT 'credito presumido condicionado a suficiencia',

-- Totais IBS - UF (IBSCBSTot/gIBS/gIBSUFTot)
  ADD COLUMN vibsdifuf                           DECIMAL(15,2) NULL COMMENT 'diferença IBS UF (ajuste/DIFAL)',
  ADD COLUMN vibsdevtribuf                       DECIMAL(15,2) NULL COMMENT 'IBS devido a UF',
  ADD COLUMN vibsuf                              DECIMAL(15,2) NULL COMMENT 'IBS devido total UF de destino',

-- Totais IBS - Município (IBSCBSTot/gIBS/gIBSMunTot)
  ADD COLUMN vibsdifmun                          DECIMAL(15,2) NULL COMMENT 'Diferenca IBS Municipio',
  ADD COLUMN vibsdevtribmun                      DECIMAL(15,2) NULL COMMENT 'IBS devido ao Municipio',
  ADD COLUMN vibsmun                             DECIMAL(15,2) NULL COMMENT 'IBS devido total ao Municipio',

-- Credito presumido consolidado IBS/CBS (IBSCBSTot/gIBS e gCBS)
  ADD COLUMN vcredpres                           DECIMAL(15,2) NULL COMMENT 'Valor total crédito presumido IBS/CBS (vCredPres)',
  ADD COLUMN vcredprescondsus                    DECIMAL(15,2) NULL COMMENT 'Valor total crédito presumido cond. suspensa IBS/CBS (vCredPresCondSus)',

-- Totais CBS (IBSCBSTot/gCBS)
  ADD COLUMN vcbsdif                             DECIMAL(15,2) NULL COMMENT 'Diferenca CBS', 
  ADD COLUMN vcbscredpres                        DECIMAL(15,2) NULL COMMENT 'Credito presumido CBS',
  ADD COLUMN vcbscredprescondsus                 DECIMAL(15,2) NULL COMMENT 'Credito presumido CBS condicionado  suficiencia',
  ADD COLUMN vcbsdevtrib                         DECIMAL(15,2) NULL COMMENT '*CBS devolvido (vDevTrib CBS)';  

-- Totais monofasicos da NF (IBSCBSTot/gMono)
  ADD COLUMN vibsmono                            DECIMAL(15,2) NULL COMMENT 'Valor IBS monofasico',
  ADD COLUMN vcbsmono                            DECIMAL(15,2) NULL COMMENT 'Valor CBS monofasico',
  ADD COLUMN vcbsmonoreten                       DECIMAL(15,2) NULL COMMENT 'IBS monofasico retido (responsabilidade de terceiros)',
  ADD COLUMN vibsmonoreten                       DECIMAL(15,2) NULL COMMENT 'CBS monofásico retido (responsabilidade de terceiros)',
  ADD COLUMN vibsmonoret                         DECIMAL(15,2) NULL COMMENT 'IBS monofasico a reter',
  ADD COLUMN vcbsmonoret                         DECIMAL(15,2) NULL COMMENT 'CBS monofásico a reter',

-- IBS / CBS / IS totais da NF
  ADD COLUMN vibs                                DECIMAL(15,2) NULL COMMENT 'valor total do IBS da NF',
  ADD COLUMN vcbs                                DECIMAL(15,2) NULL COMMENT 'valor total do CBS na NF',
  ADD COLUMN vis                                 DECIMAL(15,2) NULL COMMENT 'valor total do imposto seletivo IS (somente 2027)';

-- vnftot - valor total da NF com IBS/CBS/IS
  ADD COLUMN vnftot                              DECIMAL(15,2) NULL COMMENT 'Valor total da NF no modelo IBS/CBS',

-- Regimes (opcional)
  ADD COLUMN regime_tributario_ibs               TINYINT       NULL COMMENT 'Regime IBS (0=geral,1=mono,2=susp,...)',
  ADD COLUMN regime_tributario_cbs               TINYINT       NULL COMMENT 'Regime CBS (0=geral,1=mono,2=susp,...)';
-- TABELA: nota_itens

-- Identificacao / classificacao IBS/CBS do item
  ADD COLUMN cst_ibs_cbs                         VARCHAR(3)    NULL COMMENT 'CST unificado IBS/CBS',
  ADD COLUMN cclasstrib                          VARCHAR(6)    NULL COMMENT 'codigo da classificacao tributaria',
  ADD COLUMN origmerc                            TINYINT       NULL COMMENT 'Origem da mercadoria (0=nacional,1=importada,...)',

-- Base combinada IBS/CBS
  ADD COLUMN ibscbs_vbc                          DECIMAL(15,2) NULL COMMENT 'Base de calculo IBS/CBS do item',

-- IBS - UF (gIBSUF)
  ADD COLUMN pibs_uf                             DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS UF',
  ADD COLUMN vibs_uf                             DECIMAL(15,2) NULL COMMENT 'Valor IBS UF',
  ADD COLUMN ibs_pdif_uf                         DECIMAL(7,4)  NULL COMMENT 'Percentual diferenca UF (DIFAL IBS)',

  ADD COLUMN vibs_vdif_uf                        DECIMAL(15,2) NULL COMMENT 'Valor diferenca IBS UF',
  ADD COLUMN ibs_predaliq_uf                     DECIMAL(7,4)  NULL COMMENT 'Aliquota de referencia IBS UF',
  ADD COLUMN ibs_paliqefet_uf                    DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva IBS UF',
  ADD COLUMN ibs_devtrib_uf                      DECIMAL(15,2) NULL COMMENT 'IBS devido UF',

-- IBS - Municipio (gIBSMun)
  ADD COLUMN pibs_mun                            DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS Municipio',
  ADD COLUMN vibs_mun                            DECIMAL(15,2) NULL COMMENT 'Valor IBS Municipio',
  ADD COLUMN ibs_pdif_mun                        DECIMAL(7,4)  NULL COMMENT 'Percentual diferenca Municipio',
  ADD COLUMN vibs_vdif_mun                       DECIMAL(15,2) NULL COMMENT 'Valor difernca IBS Municipio',
  ADD COLUMN ibs_predaliq_mun                    DECIMAL(7,4)  NULL COMMENT 'Aliquota de referencia IBS Municipio',
  ADD COLUMN ibs_paliqefet_mun                   DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva IBS Municipio' ,
  ADD COLUMN ibs_devtrib_mun                     DECIMAL(15,2) NULL COMMENT 'IBS devido Municipio',

-- IBS - total do item (consolidado)
  ADD COLUMN vibs                                DECIMAL(15,2) NULL COMMENT 'Valor IBS total do item',

-- CBS - total do item (gCBS)
  ADD COLUMN pcbs                                DECIMAL(7,4)  NULL COMMENT 'Alíquota CBS',
  ADD COLUMN vcbs                                DECIMAL(15,2) NULL COMMENT 'Valor CBS',
  ADD COLUMN cbs_pdif                            DECIMAL(7,4)  NULL COMMENT 'Percentual diferença CBS',
  ADD COLUMN vcbs_vdif                           DECIMAL(15,2) NULL COMMENT 'Valor diferença CBS',
  ADD COLUMN cbs_predaliq                        DECIMAL(7,4)  NULL COMMENT 'Alíquota de referencia CBS',
  ADD COLUMN cbs_paliqefet                       DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva CBS',
  ADD COLUMN cbs_devtrib                         DECIMAL(15,2) NULL COMMENT 'CBS devido';

-- Credito presumido por item (IBS)
  ADD COLUMN ccredpres                           VARCHAR(2)    NULL COMMENT 'Indicador se gera credito presumido',
  ADD COLUMN ibs_pcredpres                       DECIMAL(7,4)  NULL COMMENT 'Percentual credito presumido IBS',
  ADD COLUMN ibs_vcredpres                       DECIMAL(15,2) NULL COMMENT 'Valor credito presumido IBS',
  ADD COLUMN ibs_vcredprescondsus                DECIMAL(15,2) NULL COMMENT 'Credito IBS condicionado a suficiencia',
  ADD COLUMN ibs_vbc_credpres                    DECIMAL(15,2) NULL COMMENT '*Base crédito presumido IBS (vBC gIBSCredPres)';

-- Monofasico por item - IBS
  ADD COLUMN ibs_mono_base                       DECIMAL(15,2) NULL COMMENT 'Base IBS monofasico item',
  ADD COLUMN ibs_mono_aliq                       DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS monofasico item',
  ADD COLUMN ibs_mono_valor                      DECIMAL(15,2) NULL COMMENT 'Valor IBS monofasico item',

-- Monofasico por item - CBS
  ADD COLUMN cbs_mono_base                       DECIMAL(15,2) NULL COMMENT 'Base CBS monofasico item',
  ADD COLUMN cbs_mono_aliq                       DECIMAL(7,4)  NULL COMMENT 'Aliquota CBS monofasico item',
  ADD COLUMN cbs_mono_valor                      DECIMAL(15,2) NULL COMMENT 'Valor CBS monofasico item',

  ADD COLUMN cbs_ccredpres                       VARCHAR(2)    NULL COMMENT '*Código de crédito presumido CBS (cCredPres CBS)',
  ADD COLUMN cbs_vbc_credpres                    DECIMAL(15,2) NULL COMMENT '*Base crédito presumido CBS (vBC gCBSCredPres)',
  ADD COLUMN cbs_pcredpres                       DECIMAL(7,4)  NULL COMMENT '*Percentual crédito presumido CBS (pCredPres CBS)',
  ADD COLUMN cbs_vcredpres                       DECIMAL(15,2) NULL COMMENT '*Valor crédito presumido CBS (vCredPres CBS)',
  ADD COLUMN cbs_vcredprescondsus                DECIMAL(15,2) NULL COMMENT '*Crédito CBS cond. suspensiva (vCredPresCondSus CBS)';


  ADD COLUMN is_cenq                             VARCHAR(3)    NULL COMMENT '*Código de enquadramento IS (cEnqIS)',
  ADD COLUMN is_vbc                              DECIMAL(15,2) NULL COMMENT '*Base de cálculo do IS (vBC IS)',
  ADD COLUMN is_pis                              DECIMAL(7,4)  NULL COMMENT '*Alíquota do IS (pIS)',
  ADD COLUMN is_vis                              DECIMAL(15,2) NULL COMMENT '*Valor do IS no item (vIS)';

-- Lembrando que, pela NT, o IS é "por fora" e entra na composicao do vNF somando ao total.

-- vTribOp = vBC × alíquota vigente (com tolerância de 0,01)
  ADD COLUMN cbs_vtribop                         DECIMAL(15,2) NULL COMMENT 'Tributo bruto CBS da operação (gCBS/vTribOp)';
  ADD COLUMN ibs_vtribop                         DECIMAL(15,2) NULL COMMENT 'Tributo bruto IBS da operação (quando aplicavel)';

  ADD COLUMN ibs_vbc_dif_uf                      DECIMAL(15,2) NULL COMMENT '' ;
  ADD COLUMN ibs_vbc_dif_mun                     DECIMAL(15,2) NULL COMMENT '' ;
  ADD COLUMN cbs_vbc_dif                         DECIMAL(15,2) NULL COMMENT '' ;
  

Tipos básicos baseado no schema do xml

Mapeamento conceitual (campos → tipos XSD)

Usando os tipos do DFeTiposBasicos_v1.00.xsd:

<!-- natureza da NF quanto a débitos/créditos -->
<xs:element name="tpNFdebito"  type="xs:integer"   minOccurs="0"/>
<xs:element name="tpNFcredito" type="xs:integer"   minOccurs="0"/>

<!-- Base de cálculo IBS/CBS (total da NF) -->
<xs:element name="vBCIBSCBS"   type="TDec1302RTC" minOccurs="0"/>

<!-- Crédito Presumido total da NF -->
<xs:element name="vCredPres"          type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCredPresCondSus"   type="TDec1302RTC" minOccurs="0"/>

<!-- Relacionados a UF -->
<xs:element name="vIBSDifUF"     type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSDevTribUF" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSUF"        type="TDec1302RTC" minOccurs="0"/>

<!-- Município -->
<xs:element name="vIBSDifMun"     type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSDevTribMun" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMun"        type="TDec1302RTC" minOccurs="0"/>

<!-- CBS -->
<xs:element name="vCBSDif"            type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSCredPres"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSCredPresCondSus"type="TDec1302RTC" minOccurs="0"/>

<!-- Monofásico / retenção – totais da NF -->
<xs:element name="vIBSMono"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMono"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMonoReten"  type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMonoReten"  type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMonoRet"    type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMonoRet"    type="TDec1302RTC" minOccurs="0"/>

<!-- Valor total da NF no modelo IBS/CBS -->
<xs:element name="vNFTot" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBS"   type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBS"   type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIS"    type="TDec1302RTC" minOccurs="0"/>

<!-- Regimes (opcional) -->
<xs:element name="regimeTributarioIBS" type="xs:integer" minOccurs="0"/>
<xs:element name="regimeTributarioCBS" type="xs:integer" minOccurs="0"/>

Mapeamento conceitual (campos → tipos XSD)

<!-- CST unificado IBS/CBS -->
<xs:element name="CST_IBS_CBS" type="xs:string" minOccurs="0"/> <!-- 3 dígitos -->

<!-- Classificação tributária -->
<xs:element name="cClassTrib" type="xs:string" minOccurs="0"/> <!-- até 6 dígitos -->

<!-- Origem da mercadoria/serviço -->
<xs:element name="origMerc" type="xs:integer" minOccurs="0"/>

<!-- Base combinada IBS/CBS do item -->
<xs:element name="vBCIBSCBS" type="TDec1104RTC" minOccurs="0"/>

<!-- IBS – UF -->
<xs:element name="pIBSUF"       type="TDec_0302_04RTC" minOccurs="0"/> <!-- alíquota -->
<xs:element name="vIBSUF"       type="TDec1104RTC"      minOccurs="0"/> <!-- valor -->
<xs:element name="pDifUF"       type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifUF"       type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliqUF"   type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfetUF"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTribUF"   type="TDec1104RTC"      minOccurs="0"/>

<!-- IBS – Município -->
<xs:element name="pIBSMun"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vIBSMun"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pDifMun"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifMun"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliqMun"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfetMun" type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTribMun"  type="TDec1104RTC"      minOccurs="0"/>

<!-- IBS – total do item -->
<xs:element name="vIBS" type="TDec1104RTC" minOccurs="0"/>

<!-- CBS – total do item -->
<xs:element name="pCBS"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCBS"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pDifCBS"   type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifCBS"   type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliq"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfet" type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTrib"  type="TDec1104RTC"      minOccurs="0"/>

<!-- Crédito presumido por item -->
<xs:element name="indCredPres"         type="xs:integer"      minOccurs="0"/>
<xs:element name="pCredPresIBS"        type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCredPresIBS"        type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="vCredPresCondSusIBS" type="TDec1104RTC"     minOccurs="0"/>

<!-- Monofásico por item -->
<xs:element name="vBCIBSMono"   type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="pIBSMono"     type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vIBSMono"     type="TDec1104RTC"     minOccurs="0"/>

<xs:element name="vBCCBSMono"   type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="pCBSMono"     type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCBSMono"     type="TDec1104RTC"     minOccurs="0"/>