node-sped-nfe 1.0.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 +75 -0
- package/docs/README.md +49 -0
- package/docs/xml.md +1653 -0
- package/index.js +5 -0
- package/package.json +19 -0
- package/testes/assinar.js +16 -0
- package/testes/nfe.js +166 -0
- package/testes/nfe.json +194 -0
- package/testes/nfe.xml +292 -0
- package/testes/nfe_guara.xml +1 -0
- package/testes/nfe_guara_sign.xml +1 -0
- package/testes/nfe_guara_sign_lote.xml +1 -0
- package/testes/nfe_teste.json +45 -0
- package/utils/eventos.js +32 -0
- package/utils/make.js +798 -0
- package/utils/schemas/consReciNFe_v4.00.xsd +9 -0
- package/utils/schemas/consSitNFe_v4.00.xsd +9 -0
- package/utils/schemas/consStatServ_v4.00.xsd +9 -0
- package/utils/schemas/enviNFe_v4.00.xsd +9 -0
- package/utils/schemas/inutNFe_v4.00.xsd +9 -0
- package/utils/schemas/leiauteConsSitNFe_v4.00.xsd +502 -0
- package/utils/schemas/leiauteConsStatServ_v4.00.xsd +98 -0
- package/utils/schemas/leiauteInutNFe_v4.00.xsd +193 -0
- package/utils/schemas/leiauteNFe_v4.00.xsd +7412 -0
- package/utils/schemas/nfe_v4.00.xsd +9 -0
- package/utils/schemas/procInutNFe_v4.00.xsd +9 -0
- package/utils/schemas/procNFe_v4.00.xsd +9 -0
- package/utils/schemas/retConsReciNFe_v4.00.xsd +9 -0
- package/utils/schemas/retConsSitNFe_v4.00.xsd +9 -0
- package/utils/schemas/retConsStatServ_v4.00.xsd +9 -0
- package/utils/schemas/retEnviNFe_v4.00.xsd +9 -0
- package/utils/schemas/retInutNFe_v4.00.xsd +9 -0
- package/utils/schemas/tiposBasico_v4.00.xsd +598 -0
- package/utils/schemas/xmldsig-core-schema_v1.01.xsd +98 -0
- package/utils/sefaz.js +84 -0
- package/utils/tools.js +277 -0
- package/utils/xmllint.js +244195 -0
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "node-sped-nfe",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"teste": "set NODE_OPTIONS='--openssl-legacy-provider' && node testes/nfe.js"
|
|
7
|
+
},
|
|
8
|
+
"author": "",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"description": "",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"crypto": "^1.0.1",
|
|
14
|
+
"fast-xml-parser": "^4.5.1",
|
|
15
|
+
"pem": "^1.14.8",
|
|
16
|
+
"tmp": "^0.2.3",
|
|
17
|
+
"xml-crypto": "^6.0.0"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import SefazService from "../utils/sefaz.js";
|
|
2
|
+
const baseURL = DISTRIBUICAO[opts.tpAmb]
|
|
3
|
+
const options = {
|
|
4
|
+
method: 'POST',
|
|
5
|
+
data: data,
|
|
6
|
+
}
|
|
7
|
+
const client = new SefazService({
|
|
8
|
+
baseURL: baseURL,
|
|
9
|
+
ca: CA,
|
|
10
|
+
cert: opts.cert,
|
|
11
|
+
key: opts.key,
|
|
12
|
+
requestOptions: opts.requestOptions,
|
|
13
|
+
httpsOptions: opts.httpsOptions,
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
const retorno = await client.request(options)
|
package/testes/nfe.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Make, Tools } from "../index.js"
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
//let xml = fs.readFileSync("./nfe.xml", { encoding: "utf-8" });
|
|
4
|
+
//fs.writeFileSync("./nfe.json", JSON.stringify(convert(xml, { format: 'object' })), { encoding: "utf-8" });
|
|
5
|
+
|
|
6
|
+
let myTools = new Tools({ //Configuração de habiente e sistema
|
|
7
|
+
mod: 55,
|
|
8
|
+
tpAmb: 2,
|
|
9
|
+
cUF: 51,
|
|
10
|
+
xmllint: `../libxml2-2.9.3-win32-x86_64/bin/xmllint.exe`
|
|
11
|
+
}, { //Certificado digital
|
|
12
|
+
pfx: '../certificado.pfx',
|
|
13
|
+
senha: fs.readFileSync('../senha.txt', { encoding: "utf8" }),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
let NFe = new Make();
|
|
17
|
+
NFe.tagInfNFe({ Id: null, versao: '4.00' });
|
|
18
|
+
NFe.tagIde({
|
|
19
|
+
cUF: "51",
|
|
20
|
+
cNF: "00002023",
|
|
21
|
+
natOp: "VENDA",
|
|
22
|
+
mod: "55",
|
|
23
|
+
serie: "0",
|
|
24
|
+
nNF: "248",
|
|
25
|
+
dhEmi: NFe.formatData(),
|
|
26
|
+
tpNF: "1",
|
|
27
|
+
idDest: "1",
|
|
28
|
+
cMunFG: "5106257",
|
|
29
|
+
tpImp: "1",
|
|
30
|
+
tpEmis: "1",
|
|
31
|
+
cDV: "1",
|
|
32
|
+
tpAmb: "2",
|
|
33
|
+
finNFe: "1",
|
|
34
|
+
indFinal: "0",
|
|
35
|
+
indPres: "1",
|
|
36
|
+
indIntermed: "0",
|
|
37
|
+
procEmi: "0",
|
|
38
|
+
verProc: "4.13"
|
|
39
|
+
});
|
|
40
|
+
NFe.tagEmit({
|
|
41
|
+
CNPJ: "47506306000188",
|
|
42
|
+
xNome: "47.506.306 KALMON VALADAO TAVARES",
|
|
43
|
+
xFant: "GUARA DEV",
|
|
44
|
+
IE: "139551956",
|
|
45
|
+
CRT: "1"
|
|
46
|
+
});
|
|
47
|
+
NFe.tagEnderEmit({
|
|
48
|
+
xLgr: "AV PARA",
|
|
49
|
+
nro: "138",
|
|
50
|
+
xBairro: "UNIAO",
|
|
51
|
+
cMun: "5106257",
|
|
52
|
+
xMun: "Nova Xavantina",
|
|
53
|
+
UF: "MT",
|
|
54
|
+
CEP: "78690000",
|
|
55
|
+
cPais: "1058",
|
|
56
|
+
xPais: "BRASIL",
|
|
57
|
+
fone: "66981352912"
|
|
58
|
+
});
|
|
59
|
+
NFe.tagDest({
|
|
60
|
+
CPF: "04079907125",
|
|
61
|
+
xNome: "ADELMO CARLOS CIQUEIRA SILVA",
|
|
62
|
+
indIEDest: "2",
|
|
63
|
+
});
|
|
64
|
+
NFe.tagEnderDest({
|
|
65
|
+
xLgr: "RUA DAS SAMAMBAIAS",
|
|
66
|
+
nro: "144",
|
|
67
|
+
xBairro: "PARQUE ELDORADO",
|
|
68
|
+
cMun: "5107040",
|
|
69
|
+
xMun: "PRIMAVERA DO LESTE",
|
|
70
|
+
UF: "MT",
|
|
71
|
+
CEP: "78850000",
|
|
72
|
+
cPais: "1058",
|
|
73
|
+
xPais: "BRASIL"
|
|
74
|
+
});
|
|
75
|
+
NFe.tagProd([
|
|
76
|
+
{
|
|
77
|
+
cProd: "126",
|
|
78
|
+
cEAN: "SEM GTIN",
|
|
79
|
+
xProd: "CABOS MICROFONE DMX XR CANON BALANCEADO 20 METROS",
|
|
80
|
+
NCM: "85044010",
|
|
81
|
+
CFOP: "5102",
|
|
82
|
+
uCom: "UNID",
|
|
83
|
+
qCom: "3.0000",
|
|
84
|
+
vUnCom: "132.0000000000",
|
|
85
|
+
vProd: "396.00",
|
|
86
|
+
cEANTrib: "SEM GTIN",
|
|
87
|
+
uTrib: "UNID",
|
|
88
|
+
qTrib: "3.0000",
|
|
89
|
+
vUnTrib: "132.0000000000",
|
|
90
|
+
indTot: "1"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
cProd: "129",
|
|
94
|
+
cEAN: "SEM GTIN",
|
|
95
|
+
xProd: "CABO P2 PARA P10 CELULAR MESA DE SOM CAIXA DE SOM 25 METRO",
|
|
96
|
+
NCM: "85044010",
|
|
97
|
+
CFOP: "5102",
|
|
98
|
+
uCom: "UNID",
|
|
99
|
+
qCom: "2.0000",
|
|
100
|
+
vUnCom: "218.0000000000",
|
|
101
|
+
vProd: "436.00",
|
|
102
|
+
cEANTrib: "SEM GTIN",
|
|
103
|
+
uTrib: "UNID",
|
|
104
|
+
qTrib: "2.0000",
|
|
105
|
+
vUnTrib: "218.0000000000",
|
|
106
|
+
indTot: "1",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"cProd": 127,
|
|
110
|
+
"cEAN": "SEM GTIN",
|
|
111
|
+
"xProd": "CABO DE MICROFONE XLR FEMEA PARA P10 MONO 20 METROS CIRILO CABOS",
|
|
112
|
+
"NCM": 85044010,
|
|
113
|
+
"CFOP": 5102,
|
|
114
|
+
"uCom": "UNID",
|
|
115
|
+
"qCom": 2,
|
|
116
|
+
"vUnCom": 185,
|
|
117
|
+
"vProd": 370,
|
|
118
|
+
"cEANTrib": "SEM GTIN",
|
|
119
|
+
"uTrib": "UNID",
|
|
120
|
+
"qTrib": 2,
|
|
121
|
+
"vUnTrib": 185,
|
|
122
|
+
"vDesc": 38,
|
|
123
|
+
"indTot": 1
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"cProd": 128,
|
|
127
|
+
"cEAN": "SEM GTIN",
|
|
128
|
+
"xProd": "CABO DE AUDIO P10 X P10 MONO BLINDADO 5 METROS",
|
|
129
|
+
"NCM": 85044010,
|
|
130
|
+
"CFOP": 5102,
|
|
131
|
+
"uCom": "UNID",
|
|
132
|
+
"qCom": 2,
|
|
133
|
+
"vUnCom": 18,
|
|
134
|
+
"vProd": 36,
|
|
135
|
+
"cEANTrib": "SEM GTIN",
|
|
136
|
+
"uTrib": "UNID",
|
|
137
|
+
"qTrib": 2,
|
|
138
|
+
"vUnTrib": 18,
|
|
139
|
+
"indTot": 1
|
|
140
|
+
}
|
|
141
|
+
]);
|
|
142
|
+
[0, 1, 2, 3].map((value, index) => {
|
|
143
|
+
NFe.tagProdICMSSN(index, { orig: "0", CSOSN: "400" })
|
|
144
|
+
NFe.tagProdPIS(index, { CST: "49", qBCProd: "0.0000", vAliqProd: "0.0000", vPIS: "0.00" })
|
|
145
|
+
NFe.tagProdCOFINS(index, { CST: "49", qBCProd: "0.0000", vAliqProd: "0.0000", vCOFINS: "0.00" })
|
|
146
|
+
});
|
|
147
|
+
NFe.tagICMSTot();
|
|
148
|
+
NFe.tagTransp({ modFrete: 9 });
|
|
149
|
+
NFe.tagDetPag([{ indPag: 0, tPag: 17, vPag: "1200.00" }]);
|
|
150
|
+
NFe.tagTroco("0.00");
|
|
151
|
+
NFe.tagInfRespTec({ CNPJ: "47506306000188", xContato: "Guara Dev", email: "admin@guaradev.com", fone: "5566999638922" })
|
|
152
|
+
fs.writeFileSync("nfe.xml", NFe.xml(), { encoding: "utf-8" });
|
|
153
|
+
myTools.xmlSign(NFe.xml()).then(async xmlSign => {
|
|
154
|
+
fs.writeFileSync("nfe_sign.xml", xmlSign, { encoding: "utf-8" });
|
|
155
|
+
myTools.sefazEnviaLote(xmlSign, { indSinc: 1 }).then(res => {
|
|
156
|
+
console.log(res)
|
|
157
|
+
})
|
|
158
|
+
}).catch(err => {
|
|
159
|
+
console.log(err)
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
/*
|
|
163
|
+
myTools.sefazStatus().then(res => {
|
|
164
|
+
console.log(res)
|
|
165
|
+
});
|
|
166
|
+
*/
|
package/testes/nfe.json
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
{
|
|
2
|
+
"NFe": {
|
|
3
|
+
"@xmlns": "http://www.portalfiscal.inf.br/nfe",
|
|
4
|
+
"infNFe": {
|
|
5
|
+
"@Id": "NFe51241047506306000188550000000002471000020235",
|
|
6
|
+
"@versao": "4.00",
|
|
7
|
+
"ide": {
|
|
8
|
+
"cUF": "51",
|
|
9
|
+
"cNF": "00002023",
|
|
10
|
+
"natOp": "VENDA",
|
|
11
|
+
"mod": "55",
|
|
12
|
+
"serie": "0",
|
|
13
|
+
"nNF": "247",
|
|
14
|
+
"dhEmi": "2024-10-10T18:01:59-04:00",
|
|
15
|
+
"tpNF": "1",
|
|
16
|
+
"idDest": "1",
|
|
17
|
+
"cMunFG": "5106257",
|
|
18
|
+
"tpImp": "1",
|
|
19
|
+
"tpEmis": "1",
|
|
20
|
+
"cDV": "5",
|
|
21
|
+
"tpAmb": "1",
|
|
22
|
+
"finNFe": "1",
|
|
23
|
+
"indFinal": "0",
|
|
24
|
+
"indPres": "1",
|
|
25
|
+
"indIntermed": "0",
|
|
26
|
+
"procEmi": "0",
|
|
27
|
+
"verProc": "4.13"
|
|
28
|
+
},
|
|
29
|
+
"emit": {
|
|
30
|
+
"CNPJ": "47506306000188",
|
|
31
|
+
"xNome": "47.506.306 KALMON VALADAO TAVARES",
|
|
32
|
+
"xFant": "GUARA DEV",
|
|
33
|
+
"enderEmit": {
|
|
34
|
+
"xLgr": "AV PARA",
|
|
35
|
+
"nro": "138",
|
|
36
|
+
"xBairro": "UNIÃO",
|
|
37
|
+
"cMun": "5106257",
|
|
38
|
+
"xMun": "Nova Xavantina",
|
|
39
|
+
"UF": "MT",
|
|
40
|
+
"CEP": "78690000",
|
|
41
|
+
"cPais": "1058",
|
|
42
|
+
"xPais": "BRASIL",
|
|
43
|
+
"fone": "66981352912"
|
|
44
|
+
},
|
|
45
|
+
"IE": "139551956",
|
|
46
|
+
"CRT": "1"
|
|
47
|
+
},
|
|
48
|
+
"dest": {
|
|
49
|
+
"CPF": "04079907125",
|
|
50
|
+
"xNome": "ADELMO CARLOS CIQUEIRA SILVA",
|
|
51
|
+
"enderDest": {
|
|
52
|
+
"xLgr": "RUA DAS SAMAMBAIAS",
|
|
53
|
+
"nro": "144",
|
|
54
|
+
"xBairro": "PARQUE ELDORADO",
|
|
55
|
+
"cMun": "5107040",
|
|
56
|
+
"xMun": "PRIMAVERA DO LESTE",
|
|
57
|
+
"UF": "MT",
|
|
58
|
+
"CEP": "78850000",
|
|
59
|
+
"cPais": "1058",
|
|
60
|
+
"xPais": "BRASIL"
|
|
61
|
+
},
|
|
62
|
+
"indIEDest": "2"
|
|
63
|
+
},
|
|
64
|
+
"det": [
|
|
65
|
+
{
|
|
66
|
+
"@nItem": "1",
|
|
67
|
+
"prod": {
|
|
68
|
+
"cProd": "126",
|
|
69
|
+
"cEAN": "SEM GTIN",
|
|
70
|
+
"xProd": "CABOS MICROFONE DMX XR CANON BALANCEADO 20 METROS",
|
|
71
|
+
"NCM": "85044010",
|
|
72
|
+
"CFOP": "5102",
|
|
73
|
+
"uCom": "UNID",
|
|
74
|
+
"qCom": "3.0000",
|
|
75
|
+
"vUnCom": "132.0000000000",
|
|
76
|
+
"vProd": "396.00",
|
|
77
|
+
"cEANTrib": "SEM GTIN",
|
|
78
|
+
"uTrib": "UNID",
|
|
79
|
+
"qTrib": "3.0000",
|
|
80
|
+
"vUnTrib": "132.0000000000",
|
|
81
|
+
"indTot": "1"
|
|
82
|
+
},
|
|
83
|
+
"imposto": {
|
|
84
|
+
"ICMS": {
|
|
85
|
+
"ICMSSN102": {
|
|
86
|
+
"orig": "0",
|
|
87
|
+
"CSOSN": "400"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"PIS": {
|
|
91
|
+
"PISOutr": {
|
|
92
|
+
"CST": "49",
|
|
93
|
+
"qBCProd": "0.0000",
|
|
94
|
+
"vAliqProd": "0.0000",
|
|
95
|
+
"vPIS": "0.00"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"COFINS": {
|
|
99
|
+
"COFINSOutr": {
|
|
100
|
+
"CST": "49",
|
|
101
|
+
"qBCProd": "0.0000",
|
|
102
|
+
"vAliqProd": "0.0000",
|
|
103
|
+
"vCOFINS": "0.00"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"@nItem": "2",
|
|
110
|
+
"prod": {
|
|
111
|
+
"cProd": "129",
|
|
112
|
+
"cEAN": "SEM GTIN",
|
|
113
|
+
"xProd": "CABO P2 PARA P10 CELULAR MESA DE SOM CAIXA DE SOM 25 METRO",
|
|
114
|
+
"NCM": "85044010",
|
|
115
|
+
"CFOP": "5102",
|
|
116
|
+
"uCom": "UNID",
|
|
117
|
+
"qCom": "2.0000",
|
|
118
|
+
"vUnCom": "218.0000000000",
|
|
119
|
+
"vProd": "436.00",
|
|
120
|
+
"cEANTrib": "SEM GTIN",
|
|
121
|
+
"uTrib": "UNID",
|
|
122
|
+
"qTrib": "2.0000",
|
|
123
|
+
"vUnTrib": "218.0000000000",
|
|
124
|
+
"indTot": "1"
|
|
125
|
+
},
|
|
126
|
+
"imposto": {
|
|
127
|
+
"ICMS": {
|
|
128
|
+
"ICMSSN102": {
|
|
129
|
+
"orig": "0",
|
|
130
|
+
"CSOSN": "400"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"PIS": {
|
|
134
|
+
"PISOutr": {
|
|
135
|
+
"CST": "49",
|
|
136
|
+
"qBCProd": "0.0000",
|
|
137
|
+
"vAliqProd": "0.0000",
|
|
138
|
+
"vPIS": "0.00"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"COFINS": {
|
|
142
|
+
"COFINSOutr": {
|
|
143
|
+
"CST": "49",
|
|
144
|
+
"qBCProd": "0.0000",
|
|
145
|
+
"vAliqProd": "0.0000",
|
|
146
|
+
"vCOFINS": "0.00"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"total": {
|
|
153
|
+
"ICMSTot": {
|
|
154
|
+
"vBC": "0.00",
|
|
155
|
+
"vICMS": "0.00",
|
|
156
|
+
"vICMSDeson": "0.00",
|
|
157
|
+
"vFCP": "0.00",
|
|
158
|
+
"vBCST": "0.00",
|
|
159
|
+
"vST": "0.00",
|
|
160
|
+
"vFCPST": "0.00",
|
|
161
|
+
"vFCPSTRet": "0.00",
|
|
162
|
+
"vProd": "1238.00",
|
|
163
|
+
"vFrete": "0.00",
|
|
164
|
+
"vSeg": "0.00",
|
|
165
|
+
"vDesc": "38.00",
|
|
166
|
+
"vII": "0.00",
|
|
167
|
+
"vIPI": "0.00",
|
|
168
|
+
"vIPIDevol": "0.00",
|
|
169
|
+
"vPIS": "0.00",
|
|
170
|
+
"vCOFINS": "0.00",
|
|
171
|
+
"vOutro": "0.00",
|
|
172
|
+
"vNF": "1200.00"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"transp": {
|
|
176
|
+
"modFrete": "9"
|
|
177
|
+
},
|
|
178
|
+
"pag": {
|
|
179
|
+
"detPag": {
|
|
180
|
+
"indPag": "0",
|
|
181
|
+
"tPag": "17",
|
|
182
|
+
"vPag": "1200.00"
|
|
183
|
+
},
|
|
184
|
+
"vTroco": "0.00"
|
|
185
|
+
},
|
|
186
|
+
"infRespTec": {
|
|
187
|
+
"CNPJ": "47506306000188",
|
|
188
|
+
"xContato": "Guara Dev",
|
|
189
|
+
"email": "admin@guaradev.com",
|
|
190
|
+
"fone": "5566999638922"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|