Nfse.Identifiers (nfse v0.1.0)

Copy Markdown View Source

Uso interno da biblioteca: não faz parte da API pública.

Identificadores que a biblioteca calcula a partir dos campos do documento, como o Id da DPS e a chave de acesso da NFS-e. As funções esperam campos já validados pelo schema.

Summary

Functions

A chave de acesso de 50 dígitos da NFS-e, que precedida de "NFS" é o Id do infNFSe: o código IBGE do município emissor (7), o ambiente gerador (1), o tipo da inscrição federal (1), a inscrição (14), o número da NFS-e (13), o ano e o mês da emissão como YYMM (4), o código numérico (9) e o dígito verificador (1), calculado por check_digit/1 sobre os 49 anteriores.

O dígito verificador em módulo 11, como o da NF-e: pesos de 2 a 9 a partir do último dígito, da direita para a esquerda, recomeçando em 2 depois do 9. Resto 0 ou 1 dá "0"; outro resto r dá 11 - r.

O Id de 45 caracteres da DPS: "DPS", o código IBGE do município emissor (7 dígitos), o tipo da inscrição federal ("1" para CPF, "2" para CNPJ), a inscrição (14), a série (5) e o número (15), cada parte completada com zeros à esquerda só dentro do Id.

A chave de acesso da NFS-e dentro do Id de um pedido de registro de evento.

O Id de 59 caracteres do pedido de registro de evento: "PRE", a chave de acesso da NFS-e (50 dígitos) e o tipo do evento (6). O texto do XSD cita o número do pedido (nPedRegEvento), mas o padrão PRE[0-9]{56} não tem lugar para ele.

Types

inscription()

@type inscription() :: {:cnpj | :cpf, String.t()}

Functions

access_key(c_mun, amb_ger, arg, n_nfse, yymm, c_num)

@spec access_key(
  String.t(),
  String.t(),
  inscription(),
  String.t(),
  String.t(),
  String.t()
) ::
  String.t()

A chave de acesso de 50 dígitos da NFS-e, que precedida de "NFS" é o Id do infNFSe: o código IBGE do município emissor (7), o ambiente gerador (1), o tipo da inscrição federal (1), a inscrição (14), o número da NFS-e (13), o ano e o mês da emissão como YYMM (4), o código numérico (9) e o dígito verificador (1), calculado por check_digit/1 sobre os 49 anteriores.

check_digit(digits)

@spec check_digit(String.t()) :: String.t()

O dígito verificador em módulo 11, como o da NF-e: pesos de 2 a 9 a partir do último dígito, da direita para a esquerda, recomeçando em 2 depois do 9. Resto 0 ou 1 dá "0"; outro resto r dá 11 - r.

dps_id(c_loc_emi, arg, serie, n_dps)

@spec dps_id(String.t(), inscription(), String.t(), String.t()) :: String.t()

O Id de 45 caracteres da DPS: "DPS", o código IBGE do município emissor (7 dígitos), o tipo da inscrição federal ("1" para CPF, "2" para CNPJ), a inscrição (14), a série (5) e o número (15), cada parte completada com zeros à esquerda só dentro do Id.

event_request_access_key(arg)

@spec event_request_access_key(String.t()) :: String.t()

A chave de acesso da NFS-e dentro do Id de um pedido de registro de evento.

event_request_id(access_key, event_type)

@spec event_request_id(String.t(), String.t()) :: String.t()

O Id de 59 caracteres do pedido de registro de evento: "PRE", a chave de acesso da NFS-e (50 dígitos) e o tipo do evento (6). O texto do XSD cita o número do pedido (nPedRegEvento), mas o padrão PRE[0-9]{56} não tem lugar para ele.