# @monitor-sefaz/catalog

> Catálogo dos documentos fiscais eletrônicos brasileiros: mapa UF → autorizador (SVRS, SVAN, SVC, AN), endpoints dos webservices e tabela de cStat.

Latest version **0.2.0** (published 2026-09-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install @monitor-sefaz/catalog
pnpm add @monitor-sefaz/catalog
yarn add @monitor-sefaz/catalog
bun add @monitor-sefaz/catalog
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.2.0 |
| Published | 2026-09-23 |
| First published | 2026-09-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=20 |
| Dependencies | 0 |
| Unpacked size | 44.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 10 |
| Author | Felipe Sauer |
| Maintainers | felipesauer |
| Keywords | sefaz, nfe, nfce, cte, mdfe, dce, nota-fiscal-eletronica, brasil, typescript, autorizador, svrs, cstat, webservice, catalogo |

## Links

- npm: https://www.npmjs.com/package/@monitor-sefaz/catalog
- Repository: https://github.com/felipesauer/monitor-sefaz
- Homepage: https://github.com/felipesauer/monitor-sefaz/tree/main/packages/catalog#readme
- Issues: https://github.com/felipesauer/monitor-sefaz/issues
- npm.io page: https://npm.io/package/@monitor-sefaz/catalog

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.2.0 (latest) — 2026-09-23
- 0.1.0 — 2026-09-10

## README

# @monitor-sefaz/catalog

Catálogo dos documentos fiscais eletrônicos brasileiros: qual autorizador atende
cada UF, o endpoint de cada webservice e a tabela de `cStat`.

Sem dependências, sem I/O — são dados estáticos e a lógica de resolução em cima
deles. Faz parte do [Monitor SEFAZ](https://github.com/felipesauer/monitor-sefaz),
mas é útil sozinho para qualquer integração com NF-e, NFC-e, CT-e, MDF-e ou DC-e.

## O problema que resolve

"Para onde eu mando a consulta de NF-e do Acre?" não tem resposta óbvia: o AC não
tem autorizador próprio, quem atende é o SVRS. O Maranhão usa SVAN. Em
contingência muda de novo. E o `cUF` do envelope, nesses casos, é o do
autorizador virtual, não o da UF. Esse mapeamento costuma acabar hard-coded e
desatualizado em cada projeto.

## Instalação

    npm i @monitor-sefaz/catalog

## Uso

```ts
import { Catalog, DocumentType, Environment } from '@monitor-sefaz/catalog';

const catalog = new Catalog();

// Quem atende NF-e no Acre?
catalog.resolveAuthorizer(DocumentType.NFe, 'AC'); // 'SVRS'

// Entrada completa: autorizador, URL do webservice e cUF do envelope.
const entry = catalog.resolve(DocumentType.NFe, 'AC', Environment.Production);
// { document: 'NFe', uf: 'AC', authorizer: 'SVRS', environment: 1,
//   cUF: 12, url: 'https://nfe.svrs.rs.gov.br/ws/NfeStatusServico/...' }

// Todas as 27 UFs de um documento, ou os 135 serviços de uma vez.
catalog.list(DocumentType.CTe, Environment.Production); // 27 entradas
catalog.listAll(Environment.Production); // 135 entradas

// Para onde vai a NF-e de SP quando a contingência é ativada?
catalog.resolveContingency(DocumentType.NFe, 'SP'); // 'SVCAN'
catalog.resolveContingency(DocumentType.NFe, 'PR'); // 'SVCRS'
```

Por ora só a NF-e tem contingência mapeada; para os demais documentos
`resolveContingency` devolve `null`.

Dados e constantes também são exportados diretamente:

```ts
import {
  ALL_UFS, // as 27 siglas
  CSTAT, // { 107: 'Serviço em Operação', ... }
  CSTAT_OPERATIONAL, // 107
  CSTAT_SLOWDOWN, // 108
  CSTAT_DOWN, // 109
  REGIONS, // as 5 regiões, na ordem do IBGE
  UF_AUTHORIZERS, // mapa documento → UF → autorizador
  UF_CONTINGENCY_AUTHORIZERS, // mapa documento → UF → SVC (só NF-e)
  UF_INFO, // nome, código IBGE e região de cada UF
} from '@monitor-sefaz/catalog';
```

## Ambientes

`Environment.Production` (1) e `Environment.Homologation` (2) — os valores
numéricos coincidem com o `tpAmb` da SEFAZ, então dá para usar o enum direto na
montagem do envelope.

## Aviso

Endpoints de webservice mudam sem aviso prévio. O repositório roda uma
verificação periódica, mas **valide antes de usar em produção** e
[abra uma issue](https://github.com/felipesauer/monitor-sefaz/issues) se algum
estiver desatualizado.

Projeto independente, sem afiliação com a SEFAZ ou a Receita Federal.

## Licença

[MIT](LICENSE) © Felipe Sauer

---
_Source: https://npm.io/package/@monitor-sefaz/catalog · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
