> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engineapi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Homologação vs. produção

> tpAmb 1/2, ambienteFiscal, ek_test_/ek_live_ e billing: o que separa emissão de teste de emissão real na engineAPI.

O ambiente é uma propriedade **do emissor cadastrado** (`ambienteFiscal`: `1` =
Produção, `2` = Homologação, convenção `tpAmb` da própria SEFAZ), nunca da URL: o
endpoint é sempre `https://api.engineapi.com.br`.

<Info>
  Esta é a versão **curta**: o que muda entre os dois ambientes, numa tabela. Pro
  passo a passo de configurar e promover um emissor pra produção, veja
  [Sandbox](/guides/sandbox).
</Info>

## O que muda de verdade

|                        | Homologação (`ambienteFiscal=2`)                                           | Produção (`ambienteFiscal=1`)                         |
| ---------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------- |
| Validade fiscal        | Nenhuma, documento não vale como nota                                      | Valor fiscal real                                     |
| Webservice SEFAZ/SEFIN | Ambiente de teste                                                          | Ambiente real do estado/SEFIN nacional                |
| Chave `ek_test_`       | Opera normalmente                                                          | **403**: chave de teste não opera emissor de produção |
| Chave `ek_live_`       | Opera normalmente (sem restrição de ambiente)                              | Opera normalmente                                     |
| Métrica de uso         | Registrada como `<tipo>_test` (ex. `nfe_test`)                             | Registrada como `<tipo>`                              |
| Cobrança               | **Nunca fatura**, mesmo emitindo via `ek_live_` num emissor de homologação | Conta na cota/fatura do plano                         |

<Warning>
  `ek_test_` só opera issuer de homologação (`ambienteFiscal=2`) ou sandbox (`sandbox=true`);
  contra um emissor de produção a engineAPI responde **403** com a mensagem
  "Chave de teste não opera emissor de produção. Gere sua ek\_live\_ no portal." A chave
  restringe, nunca converte: um emissor de produção continua de produção, a `ek_test_`
  é barrada, não "rebaixada".
</Warning>

Como um emissor sai da homologação e chega à produção:

```mermaid theme={null}
flowchart LR
    A("Emissor cadastrado<br/>nasce ambienteFiscal: 2") --> B("Testa em homologação<br/>ek_test_, sem validade fiscal")
    B --> C("PATCH .../ambiente<br/>self-service")
    C --> D("ambienteFiscal: 1<br/>Produção")
    D --> E("ek_test_ bloqueada<br/>403, gere a ek_live_")

    classDef nucleo fill:#1E56B1,stroke:#0F2A5E,color:#fff
    classDef destaque fill:#2D7AF6,stroke:#0F2A5E,color:#fff
    classDef profundo fill:#0F2A5E,stroke:#0F2A5E,color:#fff
    class A,B nucleo
    class C destaque
    class D,E profundo
```

## Por que isso importa na prática

O ambiente decide qual webservice recebe o XML assinado, não existe um "modo teste"
genérico compartilhado entre parceiros. Cada emissor tem seu próprio `ambienteFiscal`,
e o default ao cadastrar é defensivo: homologação, nunca produção por omissão.

## Veja também

<CardGroup cols={2}>
  <Card title="Sandbox" icon="flask" href="/guides/sandbox">
    Como testar emissões sem sair do ambiente de homologação
  </Card>

  <Card title="SEFAZ e Webservices" icon="server" href="/conceitos/sefaz">
    Ambientes, contingência e como a engineAPI fala com a SEFAZ
  </Card>
</CardGroup>
