# GNRE: quando recolher o ICMS em guia e como gerar pela API

A **GNRE (Guia Nacional de Recolhimento de Tributos Estaduais)** é a guia usada para recolher ICMS e FCP devidos a uma UF diferente da do contribuinte. Ela foi instituída pelo **Convênio SINIEF 06/89** e hoje é gerada no **Portal GNRE**, mantido pela SEFAZ-PE em nome das UFs: o portal valida a guia com a UF favorecida e devolve o código de barras e, quando a UF aceita, o PIX.

## Quando a GNRE é exigida

- **DIFAL de venda a não contribuinte** (EC 87/2015): receita **100102**, ICMS Consumidor Final Não Contribuinte Outra UF por Operação. Quando o remetente não tem inscrição estadual na UF de destino, o DIFAL é recolhido **a cada operação**, antes da saída, e a guia acompanha a mercadoria. O cálculo está em [DIFAL](/conceitos-fiscais/difal).
- **ICMS-ST por operação**: receita **100099**, ICMS Substituição Tributária por Operação, na venda interestadual com substituição tributária para uma UF em que o remetente não é inscrito como substituto. A base e o MVA estão em [ICMS-ST e CEST](/conceitos-fiscais/icms-st-cest).
- **FCP**: parte das UFs cobra o Fundo de Combate à Pobreza no mesmo item da guia (valor de FCP), parte em receita própria. A [configuração da UF](#1-regras-da-uf) mostra qual é o caso.
- **Outras receitas** que a UF cadastra no portal, como ICMS Importação (**100056**) e recolhimentos especiais (**100080**).

### Com IE-ST a guia por operação deixa de ser necessária

O contribuinte inscrito como substituto tributário na UF de destino (**IE-ST**) recolhe o ICMS-ST e o DIFAL na apuração do mês (no DIFAL, receita **100110**, por apuração, ou a guia própria da UF), e não guia a guia. Quando a empresa tem IE-ST cadastrada para a UF favorecida (a mesma que a API anexa em `emit.IEST`, ver [DIFAL](/conceitos-fiscais/difal#ie-substituta-da-uf-destino-iest)) ou é da própria UF favorecida, a guia sai com a inscrição estadual no lugar do CNPJ, como o portal exige.

## Como gerar pela API

O Portal GNRE trabalha em lote e processa em segundo plano. A API esconde o lote: cada chamada gera **uma guia**, que pode ter até 100 itens (vários documentos de origem da mesma receita ou receitas diferentes, conforme o que a UF aceita).

### 1. Regras da UF

Cada UF define no portal as receitas que aceita e o que cada uma exige. [Consultar Configuração da UF](/api/gnre#consultar-configuracao-da-uf) devolve, por receita:

| Campo | O que indica |
| --- | --- |
| `ValorExigido` | **P** valor principal, **T** valor total, **A** um dos dois, **N** nenhum. **PO**, **TO** e **AO** são os mesmos, opcionais. |
| `ExigeValorFcp` | **S** obrigatório, **N** não informar, **O** opcional. |
| `ExigeDestinatario` | **S** obrigatório, **N** não informar, **O** opcional. |
| `TiposDocumentoOrigem` | Os tipos de documento aceitos, com o **código da UF**. A chave da NF-e não tem o mesmo código em todas. |
| `ExigeReferencia`, `ExigePeriodo`, `ExigeParcela` | Mês e ano de referência, período de apuração e parcela. |
| `CamposAdicionais` | Campos extras da UF (ex.: data de emissão da nota), enviados em `CamposExtras` com o código de cada um. |
| `AceitaPix` | A receita aceita pagamento via PIX. |

As regras são as mesmas para todas as empresas e ficam em cache por 6 horas.

### 2. Gerar a guia

[Gerar GNRE](/api/gnre#gerar-gnre) com o DIFAL de uma NF-e vendida para um consumidor de SP:

```json
{
  "TipoAmbiente": 2,
  "IdentificadorInterno": "PEDIDO-1234",
  "UfFavorecida": "SP",
  "DataPagamento": "2026-10-30",
  "Itens": [
    {
      "Receita": "100102",
      "TipoDocumentoOrigem": "24",
      "DocumentoOrigem": "35261012345678000199550010000012341000012345",
      "Referencia": { "Periodo": 0, "Mes": 10, "Ano": 2026 },
      "DataVencimento": "2026-10-30",
      "ValorPrincipal": 150.37,
      "ValorPrincipalFcp": 15.00,
      "Destinatario": {
        "CpfCnpj": "12345678909",
        "RazaoSocial": "FULANO DE TAL",
        "CodMunicipio": "3550308"
      },
      "CamposExtras": [ { "Codigo": 117, "Valor": "2026-10-29" } ]
    }
  ]
}
```

Os códigos de `TipoDocumentoOrigem` e de `CamposExtras` do exemplo são ilustrativos: use os que a configuração da UF devolve. O emitente é sempre a empresa do token.

Com o lote aceito pelo portal, a resposta volta com `status` **3** e o `Id` da guia: o portal ainda está validando com a UF. Se o portal recusar o lote na hora (ex.: CNPJ não habilitado), a resposta volta com `status` **2** e o motivo em `erros`.

### 3. Resultado

Uns 30 segundos depois, [Consultar GNRE](/api/gnre#consultar-gnre) pelo `Id` (ou pelo `IdentificadorInterno`), ou receba o webhook [`gnre.processada`](/webhooks#gnreprocessada). A Brasil NFe também consulta sozinha as guias em processamento a cada minuto.

| `status` | Situação | O que vem |
| --- | --- | --- |
| **1** | Gerada | Linha digitável, código de barras, PIX copia e cola (quando a UF aceita), data limite de pagamento e, com `IncluirPdf`, o PDF oficial do portal em `Base64Pdf`. |
| **2** | Rejeitada | Motivo do portal ou da UF em `erros`. Corrija e gere outra guia. |
| **3** | Processando | Consulte de novo em alguns segundos. Guias com pendência na UF podem levar até 1 hora. |

No painel, a mesma guia pode ser gerada em **Emissão de notas > GNRE**, e o botão **Gerar GNRE** de uma NF-e emitida abre a guia já preenchida com a UF, a chave, o destinatário e o valor do DIFAL ou do ICMS-ST.

## Certificado e liberação no Portal GNRE

O portal só aceita transmissões de um **CNPJ liberado por ele**. Sem a liberação, a guia volta com a rejeição **102** (CNPJ não habilitado para uso do serviço).

- **Certificado da empresa** (padrão): o CNPJ do certificado precisa ser liberado no Portal GNRE, em **Automação > Solicitar acesso ao Web Service**. A liberação é separada para produção e homologação. Empresas que assinam pelo [Brasil NFe Agente](/agente-docs/visao-geral) também transmitem por ele.
- **Certificado da Brasil NFe**: em **Configurações > Serviços**, no painel, a empresa pode transmitir pelo certificado da Brasil NFe, que já é liberado. O emitente da guia continua sendo a empresa.

O recibo do lote fica vinculado ao CNPJ que transmitiu, e a consulta do resultado usa sempre o mesmo certificado do envio, mesmo que a opção seja trocada depois.

## Pagamento: código de barras e PIX

A guia gerada tem o código de barras e a linha digitável de arrecadação e vale até a **data limite de pagamento** que a UF devolve. Desde janeiro de 2024, as UFs que aceitam PIX devolvem também o **PIX copia e cola**, que já vem impresso no PDF da guia.

Guias geradas em **homologação** são de teste e **não devem ser pagas**.

## Rejeições comuns do Portal GNRE

| Código | Motivo | Como resolver |
| --- | --- | --- |
| **102** | CNPJ não habilitado para uso do serviço. | Libere o CNPJ do certificado no Portal GNRE ou transmita pelo certificado da Brasil NFe. |
| **202** | Informe a inscrição estadual do emitente se inscrito na UF favorecida. | A empresa é inscrita na UF favorecida: a guia precisa sair com a IE-ST dela, cadastrada para essa UF. |
| **216** / **217** | Documento de origem não informado ou não usado pela receita. | Use um tipo da lista `TiposDocumentoOrigem` da UF. |
| **226** | A data de pagamento deve ser maior ou igual à data atual. | Envie a data de hoje ou uma futura. |
| **227** / **228** / **229** | Valor principal ou total não informado. | Siga o `ValorExigido` da receita. |
| **230** | Informe a inscrição estadual do destinatário se inscrito na UF. | Envie `InscricaoEstadual` do destinatário. |
| **238** | Campo extra obrigatório não informado. | Envie em `CamposExtras` os campos obrigatórios de `CamposAdicionais`. |
| **279** a **283** | Valor do FCP ausente ou incompatível com o valor do ICMS. | Envie o FCP no mesmo tipo de valor do ICMS (principal com principal, total com total). |

Rejeições da própria UF chegam com códigos **7xx** e o texto que a UF devolveu.
