Ambiente de homologação X produção

Gostaria de entender e obter esclarecimentos sobre o funcionamento e a segregação dos ambientes (Produção e Homologação) da API, pois a estrutura atual está causando confusão no fluxo de trabalho.

Minhas observações e a questão central são as seguintes:

:gear: Configuração dos Ambientes

  • Credenciais e URLs: Está claro que as credenciais (chaves) e as URLs da API são diferentes para os ambientes de Produção e Homologação.
  • Endpoint de Autenticação: Percebi que a autenticação é realizada no mesmo endpoint, independentemente do ambiente.
  • Parâmetro “ambiente”: Algumas requisições da API exigem o envio explícito de um campo chamado “ambiente” (no body ou nos parâmetros), o que não ocorre em todas as requisições.

:warning: Problema Encontrado na Emissão de NFSe (Homologação)

Recentemente, gerei novas chaves de Homologação para iniciar os testes no sandbox. Eu já havia utilizado a API de Produção anteriormente, onde realizei com sucesso o cadastro da minha empresa, certificado, configuração e emissão da NFSe.

Ao tentar replicar o processo no ambiente de Homologação, realizei novamente todo o processo de cadastro com as chaves de sandbox. Contudo, ao tentar emitir uma nova nota nesse ambiente, recebo o seguinte erro de validação:

JSON{ "error": { "code": "ValidationFailed", "message": "O ambiente de emissão solicitado é diferente do configurado para a empresa atual" } }

  • Tentativa de Correção: Mesmo após excluir o cadastro da minha empresa no ambiente de Produção, o erro persiste ao tentar emitir a nota em Homologação.

:thinking: Dúvidas Principais

  1. Como a API identifica e separa os dados e as configurações de empresa entre os ambientes, já que a autenticação ocorre no mesmo endpoint e o parâmetro “ambiente” nem sempre é obrigatório?
  2. Qual é a causa exata para a mensagem "O ambiente de emissão solicitado é diferente do configurado para a empresa atual" e como devo proceder para resolver e conseguir emitir notas no sandbox?

Agradeço a atenção e aguardo as orientações para desbloquear a emissão em Homologação.

Obrigado pelo detalhamento. Vou organizar os pontos e indicar o passo a passo para destravar sua emissão.

Como os ambientes se separam

duas camadas de “ambiente” que precisam estar coerentes entre si:

  1. Ambiente da plataforma Nuvem Fiscal (Sandbox x Produção)
  • Cada um tem Client ID/Secret próprios e gera tokens diferentes.
  • Sandbox: só permite emissões para a homologação da SEFAZ.
  • Produção: permite emissões para homologação ou produção da SEFAZ.
  1. Ambiente SEFAZ por empresa (homologação x produção)
  • Em cada ambiente da plataforma, sua empresa tem uma configuração própria de NFSe indicando se aquela empresa emite em homologacao ou producao na SEFAZ.
  • Essa configuração é feita pelo endpoint Alterar configuração de NFSe da empresa (vide documentação).
  • Exemplo de campo:
{ "ambiente": "homologacao" }  // ou "producao"

Resumo: o token determina se você está falando com Sandbox ou Produção da Nuvem Fiscal; já a configuração NFSe da empresa determina se aquela empresa emite para homologação ou produção da SEFAZ dentro desse mesmo ambiente.

Por que ocorreu o erro

A mensagem

"O ambiente de emissão solicitado é diferente do configurado para a empresa atual"

aparece quando há incompatibilidade entre:

  • o ambiente SEFAZ indicado na configuração NFSe da empresa (ou o ambiente SEFAZ inferido na emissão), e
  • o ambiente de emissão que a requisição está tentando usar.

Cenários típicos:

  • Empresa no Sandbox está configurada com ambiente = producao → o Sandbox não permite emissão para produção da SEFAZ, logo falha.
  • Empresa no Sandbox configurada para homologacao, mas a emissão tenta “produção” (via parâmetro/campo em alguma chamada) → conflito.
  • Token de Produção sendo usado contra URL de Sandbox (ou vice-versa).
  • A empresa foi criada/configurada em Produção, mas o teste está sendo feito no Sandbox sem recriar/configurar a empresa lá (cada ambiente tem base de dados própria).

Importante: excluir a empresa na Produção não afeta o Sandbox. São bases separadas. Se o erro persiste no Sandbox, é porque a configuração da empresa no Sandbox ainda está inconsistente.

Como corrigir (checklist rápido)

  1. Confirme o token
  • Gere o token com Client ID/Secret do Sandbox para testar no Sandbox.
  • Use esse token somente nas URLs do Sandbox.
  1. Reveja/ajuste a configuração NFSe da empresa no MESMO ambiente
  • No Sandbox, chame o endpoint Alterar configuração de NFSe da empresa e defina:
{ "ambiente": "homologacao" }

(No Sandbox, somente homologacao é aceito para emissão.)

  • Na Produção, você pode escolher homologacao ou producao conforme sua necessidade real.
  1. Não misture camadas
  • Token/URL definem Sandbox x Produção.
  • Configuração NFSe da empresa define homologação x produção da SEFAZ dentro de cada ambiente.
  1. Emissão
  • Emita no Sandbox apenas com empresa configurada para homologacao.
  • Se algum endpoint aceitar um campo “ambiente” na requisição, mantenha-o coerente com a configuração da empresa naquele ambiente.

Exemplo prático (Sandbox)

  1. Autentique com credenciais de Sandbox e guarde o token.
  2. Ajuste a configuração da sua empresa no Sandbox:
PUT /empresas/{cpf_cnpj}/nfse/config
Authorization: Bearer {token_sandbox}
Content-Type: application/json

{
  "ambiente": "homologacao",
  "rps": { ... },
  "regTrib": { ... },
  "prefeitura": { ... },
  "incentivo_fiscal": false
}
  1. Faça a emissão no Sandbox usando esse mesmo token.

Agradeço o suporte anterior, conseguimos configurar o acesso ao ambiente de Homologação (sandbox) com sucesso.

Contudo, estamos enfrentando um novo problema que sugere uma divergência na validação das regras de negócio entre os ambientes de Homologação e Produção.

:magnifying_glass_tilted_left: Descrição do Problema

Estou realizando uma requisição de emissão de NFSe em Homologação que é funcional e bem-sucedida quando executada no ambiente de Produção.

Ao executar a mesma emissão (mesmo payload) no sandbox, a API retorna um erro genérico não catalogado (E999).

:hammer_and_wrench: Dados da Requisição e Erro (Logs de Debug)

A requisição de envio de lote (POST para https://sefin.producaorestrita.nfse.gov.br/...) está resultando em um Status Code 400 (Bad Request) e o erro E999.

Id da nota que foi emitida em PRODUÇÃO: nfs_3a1d8515bff24fcd8ce070121a47b577

Abaixo estão os dados de debug capturados para essa nota que está falhando em homologação:

/debug:

{

"id": "nfs_3a1d8503548a4c92acb05a29dfffa5c6",

"tipo": "nfse",

"created_at": "2025-11-10T12:14:10.539Z",

"requisicoes": [

    {

        "created_at": "2025-11-10T12:14:11.351Z",

        "tipo": "envio_lote",

        "lote_id": "lns_3a1d8503546b46f689a6b8cdd6419818",

        "http_request": {

            "id": "req_3a1d850357874baab86ba4c46ae72350",

            "method": "POST",

            "uri": "https://sefin.producaorestrita.nfse.gov.br/SefinNacional/nfse",

            "headers": "content-type:application/json\r\n\r\n",

            "response_status_code": 400,

            "response_status_reason": "Bad Request",

            "response_headers": "content-length:237\r\ndate:Mon, 10 Nov 2025 12:14:11 GMT\r\ncontent-type:application/json; charset=utf-8\r\nx-aspnet-version:4.0.30319\r\nset-cookie:ARRAffinity=4a87fcd002adff0aa0dcbcd26452ea8d5a1915ba89f4b357b7fa02d94cc57012;Path=/;Domain=sefin.producaorestrita.nfse.gov.br\r\nserver:Microsoft-IIS/10.0\r\nx-powered-by:ASP.NET,ARR/3.0,ASP.NET\r\ncache-control:no-cache\r\nexpires:-1\r\npragma:no-cache\r\n\r\n",

            "response_time": 187

        }

    }

]

}

/debug/original-payload:

{

"provedor": "nacional",

"ambiente": "homologacao",

"infDPS": {

    "tpAmb": 2,

    "dhEmi": "2025-11-10T12:14:09Z",

    "dCompet": "2025-11-10",

    "prest": {

        "CNPJ": "60956876000138"

    },

    "toma": {

        "CPF": "06577500932",

        "xNome": "Juliana Zapelini"

    },

    "serv": {

        "cServ": {

            "cTribNac": "170201",

            "xDescServ": "Serviço Prestado"

        }

    },

    "valores": {

        "vServPrest": {

            "vServ": 1

        },

        "trib": {

            "tribMun": {

                "tribISSQN": 4

            },

            "totTrib": {

                "vTotTrib": {

                    "vTotTribFed": 0,

                    "vTotTribEst": 0,

                    "vTotTribMun": 0

                }

            }

        }

    }

}

}

/http-requests/request-content

{

"dpsXmlGZipB64": "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"

}

/http-requests/response-content

{

"tipoAmbiente": 2,

"versaoAplicativo": "SefinNac_Pre_1.4.0",

"dataHoraProcessamento": "2025-11-10T09:14:11.3490435-03:00",

"idDPS": "DPS420890626095687600013800900000000000001030",

"erros": [

    {

        "Codigo": "E999",

        "Descricao": "Erro não catalogado"

    }

]

}

Boa noite, @tecnologia1.

Não identificamos nada de errado com o seu payload. Tudo indica que o problema está no próprio ambiente de homologação do provedor nacional de NFS-e.

Como o erro retornado é genérico e não informa a causa, o ideal é acionar o suporte do provedor nacional ou aguardar até que eles regularizem o ambiente de testes.

1 curtida