Geração do ID da tag <infNFe>

4,128 views
Skip to first unread message

tendresse

unread,
Jul 17, 2009, 3:44:05 PM7/17/09
to SPED - Sistema Público de Escrituração Digital
Boa tarde, estou fazendo a geração do XML da nota e estou em dúvida
sobre como gerar o ID da tag <infNFe>.
Alguém tem alguma informação sobre isso?
Obrigada

tendresse

unread,
Jul 17, 2009, 3:51:04 PM7/17/09
to SPED - Sistema Público de Escrituração Digital
Boa tarde, estou gerando o XML da nota e estou em dúvida sobre como

Joras

unread,
Jul 20, 2009, 2:46:30 PM7/20/09
to SPED - Sistema Público de Escrituração Digital
Olá.

O ID nada mais é do que a chave de acesso da NFe acrescida de "NFe" no
início. No manual de integração, página 71, item 5.4 há
esclarecimentos sobre a composição desta chave.

Rogério.

Daniel Silva - JD Informática

unread,
Sep 16, 2009, 7:54:41 AM9/16/09
to SPED - Sistema Público de Escrituração Digital
Bom dia,

Esse campo ID (chave de acesso) não seria ele gerado pela sefaz depois
de validar a nf-e?

Afinal quem gera esse ID (chave de acesso)

Daniel.
> > Obrigada- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

jun...@infobusiness.com.br

unread,
Sep 16, 2009, 9:06:07 AM9/16/09
to sped...@googlegroups.com
Este campo é composto de várias informações....
Vou te passar um exemplo dele escrito em java:


package sefaz.entity;

/**
 * Trata a chave de acesso da nota fiscal.
 * cUF - Código da UF do emitente do Documento Fiscal (2)
 * AAMM - Ano e Mês de emissão da NF-e (4)
 * CNPJ - CNPJ do emitente (14)
 * mod - Modelo do Documento Fiscal (2)
 * serie - Série do Documento Fiscal (3)
 * nNF - Número do Documento Fiscal (9)
 * cNF - Código Numérico que compõe a Chave de Acesso (9)
 * cDV - Dígito Verificador da Chave de Acesso (1)
 * @author Jr
 */
public class Chave {

    private String cUf;
    private String aa;
    private String mm;
    private String cnpj;
    private String mod = "55";
    private String serie = "001";
    private String nNf;
    private String cNf;

    public void setCUf(String cUf) {
        while (cUf.length()<2) { cUf = "0" + cUf; }
        this.cUf = cUf;
    }

    public void setAno(String ano) {
        while (ano.length()<2) { ano = "0" + ano; }
        this.aa = ano;
    }

    public void setMes(String mes) {
        while (mes.length()<2) { mes = "0" + mes; }
        this.mm = mes;
    }

    public void setCnpj(String cnpj) {
        while (cnpj.length()<14) { cnpj = "0" + cnpj; }
        this.cnpj = cnpj;
    }

    public void setNNf(long numero) {
        String digitos = String.valueOf(numero);
        while (digitos.length()<9) { digitos = "0" + digitos; }
        this.nNf = digitos;
        this.cNf = this.nNf;
    }

    private String getChave() {
        return cUf + aa + mm + cnpj + mod + serie + nNf + cNf;
    }

    private int getCDv() {
        int peso = 4;
        int digito = 0;
        for (char n: getChave().toCharArray()) {
            digito += (n-48) * peso;
            if (peso==2) {
                peso = 9;
            }
            else {
                peso--;
            }
        }
        digito -= ((digito / 11) * 11);
        digito = 11 - digito;
        if (digito>9) {
            digito = 0;
        }
        return digito;
    }

    public String getChNFe() {
        return getChave() + getCDv();
    }
}

Gustavo Moda

unread,
Sep 16, 2009, 1:26:01 PM9/16/09
to sped...@googlegroups.com


2009/9/16 Daniel Silva - JD Informática <danielg...@gmail.com>


Bom dia,

Esse campo ID (chave de acesso) não seria ele gerado pela sefaz depois
de validar a nf-e?
Olá,
Item 5.4 e 5.5 na Página 71 e 72 do Manual de Integração da NFe tem uma explicação de como gerar o ID e calcular o dígito da mesma.


Sucesso!

Reply all
Reply to author
Forward
0 new messages