Api de Captura de documentos na Sefaz - Estoque NFe
Base URLhttps://estoquenfe.optago.app.br/api/v1
API REST stateless para consultar documentos fiscais capturados da SEFAZ, baixar XMLs de NF-e, gerar o DANFE em PDF e registrar manifestacoes do destinatario. Autenticacao via Bearer JWT emitido pelo SSO Optago. Existe tambem um servidor MCP com as mesmas operacoes.
Autenticacao
Todas as rotas exigem um token JWT no header Authorization. O token e emitido pelo SSO Optago no login e renovado automaticamente a cada hora pelo sistema cliente.
Para obter o token, o usuario faz login pelo portal Optago e o sistema cliente cuida da emissao e renovacao automatica.
Headers
Header
Valor
Authorization
Bearer <access_token> - obrigatorio em todas as rotas
Content-Type
application/json - obrigatorio apenas em requisicoes com body (POST)
O JWT deve ter a claim access: true para o sistema estoque-nfe. Contas sem acesso ativo recebem 403 forbidden mesmo com token valido - o acesso e gerenciado pelo administrador no SSO Optago.
Rate limit
As rotas sao limitadas a 120 requisicoes por minuto por usuario (e 600 por minuto por IP, como guarda). Ao exceder, a API responde 429 rate_limited com o header Retry-After em segundos. O limite vale igualmente para a API REST e para o servidor MCP.
Listar documentos capturados
Retorna os documentos fiscais recebidos da SEFAZ via Distribuicao DFe. Suporta filtragem por status de manifestacao, disponibilidade de XML e periodo de emissao, com paginacao.
GET/api/v1/{cnpj}/nfe
Parametros de rota
Parametro
Tipo
Descricao
cnpj
string
obrigatorio CNPJ da empresa, apenas digitos (14 caracteres). Ex: 12345678000190. O usuario autenticado deve pertencer a ela.
Query string
Parametro
Tipo
Padrao
Descricao
manifestacao_status
string
-
opcional Filtra por status: pendente, enviada, expirado.
xml_disponivel
string
-
opcional Filtra por disponibilidade: nao_verificado, disponivel, indisponivel.
data_de
string
-
opcional Data de emissao minima no formato YYYY-MM-DD.
data_ate
string
-
opcional Data de emissao maxima no formato YYYY-MM-DD.
Retorna o XML completo e autorizado da NF-e (procNFe). O sistema busca primeiro no armazenamento local; se nao encontrado, consulta a SEFAZ via DistDFe. A resposta e application/xml com header de download.
GET/api/v1/{cnpj}/nfe/{chave_acesso}/xml
Parametros de rota
Parametro
Tipo
Descricao
cnpj
string
obrigatorio CNPJ da empresa, apenas digitos.
chave_acesso
string
obrigatorio Chave de acesso da NF-e com 44 digitos, retornada pelo endpoint de listagem.
Retorna 409 xml_unavailable quando o XML completo ainda nao esta disponivel na SEFAZ. Neste caso, o campo xml_disponivel do documento sera nao_verificado ou indisponivel - aguarde a disponibilizacao e tente novamente.
Gera o DANFE (representacao grafica da NF-e) em PDF a partir do mesmo XML autorizado. Mesma seguranca do XML: o CNPJ e resolvido, o acesso do usuario do token e validado e o documento e buscado pela chave. A resposta e application/pdf com header de download.
GET/api/v1/{cnpj}/nfe/{chave_acesso}/pdf
Parametros de rota
Parametro
Tipo
Descricao
cnpj
string
obrigatorio CNPJ da empresa, apenas digitos.
chave_acesso
string
obrigatorio Chave de acesso da NF-e com 44 digitos.
O PDF so pode ser gerado quando o XML completo esta disponivel. Se o XML ainda nao foi liberado pela SEFAZ, retorna 409 xml_unavailable (mesma regra do endpoint de XML).
Registra a manifestacao do destinatario para um documento SEFAZ. Requer papel gestor na empresa - operadores nao tem permissao. Retorna o documento atualizado com o novo status de manifestacao.
POST/api/v1/{cnpj}/nfe/{chave_acesso}/manifestar
Parametros de rota
Parametro
Tipo
Descricao
cnpj
string
obrigatorio CNPJ da empresa, apenas digitos.
chave_acesso
string
obrigatorio Chave de acesso da NF-e com 44 digitos.
curl -X POST "https://estoquenfe.optago.app.br/api/v1/12345678000190/nfe/35240812345678901234550010000001231000012344/manifestar" \
-H"Authorization: Bearer <token>" \
-H"Content-Type: application/json" \
-d'{"tipo":"operacao_nao_realizada","justificativa":"Mercadoria devolvida ao remetente antes do recebimento."}'
Manifestacoes do tipo ciencia podem ser reenviadas. As demais (confirmacao, desconhecimento, operacao_nao_realizada) sao finais e irreversiveis - a SEFAZ retorna erro se ja existir uma.