Boa noite galera!
Sou desenvolvedor já há alguns anos, trabalho com isso, e agora estou me aventurando na área de PDVs e o fisco.
Desenvolvi um sistema PDV para um cliente e agora preciso fazer a conexão com a receita para o cupom fiscal (NFCe). Primeiro tentei fazer diretamente com a api da SEFAZ mas comecei a tomar erros 290 e, como nunca consegui resolver, busquei uma API intermediária e encontrei a nuvemfiscal.
Na minha primeira tentativa, lendo blogs, buscando no Google e na IA, cheguei a esse ponto:
🟦 === Iniciando emissão de NFC-e via Nuvem Fiscal ===
📦 Payload recebido do frontend:
{omitido}
🌍 Ambiente selecionado: homologacao
🌐 Endpoint da API: https://api.nuvemfiscal.com.br/nfce
📤 Payload montado para envio à Nuvem Fiscal:
{omitido}
🔑 Solicitando token de autenticação à Nuvem Fiscal...
🌐 POST https://auth.nuvemfiscal.com.br/oauth/token
📨 Status: 200
📦 Resposta: {
"access_token": {token omitido}
✅ Token obtido com sucesso: {token omitido}
🌐 POST https://api.nuvemfiscal.com.br/nfce
📨 Resposta da Nuvem Fiscal:
HTTP 401
JWT (claims: {"scope":"nfce","jti":"8ee06833-f1f9-44fa-b25c-54210cf9713b","https://nuvemfiscal.com.br/tenant_id":"3a1d7684-c381-40db-bb4d-6300644f9265","iss":"https://auth.nuvemfiscal.com.br","aud":"https://api.sandbox.nuvemfiscal.com.br/","exp":1765224279,"iat":1762632279,"client_id":"pNNCKf57KCfzQ3sSjXkg"}) rejected due to invalid claims.
Validation errors:
Audience [aud] claim doesn't contain an acceptable identifier. Expected [https://api.nuvemfiscal.com.br/] as aud value.
❌ Erro ao emitir NFC-e: 401
Unauthorized: /api/fiscal/nfce/emitir/
Continuei pesquisando sobre esse erro, refiz alguns métodos do meu código e agora estou com esse erro:
[08/Nov/2025 21:03:51] "POST /api/vendas/ HTTP/1.1" 201 266
======================================================================
🟦 === INICIANDO EMISSÃO DE NFC-E VIA NUVEM FISCAL ===
======================================================================
❌ Erro interno: Erro ao conectar com Nuvem Fiscal: HTTPSConnectionPool(host='auth.sandbox.nuvemfiscal.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by NameRes
olutionError("<urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)"))
Traceback (most recent call last):
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connection.py", line 198, in _new_conn
sock = connection.create_connection(
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\util\connection.py", line 60, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "C:\Users\Matheus\AppData\Local\Programs\Python\Python310\lib\socket.py", line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
response = self._make_request(
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connectionpool.py", line 488, in _make_request
raise new_e
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connectionpool.py", line 464, in _make_request
self._validate_conn(conn)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connectionpool.py", line 1093, in _validate_conn
conn.connect()
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connection.py", line 753, in connect
self.sock = sock = self._new_conn()
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connection.py", line 205, in _new_conn
raise NameResolutionError(self.host, self, e) from e
urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\adapters.py", line 644, in send
resp = conn.urlopen(
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\connectionpool.py", line 841, in urlopen
retries = retries.increment(
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\urllib3\util\retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='auth.sandbox.nuvemfiscal.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)"))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\pdv_tech_assistencia\fiscal\views_fiscal.py", line 100, in obter_token_nuvem_fiscal
resp = requests.post(
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\venv310\lib\site-packages\requests\adapters.py", line 677, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='auth.sandbox.nuvemfiscal.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)"))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\pdv_tech_assistencia\fiscal\views_fiscal.py", line 198, in emitir_nfce_nuvemfiscal
token = obter_token_nuvem_fiscal(ambiente)
File "C:\Users\Matheus\Desktop\Pojeto Kalleby 1.4\pdv_tech_assistencia\fiscal\views_fiscal.py", line 132, in obter_token_nuvem_fiscal
raise Exception(f"Erro ao conectar com Nuvem Fiscal: {e}")
Exception: Erro ao conectar com Nuvem Fiscal: HTTPSConnectionPool(host='auth.sandbox.nuvemfiscal.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)"))
======================================================================
❌ ERRO INTERNO: Erro ao conectar com Nuvem Fiscal: HTTPSConnectionPool(host='auth.sandbox.nuvemfiscal.com.br', port=443): Max retries exceeded with url: /oauth/token (Caused by NameRes
olutionError("<urllib3.connection.HTTPSConnection object at 0x00000278DEE9D720>: Failed to resolve 'auth.sandbox.nuvemfiscal.com.br' ([Errno 11001] getaddrinfo failed)"))
======================================================================
Internal Server Error: /api/fiscal/nfce/emitir/
[08/Nov/2025 21:03:52] "POST /api/fiscal/nfce/emitir/ HTTP/1.1" 500 352
Conseguem me ajudar a resolver isso? O que estou fazendo de errado?
Não tenho experiencia com essa parte fiscal e estou me matando pra finalizar esse projeto.