diff --git a/CTe.Classes/Informacoes/autXML.cs b/CTe.Classes/Informacoes/autXML.cs
index b95f446b9..b2972fec9 100644
--- a/CTe.Classes/Informacoes/autXML.cs
+++ b/CTe.Classes/Informacoes/autXML.cs
@@ -16,13 +16,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -34,13 +33,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
}
diff --git a/CTe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs b/CTe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
index e27dfcf7b..3b6a5c32a 100644
--- a/CTe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
+++ b/CTe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
@@ -38,13 +38,12 @@ public string CNPJ
get { return _cNPJ; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cPF))
- _cNPJ = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cPF))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cNPJ = value;
}
}
@@ -56,13 +55,12 @@ public string CPF
get { return _cPF; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cNPJ))
- _cPF = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cNPJ))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cPF = value;
}
}
@@ -74,8 +72,6 @@ public string CPF
///
/// A09 - Grupo para consultar um DF-e a partir de um NSU específico
///
- public consNSU consNSU { get; set; }
-
-
+ public consNSU consNSU { get; set; }
}
}
\ No newline at end of file
diff --git a/CTe.Classes/Servicos/Evento/dest.cs b/CTe.Classes/Servicos/Evento/dest.cs
index 80442024b..e74732b9a 100644
--- a/CTe.Classes/Servicos/Evento/dest.cs
+++ b/CTe.Classes/Servicos/Evento/dest.cs
@@ -27,13 +27,12 @@ public string CNPJ
get { return _cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CPF) & string.IsNullOrEmpty(idEstrangeiro))
- _cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CPF) || !string.IsNullOrEmpty(idEstrangeiro))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _cnpj = value;
}
}
@@ -45,13 +44,12 @@ public string CPF
get { return _cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(idEstrangeiro))
- _cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(idEstrangeiro))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _cpf = value;
}
}
@@ -63,13 +61,12 @@ public string idEstrangeiro
get { return _idEstrangeiro; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(CPF))
- _idEstrangeiro = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(CPF))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _idEstrangeiro = value;
}
}
diff --git a/NFe.AppTeste/MainWindow.xaml.cs b/NFe.AppTeste/MainWindow.xaml.cs
index e34e9f67e..8c8204798 100644
--- a/NFe.AppTeste/MainWindow.xaml.cs
+++ b/NFe.AppTeste/MainWindow.xaml.cs
@@ -1431,7 +1431,8 @@ protected virtual dest GetDestinatario(VersaoServico versao, ModeloDocumento mod
{
var dest = new dest(versao)
{
- CNPJ = "99999999000191",
+ CNPJ = "0ZEN3MS8000127",
+ //CNPJ = "99999999000191",
//CPF = "99999999999",
};
dest.xNome = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL"; //Obrigatório para NFe e opcional para NFCe
diff --git a/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd b/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd
index 86da44c50..a5051dd02 100644
--- a/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd
+++ b/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd
@@ -1,5 +1,5 @@
-
+
@@ -28,7 +28,16 @@
-
+
+
+ Código de Classificação do Crédito Presumido do IBS e da CBS, conforme tabela cCredPres
+
+
+
+
+
+
+
Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais
@@ -37,7 +46,7 @@
-
+
Tipo Decimal com 11 inteiros, podendo ter 4 decimais (utilizado em tags opcionais)
@@ -46,7 +55,7 @@
-
+
Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais
@@ -55,7 +64,7 @@
-
+
Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais
@@ -98,6 +107,14 @@
+
+
+ Tipo Indicador de Doação
+
+
+
+
+
Grupo de informações da Tributação da NFCom
@@ -109,7 +126,17 @@
+
+
+ Indica se a operação é de doação
+
+
+
+
+ Informado conforme indicador no cClassTrib
+
+
@@ -123,7 +150,37 @@
+
+
+ Indica se a operação é de doação
+
+
+
+
+
+ Informado conforme indicador no cClassTrib
+
+
+
+
+
+
+ Grupo de informações da Tributação da NFAg
+
+
+
+
+ Código Situação Tributária do IBS/CBS
+
+
+
+
+
+
+ Informado conforme indicador no cClassTrib
+
+
@@ -137,7 +194,13 @@
+
+
+
+ Informado conforme indicador no cClassTrib
+
+
@@ -151,7 +214,13 @@
+
+
+
+ Informado conforme indicador no cClassTrib
+
+
@@ -165,6 +234,11 @@
+
+
+ Indica se a operação é de doação
+
+
@@ -182,11 +256,16 @@
+
+
+ Indica se a operação é de doação
+
+
- Informar essa opção da Choice para Monofasia
+ Informar essa opção da Choice para Monofasia (CST 620)
@@ -194,10 +273,54 @@
Informar essa opção da Choice para o CST 800
+
+
+ Informar essa opção da Choice para o CST 811
+
+
-
+
- Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM
+ Informado conforme indicador no cClassTrib
+
+
+
+
+
+ Crédito Presumido da Operação. Informado conforme indicador no cClassTrib.
+
+
+
+
+ Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM. Informado conforme indicador no cClassTrib.
+
+
+
+
+
+
+
+ Grupo de informações da Tributação da NFGas
+
+
+
+
+ Código Situação Tributária do IBS/CBS
+
+
+
+
+
+
+
+
+ Informar essa opção da Choice para Monofasia
+
+
+
+
+
+ Informado conforme indicador no cClassTrib
@@ -214,17 +337,17 @@
-
+
Valor do BC
-
+
Alíquota do Imposto Seletivo (percentual)
-
+
Alíquota do Imposto Seletivo (por valor)
@@ -241,13 +364,13 @@
-
+
Quantidade com abse no campo uTrib informado
-
+
Valor do Imposto Seletivo calculado
@@ -260,7 +383,7 @@
Grupo de informações de totais do Imposto Seletivo
-
+
Valor Total do Imposto Seletivo
@@ -272,7 +395,7 @@
Grupo de informações de totais da CBS/IBS
-
+
Total Base de Calculo
@@ -289,17 +412,17 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total do IBS Estadual
@@ -313,17 +436,17 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total do IBS Municipal
@@ -331,21 +454,11 @@
-
+
Valor total do IBS
-
-
- Total do Crédito Presumido
-
-
-
-
- Total do Crédito Presumido Condição Suspensiva
-
-
@@ -355,29 +468,38 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total da CBS
-
+
+
+
+
+
+ Totalização do estorno de crédito
+
+
+
+
- Total do Crédito Presumido
+ Valor total do IBS estornado
-
+
- Total do Crédito Presumido Condição Suspensiva
+ Valor total da CBS estornada
@@ -390,7 +512,7 @@
Grupo de informações de totais da CBS/IBS com monofasia
-
+
Total Base de Calculo
@@ -407,17 +529,17 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total do IBS Estadual
@@ -431,17 +553,17 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total do IBS Municipal
@@ -449,17 +571,17 @@
-
+
Valor total do IBS
-
+
Total do Crédito Presumido
-
+
Total do Crédito Presumido Condição Suspensiva
@@ -473,27 +595,27 @@
-
+
Total do Diferimento
-
+
Total de devoluções de tributos
-
+
Valor total da CBS
-
+
Total do Crédito Presumido
-
+
Total do Crédito Presumido Condição Suspensiva
@@ -508,32 +630,32 @@
-
+
Valor total do IBS monofásico
-
+
Valor total da CBS monofásica
-
+
Valor total do IBS monofásico sujeito a retenção
-
+
Valor total da CBS monofásica sujeita a retenção
-
+
Valor do IBS monofásico retido anteriormente
-
+
Valor da CBS monofásica retida anteriormente
@@ -541,6 +663,25 @@
+
+
+ Totalização do estorno de crédito
+
+
+
+
+
+ Valor total do IBS estornado
+
+
+
+
+ Valor total da CBS estornada
+
+
+
+
+
@@ -557,27 +698,27 @@
-
+
Quantidade tributada na monofasia
-
+
Alíquota ad rem do IBS
-
+
Alíquota ad rem da CBS
-
+
Valor do IBS monofásico
-
+
Valor da CBS monofásica
@@ -591,27 +732,27 @@
-
+
Quantidade tributada sujeita a retenção.
-
+
Alíquota ad rem do IBS sujeito a retenção
-
+
Valor do IBS monofásico sujeito a retenção
-
+
Alíquota ad rem da CBS sujeita a retenção
-
+
Valor da CBS monofásica sujeita a retenção
@@ -625,27 +766,27 @@
-
+
Quantidade tributada retida anteriormente
-
+
Alíquota ad rem do IBS retido anteriormente
-
+
Valor do IBS retido anteriormente
-
+
Alíquota ad rem da CBS retida anteriormente
-
+
Valor da CBS retida anteriormente
@@ -659,22 +800,22 @@
-
+
Percentual do diferimento do imposto monofásico
-
+
Valor do IBS monofásico diferido
-
+
Percentual do diferimento do imposto monofásico
-
+
Valor da CBS monofásica diferida
@@ -682,12 +823,12 @@
-
+
Total de IBS monofásico do item
-
+
Total da CBS monofásica do item
@@ -702,7 +843,7 @@
IBS / CBS
-
+
Valor do BC
@@ -714,9 +855,9 @@
-
+
- Aliquota do IBS de competência das UF
+ Aliquota do IBS de competência das UF (em percentual)
@@ -734,7 +875,7 @@
Grupo de campos da redução de aliquota
-
+
Valor do IBS de competência das UF
@@ -748,9 +889,9 @@
-
+
- Aliquota do IBS Municipal
+ Aliquota do IBS Municipal (em percentual)
@@ -768,7 +909,7 @@
Grupo de campos da redução de aliquota
-
+
Valor do IBS Municipal
@@ -776,7 +917,7 @@
-
+
Valor do IBS
@@ -788,9 +929,9 @@
-
+
- Aliquota da CBS
+ Aliquota da CBS (em percentual)
@@ -808,7 +949,7 @@
Grupo de campos da redução de aliquota
-
+
Valor da CBS
@@ -821,16 +962,6 @@
Grupo de informações da Tributação Regular. Informar como seria a tributação caso não cumprida a condição resolutória/suspensiva. Exemplo 1: Art. 442, §4. Operações com ZFM e ALC. Exemplo 2: Operações com suspensão do tributo.
-
-
- Grupo de Informações do Crédito Presumido referente ao IBS, quando aproveitado pelo emitente do documento.
-
-
-
-
- Grupo de Informações do Crédito Presumido referente a CBS, quando aproveitado pelo emitente do documento.
-
-
Grupo de informações da composição do valor do IBS e da CBS em compras governamental
@@ -843,14 +974,14 @@
Tipo Redução Base de Cálculo
-
+
Percentual de redução de aliquota do cClassTrib
-
+
- Aliquota Efetiva que será aplicada a Base de Calculo
+ Aliquota Efetiva que será aplicada a Base de Calculo (em percentual)
@@ -860,23 +991,18 @@
Tipo Crédito Presumido
-
-
- Usar tabela Cred Presumido, para o emitente da nota.
-
-
-
+
Percentual do Crédito Presumido
-
+
Valor do Crédito Presumido
-
+
Valor do Crédito Presumido Condição Suspensiva, preencher apenas para cCredPres que possui indicação de Condição Suspensiva
@@ -889,12 +1015,12 @@
Tipo Diferimento
-
+
Percentual do diferimento
-
+
Valor do diferimento
@@ -906,7 +1032,7 @@
Tipo Devolução Tributo
-
+
Valor do tributo devolvido. No fornecimento de energia elétrica, água, esgoto e
gás natural e em outras hipóteses definidas no regulamento
@@ -930,37 +1056,37 @@ gás natural e em outras hipóteses definidas no regulamento
Informar qual seria o cClassTrib caso não cumprida a condição resolutória/suspensiva
-
+
Alíquota do IBS da UF
Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva
-
+
Valor do IBS da UF
Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva
-
+
Alíquota do IBS do Município
Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva
-
+
Valor do IBS do Município
Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva
-
+
Alíquota da CBS
Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva
-
+
Valor da CBS
Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva
@@ -973,20 +1099,20 @@ gás natural e em outras hipóteses definidas no regulamento
Tipo Tributação Compra Governamental
-
-
+
+
Valor que seria devido a UF, sem aplicação do Art. 473. da LC 214/2025
-
-
+
+
Valor que seria devido ao município, sem aplicação do Art. 473. da LC 214/2025
-
-
+
+
Valor que seria devido a CBS, sem aplicação do Art. 473. da LC 214/2025
@@ -1008,9 +1134,9 @@ gás natural e em outras hipóteses definidas no regulamento
4=Municípios
-
+
- Percentual de redução de aliquota em compra goverrnamental
+ Percentual de redução de aliquota em compra governamental
@@ -1030,9 +1156,9 @@ gás natural e em outras hipóteses definidas no regulamento
4=Municípios
-
+
- Percentual de redução de aliquota em compra goverrnamental
+ Percentual de redução de aliquota em compra governamental
@@ -1049,23 +1175,102 @@ gás natural e em outras hipóteses definidas no regulamento
Tipo Transferência de Crédito
-
+
Valor do IBS a ser transferido
-
+
Valor da CBS a ser transferida
+
+
+ Tipo Estorno de Crédito
+
+
+
+
+ Valor do IBS a ser estornado
+
+
+
+
+ Valor da CBS a ser estornada
+
+
+
+
+
+
+ Ano e mês referência do período de apuração (AAAA-MM)
+
+
+
+
+
+
+
+ Tipo Ajuste de Competência
+
+
+
+
+ Ano e mês referência do período de apuração (AAAA-MM)
+
+
+
+
+ Valor do IBS
+
+
+
+
+ Valor da CBS
+
+
+
+
+
+
+ Tipo Crédito Presumido da Operação
+
+
+
+
+ Valor da Base de Cálculo do Crédito Presumido da Operação
+
+
+
+
+ Código de Classificação do Crédito Presumido do IBS e da CBS
+
+
+
+
+ Grupo de Informações do Crédito Presumido referente ao IBS, quando aproveitado pelo emitente do documento.
+
+
+
+
+ Grupo de Informações do Crédito Presumido referente a CBS, quando aproveitado pelo emitente do documento.
+
+
+
+
Tipo Informações do crédito presumido de IBS para fornecimentos a partir da ZFM
+
+
+ Ano e mês referência do período de apuração (AAAA-MM)
+
+
Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM
@@ -1078,7 +1283,7 @@ OBS: Percentuais definidos no art. 450, § 1º, da LC 214/25 para o cálculo do
-
+
Valor do crédito presumido calculado sobre o saldo devedor apurado
diff --git a/NFe.AppTeste/Schemas/leiauteConsSitNFe_v4.00.xsd b/NFe.AppTeste/Schemas/leiauteConsSitNFe_v4.00.xsd
index a56621542..a43c7e033 100644
--- a/NFe.AppTeste/Schemas/leiauteConsSitNFe_v4.00.xsd
+++ b/NFe.AppTeste/Schemas/leiauteConsSitNFe_v4.00.xsd
@@ -4,7 +4,6 @@
-
@@ -316,7 +315,7 @@
-
+
diff --git a/NFe.AppTeste/Schemas/leiauteInutNFe_v4.00.xsd b/NFe.AppTeste/Schemas/leiauteInutNFe_v4.00.xsd
index 819597c1a..886e05d0f 100644
--- a/NFe.AppTeste/Schemas/leiauteInutNFe_v4.00.xsd
+++ b/NFe.AppTeste/Schemas/leiauteInutNFe_v4.00.xsd
@@ -76,7 +76,7 @@
-
+
diff --git a/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd b/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd
index 12d2c07dc..9409ba120 100644
--- a/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd
+++ b/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd
@@ -94,6 +94,11 @@ SCAN 900-999
Data e Hora da saída ou de entrada da mercadoria / produto (AAAA-MM-DDTHH:mm:ssTZD)
+
+
+ Data da previsão de entrega ou disponibilização do bem (AAAA-MM-DD)
+
+
Tipo do Documento Fiscal (0 - entrada; 1 - saída)
@@ -269,7 +274,8 @@ Campo preenchido somente quando “indPres = 5 (Operação presencial, fora do e
1 - emissão de NF-e avulsa pelo Fisco;
2 - emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site
do Fisco;
-3- emissão de NF-e pelo contribuinte com aplicativo fornecido pelo Fisco.
+3 - emissão de NF-e pelo contribuinte com aplicativo fornecido pelo Fisco;
+4 - emissão de NF-e por Provedor de Assinatura e Autorização - PAA.
@@ -502,7 +508,7 @@ Preencher com "2B", quando se tratar de Cupom Fiscal emitido por máqu
-
+
Chave de acesso da NF-e de antecipação de pagamento
@@ -993,6 +999,11 @@ Formato ”CFOP9999”.
+
+
+ Classificação para subapuração do IBS na ZFM
+
+
Código EX TIPI (3 posições)
@@ -2551,13 +2562,15 @@ ambiente.
- Motivo da desoneração do ICMS:3-Uso na agropecuária;9-Outros;12-Fomento agropecuário
+ Motivo da desoneração do ICMS:3-Uso na agropecuária;9-Outros; 10=Deficiente Condutor (Convênio ICMS 38/12); 11=Deficiente Não Condutor (Convênio ICMS 38/12); 12-Fomento agropecuário
+
+
@@ -3391,11 +3404,39 @@ Informar o motivo da desoneração:
Percentual de redução da BC
+
+
+ Código de Benefício Fiscal na UF aplicado ao item quando houver RBC.
+
+
+
+
+
+
+
+
Alíquota do ICMS
+
+
+
+ Valor do ICMS da Operação
+
+
+
+
+ Percentual do diferemento
+
+
+
+
+ Valor do ICMS da diferido
+
+
+
Valor do ICMS
@@ -3418,6 +3459,23 @@ Informar o motivo da desoneração:
+
+
+
+ Percentual do diferimento do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
+
+ Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP) diferido.
+
+
+
+
+ Valor efetivo do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
+
+
+
@@ -3565,12 +3623,14 @@ Operação interestadual para consumidor final com partilha do ICMS devido na o
Tributação pelo ICMS
10 - Tributada e com cobrança do ICMS por substituição tributária;
+20 – Redução de base de cálculo
90 – Outros.
+
@@ -3689,6 +3749,43 @@ Operação interestadual para consumidor final com partilha do ICMS devido na o
Sigla da UF para qual é devido o ICMS ST da operação.
+
+
+ Grupo desoneração
+
+
+
+ Valor do ICMS de desoneração
+
+
+
+
+ Motivo da desoneração do ICMS:9-Outros;10=Deficiente Condutor (Convênio ICMS 38/12) 11=Deficiente Não Condutor (Convênio ICMS 38/12)
+
+
+
+
+
+
+
+
+
+
+
+
+ Indica se o valor do ICMS desonerado (vICMSDeson) deduz do valor do item (vProd):
+0=Valor do ICMS desonerado (vICMSDeson) não deduz do valor do item (vProd) / total da NF-e;
+1=Valor do ICMS desonerado (vICMSDeson) deduz do valor do item (vProd) / total da NF-e.
+
+
+
+
+
+
+
+
+
+
@@ -6477,6 +6574,40 @@ tipo de ato concessório:
+
+
+ Grupo de Informação do Provedor de Assinatura e Autorização
+
+
+
+
+
+ CNPJ do Provedor de Assinatura e Autorização
+
+
+
+
+ Assinatura RSA do Emitente para DFe gerados por PAA
+
+
+
+
+
+ Assinatura digital padrão RSA
+ Converter o atributo Id do DFe para array de bytes e assinar com a chave privada do RSA com algoritmo SHA1 gerando um valor no formato base64.
+
+
+
+
+ Chave Publica no padrão XML RSA Key
+
+
+
+
+
+
+
+
@@ -6489,7 +6620,7 @@ tipo de ato concessório:
-
+
@@ -6515,15 +6646,15 @@ tipo de ato concessório:
-
+
-
+
-
+
-
+
-
+
@@ -7345,7 +7476,15 @@ alterado para tamanho variavel 1-4. (NT2011/004)
- Tipo de Nota de Débito: 01=Transferência de créditos para Cooperativas; 02=Anulação de Crédito por Saídas Imunes/Isentas; 03=Débitos de notas fiscais não processadas na apuração; 04=Multa e juros; 05=Transferência de crédito de sucessão); 06=Pagamento antecipado; 07=Perda em estoque
+ Tipo de Nota de Débito:
+ 01=Transferência de créditos para Cooperativas;
+ 02=Anulação de Crédito por Saídas Imunes/Isentas;
+ 03=Débitos de notas fiscais não processadas na apuração;
+ 04=Multa e juros;
+ 05=Transferência de crédito na sucessão;
+ 06=Pagamento antecipado;
+ 07=Perda em estoque;
+ 08=Desenquadramento do SN;
@@ -7356,16 +7495,26 @@ alterado para tamanho variavel 1-4. (NT2011/004)
+
- Tipo de Nota de Crédito: 01=Multa e juros; 02=Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)
+ Tipo de Nota de Crédito:
+ 01=Multa e juros;
+ 02=Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25);
+ 03=Retorno por recusa na entrega ou por não localização do destinatário na tentativa de entrega;
+ 04=Redução de valores;
+ 05=Transferência de crédito na sucessão;
+
+
+
+
@@ -7378,6 +7527,7 @@ alterado para tamanho variavel 1-4. (NT2011/004)
+
@@ -7554,4 +7704,4 @@ alterado para tamanho variavel 1-4. (NT2011/004)
-
\ No newline at end of file
+
diff --git a/NFe.AppTeste/Schemas/nfe_v4.00.xsd b/NFe.AppTeste/Schemas/nfe_v4.00.xsd
index 4fe917aea..5b2eb0810 100644
--- a/NFe.AppTeste/Schemas/nfe_v4.00.xsd
+++ b/NFe.AppTeste/Schemas/nfe_v4.00.xsd
@@ -1,4 +1,5 @@
+
@@ -6,4 +7,4 @@
Nota Fiscal Eletrônica
-
+
\ No newline at end of file
diff --git a/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd b/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd
index dfabc3366..4445319c9 100644
--- a/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd
+++ b/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd
@@ -1,4 +1,5 @@
+
@@ -52,7 +53,7 @@
-
+
@@ -92,7 +93,7 @@
-
+
@@ -102,7 +103,7 @@
-
+
@@ -112,7 +113,7 @@
-
+
@@ -521,7 +522,7 @@
-
+
@@ -595,4 +596,13 @@
-
+
+
+ Tipo que representa uma chave publica padrão RSA
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NFe.Classes/Informacoes/Destinatario/dest.cs b/NFe.Classes/Informacoes/Destinatario/dest.cs
index df6e40e78..8132cf7e3 100644
--- a/NFe.Classes/Informacoes/Destinatario/dest.cs
+++ b/NFe.Classes/Informacoes/Destinatario/dest.cs
@@ -1,15 +1,15 @@
+using DFe.Classes.Flags;
using System;
using System.Xml.Serialization;
-using DFe.Classes.Flags;
-using NFe.Classes.Servicos.Tipos;
namespace NFe.Classes.Informacoes.Destinatario
{
public class dest
{
- private const string ErroCpfCnpjPreenchidos = "Somente preencher um dos campos: CNPJ ou CPF, para um objeto do tipo dest!";
+ private const string ErroCpfCnpjIdEstrangeiroPreenchidos = "Somente preencher um dos campos: CNPJ, CPF ou idEstrangeiro, para um objeto do tipo dest!";
private string cnpj;
private string cpf;
+ private string _idEstrangeiro;
private readonly VersaoServico _versao;
///
@@ -34,13 +34,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
- throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf) || !string.IsNullOrEmpty(idEstrangeiro))
+ throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
+
+ cnpj = value;
}
}
@@ -52,20 +51,31 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
- throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj) || !string.IsNullOrEmpty(idEstrangeiro))
+ throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
+
+ cpf = value;
}
}
///
/// E03a - Identificador do destinatário, em caso de comprador estrangeiro
///
- public string idEstrangeiro { get; set; }
+ public string idEstrangeiro
+ {
+ get { return _idEstrangeiro; }
+ set
+ {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(CPF))
+ throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
+
+ _idEstrangeiro = value;
+ }
+ }
///
/// E04 - Razão Social ou nome do destinatário
diff --git a/NFe.Classes/Informacoes/Emitente/emit.cs b/NFe.Classes/Informacoes/Emitente/emit.cs
index 130fd1cea..3d85aa7f6 100644
--- a/NFe.Classes/Informacoes/Emitente/emit.cs
+++ b/NFe.Classes/Informacoes/Emitente/emit.cs
@@ -17,14 +17,12 @@ public string CNPJ
get { return _cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cpf))
- _cnpj = Regex.Match(value, @"\d+").Value;
-
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cnpj = value;
}
}
@@ -36,13 +34,12 @@ public string CPF
get { return _cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cnpj))
- _cpf = Regex.Match(value, @"\d+").Value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cpf = value;
}
}
diff --git a/NFe.Classes/Informacoes/Transporte/transporta.cs b/NFe.Classes/Informacoes/Transporte/transporta.cs
index 301c59e0e..6ed5f97d1 100644
--- a/NFe.Classes/Informacoes/Transporte/transporta.cs
+++ b/NFe.Classes/Informacoes/Transporte/transporta.cs
@@ -16,13 +16,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -34,13 +33,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
diff --git a/NFe.Classes/Informacoes/autXML.cs b/NFe.Classes/Informacoes/autXML.cs
index 1fca847ad..d0e16ac0b 100644
--- a/NFe.Classes/Informacoes/autXML.cs
+++ b/NFe.Classes/Informacoes/autXML.cs
@@ -16,13 +16,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -34,13 +33,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
}
diff --git a/NFe.Classes/Informacoes/entrega.cs b/NFe.Classes/Informacoes/entrega.cs
index bd9d4372c..b9ca42d80 100644
--- a/NFe.Classes/Informacoes/entrega.cs
+++ b/NFe.Classes/Informacoes/entrega.cs
@@ -17,13 +17,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -35,13 +34,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
diff --git a/NFe.Classes/Informacoes/retirada.cs b/NFe.Classes/Informacoes/retirada.cs
index 6b190f784..b5268890f 100644
--- a/NFe.Classes/Informacoes/retirada.cs
+++ b/NFe.Classes/Informacoes/retirada.cs
@@ -17,13 +17,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -35,13 +34,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
diff --git a/NFe.Classes/Servicos/ConsultaCadastro/infConsEnv.cs b/NFe.Classes/Servicos/ConsultaCadastro/infConsEnv.cs
index d342db4f9..5ae1f4072 100644
--- a/NFe.Classes/Servicos/ConsultaCadastro/infConsEnv.cs
+++ b/NFe.Classes/Servicos/ConsultaCadastro/infConsEnv.cs
@@ -33,13 +33,12 @@ public string IE
get { return _ie; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(CPF))
- _ie = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(CPF))
throw new ArgumentException(ErroCpfCnpjIePreenchidos);
- }
+
+ _ie = value;
}
}
@@ -52,13 +51,12 @@ public string CNPJ
get { return _cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CPF) & string.IsNullOrEmpty(IE))
- _cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CPF) || !string.IsNullOrEmpty(IE))
throw new ArgumentException(ErroCpfCnpjIePreenchidos);
- }
+
+ _cnpj = value;
}
}
@@ -71,13 +69,12 @@ public string CPF
get { return _cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(IE))
- _cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(IE))
throw new ArgumentException(ErroCpfCnpjIePreenchidos);
- }
+
+ _cpf = value;
}
}
}
diff --git a/NFe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs b/NFe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
index 9954fdeab..c2352deac 100644
--- a/NFe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
+++ b/NFe.Classes/Servicos/DistribuicaoDFe/distDFeInt.cs
@@ -38,13 +38,12 @@ public string CNPJ
get { return _cNPJ; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cPF))
- _cNPJ = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cPF))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cNPJ = value;
}
}
@@ -56,13 +55,12 @@ public string CPF
get { return _cPF; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(_cNPJ))
- _cPF = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(_cNPJ))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ _cPF = value;
}
}
diff --git a/NFe.Classes/Servicos/Evento/dest.cs b/NFe.Classes/Servicos/Evento/dest.cs
index 3a84c0b8d..8c93b51d7 100644
--- a/NFe.Classes/Servicos/Evento/dest.cs
+++ b/NFe.Classes/Servicos/Evento/dest.cs
@@ -26,13 +26,12 @@ public string CNPJ
get { return _cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CPF) & string.IsNullOrEmpty(idEstrangeiro))
- _cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CPF) || !string.IsNullOrEmpty(idEstrangeiro))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _cnpj = value;
}
}
@@ -44,13 +43,12 @@ public string CPF
get { return _cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(idEstrangeiro))
- _cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(idEstrangeiro))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _cpf = value;
}
}
@@ -63,12 +61,10 @@ public string idEstrangeiro
set
{
if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(CNPJ) & string.IsNullOrEmpty(CPF))
- _idEstrangeiro = value;
- else
- {
+ if (!string.IsNullOrEmpty(CNPJ) || !string.IsNullOrEmpty(CPF))
throw new ArgumentException(ErroCpfCnpjIdEstrangeiroPreenchidos);
- }
+
+ _idEstrangeiro = value;
}
}
diff --git a/NFe.Classes/Servicos/Evento/infEventoEnv.cs b/NFe.Classes/Servicos/Evento/infEventoEnv.cs
index acbcee2aa..8371af591 100644
--- a/NFe.Classes/Servicos/Evento/infEventoEnv.cs
+++ b/NFe.Classes/Servicos/Evento/infEventoEnv.cs
@@ -37,13 +37,12 @@ public string CNPJ
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -55,13 +54,12 @@ public string CPF
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}
diff --git a/NFe.Classes/Servicos/Evento/infEventoRet.cs b/NFe.Classes/Servicos/Evento/infEventoRet.cs
index 51d3eebbd..8fc1fbabe 100644
--- a/NFe.Classes/Servicos/Evento/infEventoRet.cs
+++ b/NFe.Classes/Servicos/Evento/infEventoRet.cs
@@ -78,13 +78,12 @@ public string CNPJDest
get { return cnpj; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cpf))
- cnpj = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cpf))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cnpj = value;
}
}
@@ -96,13 +95,12 @@ public string CPFDest
get { return cpf; }
set
{
- if (string.IsNullOrEmpty(value)) return;
- if (string.IsNullOrEmpty(cnpj))
- cpf = value;
- else
- {
+ if (string.IsNullOrEmpty(value))
+ return;
+ if (!string.IsNullOrEmpty(cnpj))
throw new ArgumentException(ErroCpfCnpjPreenchidos);
- }
+
+ cpf = value;
}
}