Documento fiscal entregue pela distribuição do ADN.
type vem de TipoDocumento; um valor fora dos seis conhecidos vira :unknown. event_type
é o TipoEvento do ADN, como "CANCELAMENTO", e é nil nas notas.
xml é o documento como o ADN o entregou. document é o mesmo documento lido como NFS-e ou
evento (Nfse.Schema.V1_00.TCNFSe, Nfse.Schema.V1_01.TCEvento e assim por diante), e só os
tipos :nfse e :evento são lidos; nos demais ele é nil e error também.
Um documento ilegível (base64 ou gzip inválido, versão desconhecida, XML malformado) não derruba
o lote: document fica nil, xml guarda o texto quando houve algum e error traz a falha.
Um NSU que não é inteiro tem o mesmo tratamento: nsu guarda o valor como o ADN o mandou e
error.details é {:invalid_nsu, valor}.
generated_at é um DateTime quando DataHoraGeracao traz o deslocamento de fuso e um
NaiveDateTime quando não traz, sem adivinhar o fuso. É nil quando o campo falta ou não se lê.
Summary
Types
@type t() :: %Nfse.DistributedDocument{ access_key: String.t() | nil, document: struct() | nil, error: Nfse.Error.t() | nil, event_type: String.t() | nil, generated_at: DateTime.t() | NaiveDateTime.t() | nil, nsu: non_neg_integer() | term(), type: type(), xml: binary() | nil }
@type type() ::
:nfse | :evento | :dps | :pedido_registro_evento | :cnc | :nenhum | :unknown