NFCe - Erro ao se conectar

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.

Esse endereço não existe, você está utilizando um endereço incorreto.

Você está tentando usar credenciais de sandbox na API de produção da Nuvem Fiscal. São credenciais diferentes.

Fala @suporte543.

Obrigado pela resposta.

Nesse caso qual seria o endpoint correto visto que auth.sandbox.nuvemfiscal.com.br não existe?

https://auth.nuvemfiscal.com.br
Se eu não me engano, o endpoint pra pegar a token no prod ou sandbox é o mesmo, só depende das credenciais que são criadas nos respectivos ambientes

https://auth.nuvemfiscal.com.br/oauth/token

2 curtidas