-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathProgram.cs
66 lines (46 loc) · 2.55 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System.Threading.Tasks;
namespace Sefaz.Exemplo
{
class Program
{
static async Task Main(string[] args)
{
// Dados da empresa
var cUF = "12";
var cnpj = "12345678901234";
// Dados do certificado
var caminhoCertificado = @"D:\Temp\certificado.pfx";
var senhaCertificado = @"123456";
// Criando uma instância para uso em PRODUÇÃO
using var sefaz = new Sefaz.Core.Sefaz(caminhoCertificado, senhaCertificado);
// Criando uma instância para uso em HOMOLOGAÇÃO
// using var sefaz = new Sefaz.Core.Sefaz(caminhoCertificado, senhaCertificado, Core.Models.NFe.TAmb.Homologacao);
// Chave da nota que vamos baixar
var chaveNFe = "12345678901234567890123456789012345678901234";
// -------------- Manifestar ciência da emissão por parte do destinatário --------------
await sefaz.ManifestarNFeAsync(cnpj, chaveNFe, Core.Models.NFe.TEventoInfEventoDetEventoDescEvento.CienciaDaOperacao);
// OBS.: É comum a SEFAZ demorar alguns segundos para liberar a NFe para download
// -------------- Baixar uma NFe pela Chave --------------
// Local onde vamos salvar a nota
var pasta = @"D:\Temp\";
// Download do xml assinado (com valor fiscal)
var doc = await sefaz.BaixarNFeAsync(cUF, cnpj, chaveNFe);
doc.SalvarArquivo($@"{pasta}{chaveNFe}.xml");
// -------------- Consultar as notas e eventos de um cnpj --------------
// Busca os útimos 90 dias
var documentos = await sefaz.ConsultarNFeCNPJAsync(cUF, cnpj);
foreach (var documento in documentos)
{
documento.SalvarArquivo($@"{pasta}{documento.NSU}.xml");
}
// -------------- Consultar XML conhecendo o NSU --------------
doc = await sefaz.ConsultarNFeNSUAsync(cUF, cnpj, 1234);
// -------------- Consultar os conhecimentos de transporte e eventos relacionados de um cnpj --------------
// Busca os útimos 90 dias
documentos = await sefaz.ConsultarCTeCNPJAsync(cUF, cnpj);
// -------------- Manifestar desacordo por parte do destinatário --------------
var chaveCTe = "12345678901234567890123456789012345678901234";
await sefaz.ManifestarDesacordoCTeAsync(cnpj, chaveCTe, "Alguma justificativa");
}
}
}