# sefaz_nfe v0.1.0 - Table of Contents

> SEFAZ NF-e transport for Elixir: A1 certificates, mTLS, XMLDSig, webservices 4.00 and DistDFe. Does not calculate taxes.

## Pages

- [sefaz_nfe](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [SefazNfe](SefazNfe.md): SEFAZ NF-e **transport** (modelo 55).
- [SefazNfe.Certificate](SefazNfe.Certificate.md): A1 (PKCS#12) handle.
- [SefazNfe.Certificate.PKCS12](SefazNfe.Certificate.PKCS12.md): PKCS#12 (RFC 7292) reader for ICP-Brasil A1 files. Internal to
`SefazNfe.Certificate`.
- [SefazNfe.CircuitBreaker](SefazNfe.CircuitBreaker.md): One breaker per UF, so a SEFAZ that is down cannot drag the others with it.
- [SefazNfe.DistDFe](SefazNfe.DistDFe.md): Page returned by `NFeDistribuicaoDFe` (Ambiente Nacional).
- [SefazNfe.DistDFe.Document](SefazNfe.DistDFe.Document.md): One distributed document, already decompressed.
- [SefazNfe.DistDFe.Poller](SefazNfe.DistDFe.Poller.md): One process per tax ID (CNPJ or CPF) for `NFeDistribuicaoDFe`.
- [SefazNfe.Endpoints](SefazNfe.Endpoints.md): Resolves `{uf, environment, service}` to a SOAP URL.
- [SefazNfe.Events](SefazNfe.Events.md): Builders for the MOC's post-authorization events and for inutilização.
- [SefazNfe.Result](SefazNfe.Result.md): Parsed SEFAZ business outcome. A SOAP envelope that we understood is
`{:ok, t}` even when `c_stat != 100` — that is a rejection, not a crash.
- [SefazNfe.SOAP](SefazNfe.SOAP.md): HTTP+mTLS POST of a SOAP envelope.
- [SefazNfe.SOAP.Envelope](SefazNfe.SOAP.Envelope.md): Builds the SOAP 1.2 envelope the 4.00 webservices expect.
- [SefazNfe.SOAP.Fault](SefazNfe.SOAP.Fault.md): Detects a SOAP fault in a 200 response.
- [SefazNfe.SOAP.HTTPC](SefazNfe.SOAP.HTTPC.md): Default `SefazNfe.SOAP` client: an mTLS POST over `:httpc`.
- [SefazNfe.Schema](SefazNfe.Schema.md): Optional XSD validation against the official NF-e schemas.
- [SefazNfe.Signer](SefazNfe.Signer.md): Enveloped XMLDSig, as the MOC 4.00 defines it for NF-e.
- [SefazNfe.XML](SefazNfe.XML.md): Reading side of the SEFAZ XML, on `:xmerl`.
- [SefazNfe.XML.C14N](SefazNfe.XML.C14N.md): Canonical XML 1.0 without comments, the form XMLDSig digests.

## Mix Tasks

- [mix sefaz.endpoints](Mix.Tasks.Sefaz.Endpoints.md): Audits `priv/endpoints/nfe_4.00.json`.

