@sinete/nfe 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,7 +57,7 @@ A entrada (`DadosNfe`) usa os nomes do MOC nos campos e nomes em português nos
57
57
 
58
58
  ### NF-e com DANFE Simplificado Tipo 2 (`tpImp` 6)
59
59
 
60
- A NT 2026.002 v1.11 dá à NF-e modelo 55 com `tpImp: '6'` o mesmo `infNFeSupl` da NFC-e: o QR Code é obrigatório (ZX02-10, rejeição 394), só na versão 3 (ZX02-220, rejeição 672; `opcoes.qrCode` com a versão 2 vira ocorrência de montagem em `qrCode.versao`) e com o endereço da NFC-e da UF (ZX02-20, observação 3), com as mesmas opções `urlQrCode` e `urlChave`. A contingência off-line (`tpEmis` 9) passa a valer para ela, com os oito parâmetros e a assinatura do QR Code; na NF-e com outro `tpImp` continua recusada (B22-10, rejeição 711). As demais regras que a NT estende da NFC-e para a NF-e Tipo 2 ficam com a SEFAZ por enquanto.
60
+ A NT 2026.002 v1.11 dá à NF-e modelo 55 com `tpImp: '6'` o mesmo `infNFeSupl` da NFC-e: o QR Code é obrigatório (ZX02-10, rejeição 394), só na versão 3 (ZX02-220, rejeição 672; `opcoes.qrCode` com a versão 2 vira ocorrência de montagem em `qrCode.versao`) e com o endereço da NFC-e da UF (ZX02-20, observação 3), com as mesmas opções `urlQrCode` e `urlChave`. A contingência off-line (`tpEmis` 9) passa a valer para ela, com os oito parâmetros e a assinatura do QR Code; na NF-e com outro `tpImp` continua recusada (B22-10, rejeição 711). As regras da NFC-e que a NT estende à Tipo 2 são conferidas na montagem, com o caminho da entrada e a rejeição na mensagem: sem `dhSaiEnt` (B10-10, 705), só de saída (B11-10, 706), operação interna (B11a-10, 707), finalidade normal (B25-20, 715), consumidor final (B25a-10, 716), presencial ou entrega a domicílio (B25b-20, 717), sem nota referenciada (BA01-10, 708), sem IE de substituto (C18-10, 718), destinatário na entrega a domicílio (E01-20, 787), sem local de retirada (F01-10, 669), item no total (I17b-10, 774), os grupos vedados de item (veículo, arma, RECOPI, partilha e repasse do ICMS, ICMS da UF de destino, IPI, II, PIS-ST, COFINS-ST, devolução), o frete e o transporte (X02-10 a X22-10), cobrança (Y01-10, 760), compra (ZB01-10, 762) e cana (ZC01-10, 763); em homologação, a descrição do primeiro item é a literal da I04-10. Sem `indPres` e sem `idDest`, a Tipo 2 sai com 1 nos dois, como a NFC-e. O local de entrega (G01-10, 670) não é conferido: a NT o marca como implementação futura. As regras só da NFC-e (pagamento, tpImp 4 e 5, destinatário contribuinte, transportador, ISSQN, exportação) não valem para a Tipo 2.
61
61
 
62
62
  `assinarNfe` acrescenta o `infNFeSupl` antes da `Signature`. Para assinar em três fases (A3, HSM), `assinaturaQrCode(nota, assinador)` e `comQrCode(nota, assinatura)` dão o texto que vai para o `prepararAssinatura` do `@sinete/core/xml`.
63
63
 
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,8 @@ export declare function assinarParametros(parametros: string, signer: Assinador)
87
87
  export declare const NFCE_LIMITE_SEM_DESTINATARIO = "10000.00";
88
88
  /** Identificação já resolvida pelo montador (com os padrões aplicados). */
89
89
  export interface IdeNfce {
90
+ /** 65 é a NFC-e; 55, a NF-e com DANFE Simplificado Tipo 2 (tpImp 6), que a NT 2026.002 põe sob parte destas regras. */
91
+ readonly mod: '55' | '65';
90
92
  readonly tpNF: string;
91
93
  readonly idDest: string;
92
94
  readonly tpImp: string;
@@ -97,6 +99,12 @@ export interface IdeNfce {
97
99
  /**
98
100
  * Regras da NFC-e sobre a entrada (origem `entrada`, ADR 0011), todas de aplicação obrigatória. Grupos que a NFC-e
99
101
  * não tem saem como `grupo_vedado` no caminho da entrada.
102
+ *
103
+ * A NT 2026.002 v1.11 (homologação em 01/07/2026, produção em 03/08/2026) estende parte delas à NF-e com DANFE
104
+ * Simplificado Tipo 2 (`mod` 55, `tpImp` 6): as que a NT escreve "Se NFC-e ou NF-e com DANFE Simplificado Tipo 2". As
105
+ * que ela não cita (data de previsão de entrega, tpImp 4 e 5, cMunFGIBS, compra governamental, o destinatário fora da
106
+ * E01-20, ISSQN, transportador, pagamento e exportação) seguem só da NFC-e (`soNfce`). A G01-10 (local de entrega,
107
+ * 670) fica de fora: a NT a marca como implementação futura.
100
108
  */
101
109
  export declare function conferirNfce(input: DadosNfe, ide: IdeNfce, issues: Issues): void;
102
110
  /** O `pag` montado, na forma que as regras de pagamento leem e completam. */
@@ -1 +1 @@
1
- {"version":3,"file":"nfce.d.ts","sourceRoot":"","sources":["../../src/build/nfce.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAK5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GACxB;IACE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,8GAA8G;IAC9G,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oHAAoH;IACpH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAcD;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAIhF;AAuBD,+GAA+G;AAC/G,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,sHAAsH;AACtH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnG,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,EAAE,WAAW,EACd,EAAE,EAAE,gBAAgB,GACnB,OAAO,CAAC;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBrE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ9F;AAKD,sHAAsH;AACtH,eAAO,MAAM,4BAA4B,aAAa,CAAC;AASvD,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoKhF;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACjG,EAAE,CAAC;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA8CjF"}
1
+ {"version":3,"file":"nfce.d.ts","sourceRoot":"","sources":["../../src/build/nfce.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -594,7 +594,7 @@ function formatarDh(data, deslocamentoMin) {
594
594
  }
595
595
 
596
596
  // packages/nfe/src/versao-gerada.ts
597
- var VERSAO_PACOTE = "0.5.0";
597
+ var VERSAO_PACOTE = "0.6.0";
598
598
 
599
599
  // packages/nfe/src/build/destinatario.ts
600
600
  import { ufPorSigla } from "@sinete/core";
@@ -1627,11 +1627,13 @@ var TPAG_VEDADOS = {
1627
1627
  "99": "tPag 99 (outros) não é aceito na NFC-e (YA02-50, rejeição 436, NT 2020.006)"
1628
1628
  };
1629
1629
  function conferirNfce(input, ide, issues) {
1630
- const vedado = (path, msg) => issues.add(path, "grupo_vedado", `NFC-e ${msg}`);
1631
- const invalido = (path, msg) => issues.add(path, "campo_invalido", `NFC-e ${msg}`);
1630
+ const soNfce = ide.mod === "65";
1631
+ const doc = soNfce ? "NFC-e" : "NF-e com DANFE Simplificado Tipo 2";
1632
+ const vedado = (path, msg) => issues.add(path, "grupo_vedado", `${doc} ${msg}`);
1633
+ const invalido = (path, msg) => issues.add(path, "campo_invalido", `${doc} ${msg}`);
1632
1634
  if (input.dhSaiEnt !== undefined)
1633
1635
  vedado("dhSaiEnt", "sem data de entrada ou saída (B10-10, rejeição 705)");
1634
- if (input.dPrevEntrega !== undefined) {
1636
+ if (soNfce && input.dPrevEntrega !== undefined) {
1635
1637
  vedado("dPrevEntrega", "sem data de previsão de entrega (NT 2025.002, B10a-10, rejeição 1153)");
1636
1638
  }
1637
1639
  if (ide.tpNF !== "1")
@@ -1639,7 +1641,7 @@ function conferirNfce(input, ide, issues) {
1639
1641
  if (ide.idDest !== "1") {
1640
1642
  invalido("idDest", "só em operação interna, idDest 1 (B11a-10, rejeição 707)");
1641
1643
  }
1642
- if (ide.tpImp !== "4" && ide.tpImp !== "5") {
1644
+ if (soNfce && ide.tpImp !== "4" && ide.tpImp !== "5") {
1643
1645
  invalido("tpImp", "com DANFC-e: tpImp 4 (impresso) ou 5 (mensagem eletrônica) (B21-10, rejeição 709)");
1644
1646
  }
1645
1647
  if (ide.finNFe !== "1")
@@ -1649,27 +1651,29 @@ function conferirNfce(input, ide, issues) {
1649
1651
  if (!["1", "4", "5"].includes(ide.indPres)) {
1650
1652
  invalido("indPres", "só presencial: indPres 1, 4 (entrega a domicílio) ou 5 (NT 2025.002, B25b-20, rejeição 717)");
1651
1653
  }
1652
- if (input.cMunFGIBS !== undefined && ide.indPres !== "5") {
1654
+ if (soNfce && input.cMunFGIBS !== undefined && ide.indPres !== "5") {
1653
1655
  invalido("cMunFGIBS", "com cMunFGIBS só em operação presencial fora do estabelecimento, indPres 5 (NT 2025.002, B25b-60, rejeição 1000)");
1654
1656
  }
1655
- if (input.cMunFGIBS === undefined && ide.indPres === "5") {
1657
+ if (soNfce && input.cMunFGIBS === undefined && ide.indPres === "5") {
1656
1658
  issues.add("cMunFGIBS", "campo_obrigatorio", "NFC-e presencial fora do estabelecimento (indPres 5) informa cMunFGIBS (NT 2025.002, B25b-70, rejeição 1005)");
1657
1659
  }
1658
1660
  if (input.referenciadas !== undefined && input.referenciadas.length > 0) {
1659
1661
  vedado("referenciadas", "não referencia documento fiscal (BA01-10, rejeição 708)");
1660
1662
  }
1661
- if (input.gCompraGov !== undefined)
1663
+ if (soNfce && input.gCompraGov !== undefined)
1662
1664
  vedado("gCompraGov", "sem compra governamental (NT 2025.002, BB01-10, rejeição 1006)");
1663
1665
  if (input.emitente.IEST !== undefined)
1664
1666
  vedado("emitente.IEST", "sem IE de substituto tributário (C18-10, rejeição 718)");
1665
1667
  const d = input.destinatario;
1666
1668
  if (ide.indPres === "4" && d === undefined) {
1667
- issues.add("destinatario", "campo_obrigatorio", "NFC-e com entrega a domicílio identifica o destinatário (E01-20, rejeição 787)");
1669
+ issues.add("destinatario", "campo_obrigatorio", `${doc} com entrega a domicílio identifica o destinatário (E01-20, rejeição 787)`);
1668
1670
  }
1669
- if (ide.indPres === "4" && d !== undefined && d.endereco === undefined) {
1671
+ if (input.retirada !== undefined)
1672
+ vedado("retirada", "sem local de retirada (F01-10, rejeição 669)");
1673
+ if (soNfce && ide.indPres === "4" && d !== undefined && d.endereco === undefined) {
1670
1674
  issues.add("destinatario.endereco", "campo_obrigatorio", "NFC-e com entrega a domicílio informa o endereço do destinatário (E05-20, rejeição 788)");
1671
1675
  }
1672
- if (d !== undefined) {
1676
+ if (soNfce && d !== undefined) {
1673
1677
  if (d.CNPJ !== undefined && input.emitente.CNPJ !== undefined && digitos2(d.CNPJ) === digitos2(input.emitente.CNPJ)) {
1674
1678
  invalido("destinatario.CNPJ", "com destinatário igual ao emitente (E02-20, rejeição 220)");
1675
1679
  }
@@ -1688,15 +1692,18 @@ function conferirNfce(input, ide, issues) {
1688
1692
  vedado(`${p}.produto.especifico.arma`, "sem armamento (L01-10, rejeição 738)");
1689
1693
  if (esp.nRECOPI !== undefined)
1690
1694
  vedado(`${p}.produto.especifico.nRECOPI`, "sem papel imune RECOPI (LB01-10, rejeição 348)");
1691
- if (it.produto.tpCredPresIBSZFM !== undefined) {
1695
+ if (it.produto.indTot === "0") {
1696
+ invalido(`${p}.produto.indTot`, "sem item fora do total, indTot 1 (I17b-10, rejeição 774)");
1697
+ }
1698
+ if (soNfce && it.produto.tpCredPresIBSZFM !== undefined) {
1692
1699
  vedado(`${p}.produto.tpCredPresIBSZFM`, "sem classificação para subapuração do IBS na ZFM (NT 2025.002, I05k-10, rejeição 1165)");
1693
1700
  }
1694
1701
  const cfop = it.produto.CFOP.replace(/\D/g, "");
1695
1702
  const imp = it.impostos;
1696
- if (cfop === CFOP_ISSQN && imp.issqn === undefined) {
1703
+ if (soNfce && cfop === CFOP_ISSQN && imp.issqn === undefined) {
1697
1704
  issues.add(`${p}.impostos.issqn`, "combinacao_invalida", "NFC-e com CFOP 5.933 tem o grupo do ISSQN (I08-160, rejeição 374)");
1698
1705
  }
1699
- if (cfop !== CFOP_ISSQN && imp.issqn !== undefined) {
1706
+ if (soNfce && cfop !== CFOP_ISSQN && imp.issqn !== undefined) {
1700
1707
  issues.add(`${p}.produto.CFOP`, "combinacao_invalida", "NFC-e com ISSQN usa o CFOP 5.933 (I08-170, rejeição 374)");
1701
1708
  }
1702
1709
  const icms = imp.icms;
@@ -1725,10 +1732,10 @@ function conferirNfce(input, ide, issues) {
1725
1732
  if (tr !== undefined && tr.modFrete !== "9" && !entrega) {
1726
1733
  invalido("transporte.modFrete", "sem frete fora da entrega a domicílio: modFrete 9 (X02-10, rejeição 753)");
1727
1734
  }
1728
- if (tr?.transportador !== undefined && !entrega) {
1735
+ if (soNfce && tr?.transportador !== undefined && !entrega) {
1729
1736
  vedado("transporte.transportador", "só tem transportador na entrega a domicílio (X03-10, rejeição 754)");
1730
1737
  }
1731
- if (entrega && tr?.transportador === undefined) {
1738
+ if (soNfce && entrega && tr?.transportador === undefined) {
1732
1739
  issues.add("transporte.transportador", "campo_obrigatorio", "NFC-e com entrega a domicílio identifica o transportador (X03-20, rejeição 786)");
1733
1740
  }
1734
1741
  if (tr?.retTransp !== undefined)
@@ -1739,6 +1746,16 @@ function conferirNfce(input, ide, issues) {
1739
1746
  vedado("transporte.reboque", "sem reboque (X22-10, rejeição 757)");
1740
1747
  if (input.cobranca !== undefined)
1741
1748
  vedado("cobranca", "sem fatura nem duplicata (Y01-10, rejeição 760)");
1749
+ if (soNfce)
1750
+ conferirPagamentoNfce(input, issues);
1751
+ if (soNfce && input.exporta !== undefined)
1752
+ vedado("exporta", "sem comércio exterior (ZA01-30, rejeição 814)");
1753
+ if (input.compra !== undefined)
1754
+ vedado("compra", "sem dados de compra (ZB01-10, rejeição 762)");
1755
+ if (input.cana !== undefined)
1756
+ vedado("cana", "sem aquisição de cana (ZC01-10, rejeição 763)");
1757
+ }
1758
+ function conferirPagamentoNfce(input, issues) {
1742
1759
  if (input.pagamento === undefined || input.pagamento.detPag.length === 0) {
1743
1760
  issues.add("pagamento", "campo_obrigatorio", "a NFC-e informa o pagamento: tPag 90 (sem pagamento) é recusado (YA02-40, rejeição 899)");
1744
1761
  } else {
@@ -1751,12 +1768,6 @@ function conferirNfce(input, ide, issues) {
1751
1768
  }
1752
1769
  });
1753
1770
  }
1754
- if (input.exporta !== undefined)
1755
- vedado("exporta", "sem comércio exterior (ZA01-30, rejeição 814)");
1756
- if (input.compra !== undefined)
1757
- vedado("compra", "sem dados de compra (ZB01-10, rejeição 762)");
1758
- if (input.cana !== undefined)
1759
- vedado("cana", "sem aquisição de cana (ZC01-10, rejeição 763)");
1760
1771
  }
1761
1772
  function pagamentoNfce(pag, vNF, issues) {
1762
1773
  const total = pag.detPag.reduce((a, p) => a.plus(Decimal.of(p.vPag)), Decimal.ZERO);
@@ -2628,7 +2639,8 @@ async function montarNfe(entrada, opcoes) {
2628
2639
  return { ok: false, ocorrencias: issues.classificadas };
2629
2640
  }
2630
2641
  const nfce = mod === "65";
2631
- const indPres = entrada.indPres ?? (nfce ? "1" : finNFeIn === "2" || finNFeIn === "3" ? "0" : "9");
2642
+ const tipo2 = !nfce && entrada.tpImp === "6";
2643
+ const indPres = entrada.indPres ?? (nfce || tipo2 ? "1" : finNFeIn === "2" || finNFeIn === "3" ? "0" : "9");
2632
2644
  const indFinal = entrada.indFinal ?? (nfce || entrada.destinatario?.indIEDest === "9" ? "1" : "0");
2633
2645
  const ctx = new Ctx(issues, { ...MODES, ...opcoes.arredondamento }, finNFeIn !== "2" && finNFeIn !== "3");
2634
2646
  const pRedutorGov = entrada.gCompraGov && ctx.req(entrada.gCompraGov.pRedutor, "gCompraGov.pRedutor", D0302A04);
@@ -2727,7 +2739,7 @@ async function montarNfe(entrada, opcoes) {
2727
2739
  issues.add("contingencia.tpEmis", "contingencia_invalida", "a NFC-e não é autorizada pela SVC; a contingência dela é off-line, tpEmis 9 (B22-70, rejeição 783)");
2728
2740
  }
2729
2741
  }
2730
- const idDest = entrada.idDest ?? (nfce ? "1" : destUf === "EX" ? "3" : destUf !== undefined && destUf !== emitUf ? "2" : "1");
2742
+ const idDest = entrada.idDest ?? (nfce || tipo2 ? "1" : destUf === "EX" ? "3" : destUf !== undefined && destUf !== emitUf ? "2" : "1");
2731
2743
  const tpImp = entrada.tpImp ?? (nfce ? "4" : "1");
2732
2744
  conferirDestinatario(entrada, {
2733
2745
  mod,
@@ -2737,8 +2749,9 @@ async function montarNfe(entrada, opcoes) {
2737
2749
  indFinal,
2738
2750
  producao: opcoes.ambiente === "producao"
2739
2751
  }, issues);
2740
- if (nfce) {
2752
+ if (nfce || tipo2) {
2741
2753
  conferirNfce(entrada, {
2754
+ mod: nfce ? "65" : "55",
2742
2755
  tpNF: entrada.tpNF,
2743
2756
  idDest,
2744
2757
  tpImp,
@@ -2777,7 +2790,7 @@ async function montarNfe(entrada, opcoes) {
2777
2790
  const semIe = !nfce && entrada.emitente.IE === undefined;
2778
2791
  const itens = entrada.itens.map((it, n) => montarItem(ctx, it, n, finNFeIn === "1", semIe));
2779
2792
  const primeiro = itens[0];
2780
- if (nfce && opcoes.ambiente === "homologacao" && primeiro !== undefined) {
2793
+ if ((nfce || tipo2) && opcoes.ambiente === "homologacao" && primeiro !== undefined) {
2781
2794
  primeiro.det.prod.xProd = XPROD_HOMOLOGACAO_NFCE;
2782
2795
  }
2783
2796
  const classificados = entrada.itens.map((it, n) => ({ it, n })).filter(({ it }) => it.impostos.ibsCbs?.classificacao !== undefined);
@@ -2876,7 +2889,7 @@ async function montarNfe(entrada, opcoes) {
2876
2889
  grupoInvalido(TISCt, "IS", imp.IS, is, issues);
2877
2890
  }
2878
2891
  });
2879
- const substituidos = opcoes.ambiente === "homologacao" ? ["destinatario.xNome", ...nfce ? ["itens[0].produto.xProd"] : []] : [];
2892
+ const substituidos = opcoes.ambiente === "homologacao" ? ["destinatario.xNome", ...nfce || tipo2 ? ["itens[0].produto.xProd"] : []] : [];
2880
2893
  conferirTextosDaEntrada(entrada, pl.infNFe, issues, new Set(substituidos));
2881
2894
  exclusivoIbsCbs(entrada, { nfce, dhEmi, instantes: [agora, fatoGerador] }, issues);
2882
2895
  if (!issues.empty)
@@ -4595,5 +4608,5 @@ export {
4595
4608
  urlsNfce
4596
4609
  };
4597
4610
 
4598
- //# debugId=ED0E3E2F03183E8464756E2164756E21
4611
+ //# debugId=870986C8C708F67A64756E2164756E21
4599
4612
  //# sourceMappingURL=index.js.map