O pedido de registro de um evento da NFS-e, montado a partir dos campos que quem o pede preenche.
Os campos do struct são os elementos do Nfse.Schema.V1_01.TCInfPedReg, com os mesmos nomes e
as mesmas regras de conversão. Exatamente um elemento e<código> vai preenchido, e é ele que
define o tipo do evento. build/2 aceita o struct ou um mapa com essas chaves.
Eventos que o contribuinte pode registrar
| Código | Campo | Evento |
|---|---|---|
101101 | e101101 | Cancelamento de NFS-e |
101103 | e101103 | Solicitação de análise fiscal para cancelamento |
202201 | e202201 | Confirmação do prestador |
203202 | e203202 | Confirmação do tomador |
204203 | e204203 | Confirmação do intermediário |
202205 | e202205 | Rejeição do prestador |
203206 | e203206 | Rejeição do tomador |
204207 | e204207 | Rejeição do intermediário |
205208 | e205208 | Anulação da rejeição |
No cancelamento (e101101), c_motivo é 1 para erro na emissão, 2 para serviço não prestado
e 9 para outros, e x_motivo explica o motivo com 15 a 255 caracteres. Para cancelar sem
montar o pedido, use Nfse.cancel/3.
O que build/2 calcula
IddoinfPedReg, com 59 caracteres:"PRE", a chave de acesso da NFS-e e o tipo do evento com 6 dígitosversaoda raiz, sempre"1.01"tp_amb, a partir do ambiente do cliente. Pode ser omitido; se vier, precisa ser o do clientecnpj_autoroucpf_autor, a partir do certificado do cliente, quando o chamador não informa nenhum dos doisdh_evento, a hora atual em UTC com precisão de segundos, quando o chamador não informa
ver_aplic vem sempre do chamador. Depois valida tudo, assina o infPedReg com o certificado do
cliente e devolve o XML canônico, pronto para enviar. Nada é reescrito entre assinar e devolver.
Erros
Os erros voltam juntos, como %Nfse.Error{kind: :validation}, antes de qualquer assinatura. Além
dos erros do schema, descritos em Nfse.Schema.Runtime:
| Caminho | Erro | Quando |
|---|---|---|
id | :unknown_field | o chamador passou id, que é sempre calculado |
tp_amb | :environment | tp_amb diferente do ambiente do cliente |
| (vários) | :choice | mais de um elemento e<código> preenchido, ou nenhum |
Summary
Functions
Calcula Id, versao e tpAmb, valida, assina e devolve o XML do pedido com o Id.
Types
@type t() :: %Nfse.PedidoEvento{ ch_nfse: term(), cnpj_autor: term(), cpf_autor: term(), dh_evento: term(), e101101: term(), e101103: term(), e105102: term(), e105104: term(), e105105: term(), e202201: term(), e202205: term(), e203202: term(), e203206: term(), e204203: term(), e204207: term(), e205204: term(), e205208: term(), e305101: term(), e305102: term(), e305103: term(), tp_amb: term(), ver_aplic: term() }
Functions
@spec build(t() | map(), Nfse.Client.t()) :: {:ok, built()} | {:error, Nfse.Error.t()}
Calcula Id, versao e tpAmb, valida, assina e devolve o XML do pedido com o Id.