Emissor Fiscal · todos os modelos

  • NF-e
  • NFC-e
  • NFS-e
  • CT-e
  • MDF-e
  • NFCom
  • DC-e

NFS-e em mais de 5.000 municípios

  • Monitor Fiscal
  • Diagnóstico com IA

  • Monitor FiscalTodo XML emitido contra o seu CNPJ, capturado e arquivado automaticamente.
  • Diagnóstico com IAEntenda o motivo de cada nota reprovada no painel.

+15 milhõesde documentos fiscais por mês

Antes de sair

Comece agora
com a Webmania®

Conheça as soluções Webmania® para o seu negócio e escolha a ideal para sua operação.

Agendar demonstração

Consulte condições e serviços disponíveis.

Suporte Técnico Webmania®

Oi, estamos aqui para te ajudar 😄

A Webmania® conta com um time de Weblovers completo, com especialistas no emissor de Nota Fiscal, contabilidade, código de programação, módulos de loja virtual e principalmente no encantamento das nossas soluções.


Está com dúvidas?
Confira nossa Central de Ajuda

Ainda com dúvidas? Estamos aqui! 😊️

  • Envie um E-mail com todos os detalhes (abrir ticket)
  • Ou acesse o Painel Webmania® e converse via Chat (iniciar chat)

Horário de atendimento:
E-mail 24 horas por dia. Chat de Segunda a Sexta-feira das 9h às 18h, exceto feriados.

Logo da Webmania
  • Ícone do produto Emissor Nota Fiscal

    Emissor de Nota Fiscal

    Emita através do Painel ou API de alta disponibilidade nos modelos NF-e, NFC-e, NFS-e, CT-e, MDF-e, CIOT, DC-e e NFCom.

    Emissor de Nota Fiscal
    Ícone do produto Monitor Fiscal

    Monitor Fiscal

    Monitore e baixe XMLs automaticamente direto da SEFAZ e Prefeituras para modelos NF-e, NFS-e, CT-e e MDF-e.

    Monitor Fiscal
    • Emissor de CT-e
    • Emissor de MDF-e
    • Logística e Transporte
    • Reforma Tributária
    • Integração WooCommerce
  • Ícone Documentação

    Documentação

    Conheça a API de alta disponibilidade
    da Webmania. Saiba mais

    Documentação

    APIs

    • Monitor Fiscal
    • Nota Fiscal de Produto
    • Nota Fiscal de Serviço
    • Conhecimento de Transporte
    • Manifesto Eletrônico
    • Nota Fiscal de Comunicação
    • Declaração de Conteúdo
    • CIOT / PEF (ANTT)

    Acesso rápido

    • Reforma Tributária
    • Classificações Tributárias
    • Adicionar empresa
    • Atualizar empresa
    • Exportar relatórios
    • Download XML
    • WooCommerce
    • Monitor Sefaz em tempo real
    • Monitor Prefeituras em tempo real
    • Documentação completa
    • Fale conosco
  • Planos
  • Ícone Sobre a Webmania

    Sobre a Webmania

    Conheça a nossa história.

    Sobre a Webmania
    Ícone Clientes

    Clientes

    Saiba mais sobre nossos clientes.

    Clientes
    Ícone Blog

    Blog

    Fique por dentro das últimas notícias.

    Blog Webmania
  • Contato
Entrar Agendar demonstração
      • Emissor de Nota Fiscal

        Emita através do Painel ou API de alta disponibilidade nos modelos NF-e, NFC-e, NFS-e, CT-e, MDF-e, CIOT, DC-e e NFCom.

      • Monitor Fiscal

        Monitore CNPJs e baixe automaticamente o XML dos documentos fiscais nos modelos NF-e, NFS-e, CT-e e MDF-e.

      • Documentação
      • Monitor Fiscal
      • Nota Fiscal de Produto
      • Nota Fiscal de Serviço
      • Conhecimento de Transporte
      • Manifesto Eletrônico
      • Nota Fiscal de Comunicação
      • Declaração de Conteúdo
      • Adicionar empresa
      • Atualizar empresa
      • Exportar relatórios
      • Download XML
      • Classificações Tributárias
      • WooCommerce
      • Monitor Sefaz em tempo real
      • Monitor Prefeituras em tempo real
  • Planos
    • Ícone Sobre a Webmania Sobre a Webmania
    • Ícone Clientes Clientes
    • Ícone Blog Blog
    • Ícone WhatsApp WhatsApp
    • Ícone Fale Conosco Fale Conosco
  • REST API GNRE
  • Guia Rápido
  • Notificações
    • Guias
  • Dois modos de emissão
  • Módulos & Exemplos
  • Autenticação
  • Formato de resposta
  • Emissão de GNRE
    • Informações Gerais
    • Guia Simples
    • Tipos de guia
    • Itens
    • Documento de Origem
    • Valores
    • Referência
    • Contribuinte Emitente
    • Contribuinte Destinatário
    • Campos Extras
    • Exemplo de Requisição
  • Emissão por Notas
  • Prévia de Seleção por Notas
    • Derivação de receitas por nota
    • ICMS-ST e FCP-ST — diferimento com recusa explícita
  • Consulta de Lote
    • Por Recibo
    • Resultado
    • PDF e PIX
  • Consulta de Status
  • Configuração de UF
  • Consulta de Guias
    • Resultado
  • Infraestrutura
  • Limite de requisições
⚡ Acompanhe em tempo real: Status | Monitor Sefaz | Monitor Prefeituras
Versão: 2.14

REST API GNRE

Documentação para emissão de Guia Nacional de Recolhimento de Tributos Estaduais (GNRE) - Lote de Guia.

GNRE de DIFAL, FCP e ICMS-ST via API GNRE de DIFAL, FCP e ICMS-ST via API

Utilize a REST API da Webmania® para emitir guias de recolhimento de tributos estaduais (GNRE) junto à Secretaria Estadual da Fazenda (SEFAZ) de forma automatizada, com suporte a múltiplas UFs, múltiplos documentos de origem, múltiplas receitas e pagamento via PIX. Deseja emitir outros modelos? Ver documentação

O que é a GNRE? A Guia Nacional de Recolhimento de Tributos Estaduais é o documento usado para recolher, à UF de destino, o ICMS devido em operações interestaduais: o diferencial de alíquotas (DIFAL), o Fundo de Combate à Pobreza (FCP) e o ICMS por substituição tributária (ICMS-ST). Cada guia é emitida por UF favorecida e por receita: uma operação que gera DIFAL e FCP produz duas guias separadas, cada uma com o seu próprio código de barras e a sua própria cobrança.

Na emissão a partir de notas fiscais, esta API deriva sozinha as guias de DIFAL e FCP. As parcelas de ICMS-ST e de FCP-ST são diferidas: a emissão por notas não as deriva e as devolve como recusadas — veja Itens — portanto, nesse caso, emita a guia por valor direto informando a receita.

Atenção: São Paulo e Espírito Santo não são aceitos pela API GNRE. São Paulo não publica receitas GNRE e recolhe o DIFAL e o ICMS-ST pela REST API DARE-ICMS SP; o Espírito Santo não publica as receitas de DIFAL/FCP compostas por esta API e recolhe pela REST API DUA-ES.

Disponibilidade e Segurança
Alta disponibilidade, escalonável e servidores redundantes no mais alto nível de segurança PCI DSS na líder global de cloud computing Amazon Web Services.
Armazenamento
Arquivamento seguro, criptografado e ilimitado dos documentos fiscais na tecnologia Amazon S3.
Integração REST API
Compatível com todas as linguagens via JSON e baixa latência com infraestrutura global.
Multi-UF
Emita guias para as 25 UFs que publicam receitas GNRE, com consulta de configuração específica por estado.
PIX e Código de Barras
Obtenha linha digitável, código de barras e payload PIX para pagamento das guias.
Suporte Especializado
Atendimento especializado para integração fiscal e programação.

Guia Rápido

Todas as requisições na API devem ser realizadas em ambiente criptografado HTTPS através da URL https://api.webmania.com.br/. O prefixo /2/gnre deve ser adicionado na URL em todas as requisições.

Importante: SP e ES não emitem via GNRE. São Paulo utiliza a API DARE-ICMS SP e Espírito Santo utiliza a API DUA-ES.

🚀 Fluxo básico de integração em 5 passos:

  1. Consulte a configuração da UF favorecida em GET /2/gnre/config-uf/{uf} para descobrir as receitas habilitadas e os campos que ela exige.
  2. Confira a seleção em POST /2/gnre/notas/preview — quando emitir a partir de notas fiscais. A prévia não emite nada e não consome cota do plano.
  3. Envie o lote em POST /2/gnre/emissao informando url_notificacao. A resposta é imediata e traz o uuid.
  4. Acompanhe por GET /2/gnre/status/{uuid} (sempre disponível) — o recibo SEFAZ chega no identificador do webhook e no provider_identifier do status; opcionalmente consulte o recibo em POST /2/gnre/consulta.
  5. Obtenha linha digitável, código de barras, PIX e PDF em POST /2/gnre/consulta, informando no campo recibo o valor obtido no passo anterior.

Principais funcionalidades:

  • Dois modos de emissão — por valor direto ou a partir de notas fiscais já emitidas na Webmania®
  • Seleção por período ou por chaves/UUIDs de até 100 notas por requisição
  • Derivação automática de receitas a partir das parcelas de imposto declaradas na NF-e
  • Prévia da seleção sem emitir e sem consumir cota do plano
  • Lote de até 100 guias em uma única requisição
  • PIX, código de barras e linha digitável em todas as guias aprovadas
  • PDF da guia disponível na consulta do lote
  • Notificação por webhook no desfecho de cada guia
  • Cobertura das 25 UFs que publicam receitas GNRE

A tabela abaixo lista todos os endpoints disponíveis na API:

URL HTTP Verb Função
/2/gnre/emissao POST Emitir lote de guias — por valor direto, por período de notas ou por chaves/UUIDs (retorna uuid para acompanhamento)
/2/gnre/notas/preview POST Prever a seleção de notas e as guias derivadas, sem emitir
/2/gnre/consulta POST Consultar o lote pelo recibo e obter linha digitável, código de barras, PIX e PDF
/2/gnre/consulta-guias POST Consultar guias já emitidas
/2/gnre/consulta-guias-resultado POST Consultar o resultado de um lote de consulta de guias pelo recibo
/2/gnre/config-uf/{uf} GET Consultar receitas habilitadas e campos exigidos pela UF
/2/gnre/status/{uuid} GET Consultar o status da emissão pelo UUID

Sempre envie o corpo da requisição no formato JSON, e o cabeçalho Content-Type deve estar definido como application/json.

A resposta da API estará sempre no formato JSON, o padrão da estrutura da resposta está disponível nesta seção da documentação.

Notificações

O webhook é o canal principal de notificação de resultado da API GNRE. Todo payload de emissão deve informar a URL de callback no parâmetro url_notificacao.

O que é o UUID? O UUID (Universally Unique Identifier) é um identificador único de 36 caracteres, no formato 8-4-4-4-12, que a Webmania® atribui a cada emissão. Ele é gerado assim que a requisição é aceita pela API da Webmania® — antes de qualquer transmissão à SEFAZ.

Uma vez gerado, o UUID é definitivo: não muda em retentativas, contingência ou reenvio. O recibo SEFAZ (provider_identifier), o número da guia e o código de barras são campos diferentes, só existem após o processamento e podem mudar — por isso o UUID, e não eles, deve ser a sua referência no banco de dados.

url_notificacao é obrigatória. A emissão retorna HTTP 422 se a URL não for enviada ou for inválida.

Quando a guia atingir um status terminal — aprovado ou rejeitado — a Webmania® envia uma requisição POST para a url_notificacao com o resultado completo.

Exemplo do payload enviado pelo webhook na emissão por valores:

{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modelo": "gnre",
  "status": "aprovado",
  "ambiente": 2,
  "identificador": "12345678901234"
}

O webhook é aditivo: além dos campos base, esse mesmo payload pode receber os blocos da tabela abaixo, sem alterá-los. A presença de cada bloco depende do modo de emissão e está indicada na respectiva descrição — origem, notas[], notas_ignoradas[] e parcelas_recusadas[] aparecem apenas na emissão por notas (origem = periodo ou chaves), enquanto guias[] também está presente nas emissões por valores quando o resultado contém guias (uma ou mais). Os blocos nunca são enviados vazios — quando não há o que reportar, a chave é simplesmente omitida.

Campo Tipo Descrição
origemstringA origem da emissão: periodo ou chaves. Presente apenas em emissões por notas.
notas[]objectUma linha por combinação de nota e receita: document_key, valor_icms_st e valor_difal (strings decimais), motivo_ignorado (null se não ignorada) e receita (null sem receita derivada). Nota com DIFAL e FCP gera duas linhas com o mesmo document_key e receitas diferentes. Presente apenas em emissões por notas.
notas_ignoradas[]objectLinhas de notas[] com motivo_ignorado preenchido — notas não liquidadas (ex.: st_requer_ie_substituto, sem_icms_st_nem_difal, uf_fora_escopo, nota_cancelada). Permanecem em notas[]. Omitido quando nada foi ignorado.
guias[]objectArtefatos de pagamento de cada guia do lote: situacao_guia, uf_favorecida, receita, codigo_barras, codigo_barra_48, linha_digitavel e qrcode_payload (PIX). Saiba mais. Presente quando o resultado do lote já está armazenado; omitido enquanto não há resultado.
parcelas_recusadas[]objectParcelas vST/vFCPST recusadas, fora do total das guias: document_key, receita, parcela, motivo e valor (string decimal). Recolha-as à parte. Presente apenas em emissões por notas; omitido quando nada foi recusado.

Os campos aditivos descrevem a mesma trilha exposta no endpoint de status e, quando aplicáveis, acompanham qualquer status terminal — inclusive payloads rejeitado, que além deles carregam motivos_rejeicao.

Exemplo de payload de emissão por notas (status aprovado):

{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modelo": "gnre",
  "status": "aprovado",
  "ambiente": 2,
  "identificador": "12345678901234",
  "origem": "periodo",
  "notas": [
    {
      "document_key": "35210412345678000123550010000012341123456780",
      "valor_icms_st": "250.00",
      "valor_difal": "140.25",
      "motivo_ignorado": null,
      "receita": "100102"
    },
    {
      "document_key": "35210412345678000123550010000012341123456780",
      "valor_icms_st": "250.00",
      "valor_difal": "140.25",
      "motivo_ignorado": null,
      "receita": "100129"
    },
    {
      "document_key": "35210412345678000123550010000012341123456780",
      "valor_icms_st": "250.00",
      "valor_difal": "140.25",
      "motivo_ignorado": null,
      "receita": "100099"
    },
    {
      "document_key": "35210412345678000123550010000012341123456781",
      "valor_icms_st": null,
      "valor_difal": null,
      "motivo_ignorado": "st_requer_ie_substituto",
      "receita": null
    }
  ],
  "notas_ignoradas": [
    {
      "document_key": "35210412345678000123550010000012341123456781",
      "valor_icms_st": null,
      "valor_difal": null,
      "motivo_ignorado": "st_requer_ie_substituto",
      "receita": null
    }
  ],
  "guias": [
    {
      "situacao_guia": 0,
      "uf_favorecida": "MG",
      "receita": "100102",
      "codigo_barras": "85840000002 5 99990123021 1 23456789012 7",
      "codigo_barra_48": "8584000000259999012302112345678901270000000099999",
      "linha_digitavel": "85840.00000 00025.999901 23021.123456 8 9012700000000 99999",
      "qrcode_payload": "00020101021226870014br.gov.bcb.pix..."
    },
    {
      "situacao_guia": 0,
      "uf_favorecida": "MG",
      "receita": "100129",
      "codigo_barras": "85850000002 6 99990123021 0 34567890123 7",
      "codigo_barra_48": "8585000000269999012302103456789012370000000099999",
      "linha_digitavel": "85850.00000 00026.999901 23021.034567 8 9012370000000 99999",
      "qrcode_payload": "00020101021226870014br.gov.bcb.pix..."
    }
  ],
  "parcelas_recusadas": [
    {
      "document_key": "35210412345678000123550010000012341123456780",
      "receita": "100099",
      "parcela": "vST",
      "motivo": "st_requer_ie_substituto",
      "valor": "250.00"
    }
  ]
}

O identificador é o recibo SEFAZ do lote — o mesmo valor exposto em provider_identifier no endpoint de status — e pode ser usado no POST /2/gnre/consulta para obter o resultado guia a guia. Quando status é rejeitado, o payload inclui motivos_rejeicao (lista de {codigo, mensagem}) com o motivo da rejeição.

Nas emissões originadas de notas fiscais (origem periodo ou chaves), o payload inclui também o bloco notas — uma linha por combinação de nota e receita, com document_key, valor_icms_st, valor_difal, motivo_ignorado e receita — e, quando há notas não liquidadas, o bloco notas_ignoradas com as mesmas linhas que carregam motivo_ignorado.

valor_icms_st e valor_difal são totais da nota, repetidos em cada linha. Uma nota que financia mais de uma receita aparece em mais de uma linha — cada uma identificada pelo seu receita — e todas repetem os mesmos totais: não some o array. Para valores agregados por guia, use o bloco guias descrito a seguir.

Guias

Quando o processamento do lote termina e o resultado guia a guia está disponível, o payload do webhook e a resposta de GET /2/gnre/status/{uuid} incluem o bloco guias, com um registro de pagamento por guia do lote:

Parâmetro Tipo Descrição
guias[].situacao_guianumberSituação da guia no retorno da SEFAZ — 0 = processada com sucesso; os demais valores seguem a enumeração da consulta de lote.
guias[].uf_favorecidastringUF favorecida da guia.
guias[].receitastringCódigo da receita que a guia quita; presente quando a guia corresponde a uma única receita.
guias[].codigo_barrasstringCódigo de barras da guia (44 posições).
guias[].codigo_barra_48stringCódigo de barras expandido (48 posições).
guias[].linha_digitavelstringLinha digitável para pagamento.
guias[].qrcode_payloadstringPayload do PIX (copia e cola) quando a UF/receita aceitar pagamento via PIX.

Diferença em relação à consulta de lote: a resposta de POST /2/gnre/consulta documenta os campos situacao_guia, dados, linha_digitavel, codigo_barras, qrcode_payload e motivos_rejeicao. Os campos codigo_barra_48, uf_favorecida e receita existem somente no webhook e no endpoint de status — não os procure na resposta da consulta.

O webhook não dispara para processando nem para erro_comunicacao. O status erro_comunicacao indica que o resultado junto à SEFAZ ficou incerto: a API não reenvia a emissão automaticamente, e a resolução é manual — consulte GET /2/gnre/status/{uuid}, que retorna uma mensagem orientando a conferência com a SEFAZ. Só reemita após confirmar que a guia não foi gerada, para evitar documento fiscal em duplicidade.

Se a comunicação com a SEFAZ falhar e a API esgotar as tentativas sem obter um identificador (recibo), a guia será marcada como rejeitada e o webhook será chamado com a mensagem explicando que houve instabilidade nos servidores da SEFAZ. Nessa situação, o integrador pode tentar emitir novamente.

Para casos em que o webhook não puder ser recebido, acompanhe GET /2/gnre/status/{uuid} como fallback de consulta manual.

A tabela abaixo resume os valores possíveis de status e o comportamento da notificação em cada um:

Status Terminal Dispara webhook Ação recomendada
processandoNãoNãoAguarde a notificação. Não reenvie a requisição.
aprovadoSimSimGuia gerada. Obtenha os artefatos de pagamento (linha digitável, código de barras, PIX e PDF).
rejeitadoSimSimA SEFAZ recusou a guia. Consulte o motivo no payload (motivos_rejeicao) e corrija antes de reemitir.
erro_comunicacaoSimNãoO resultado junto à SEFAZ ficou incerto e nenhum webhook é disparado: consulte GET /2/gnre/status/{uuid}. Confirme que a guia não foi gerada antes de reemitir, para evitar documento fiscal em duplicidade.

Dois modos de emissão

O endpoint POST /2/gnre/emissao aceita dois modos de origem, mutuamente exclusivos:

Valor direto A partir de notas fiscais
Quando usar Você já sabe o valor e a receita da guia Você emite NF-e pela Webmania® e quer a guia das operações do período
Campo de origem guias[] periodo ou documentos[]
Quem calcula o valor Você A API, a partir das parcelas declaradas na NF-e
Quem escolhe a receita Você A API, derivando das parcelas — com receita_override opcional
Limite 100 guias por lote, 100 itens por guia, 1.000 itens por lote 100 notas por requisição
Confere antes de emitir — POST /2/gnre/notas/preview
Fluxo de decisão com duas ramificações: emissão por valor direto ou a partir de notas fiscais, com prévia de seleção antes de emitir. Não Sim Sim, tenho as chaves ou UUIDs Não, quero tudo do mês Não Sim Preciso emitir uma guia Já emito NF-e pela Webmania®? MODO A — Valor direto informe o valor da guia Sei quais notas compõem a guia? MODO B.2 — documentos[] até 100 chaves de 44 dígitos ou UUIDs de notas MODO B.1 — periodo data_inicio + data_fim POST /2/gnre/notas/preview confere a seleção sem emitir e sem consumir cota A seleção está correta? Ajuste a janela, as chaves ou use os overrides POST /2/gnre/emissao mesmo payload + url_notificacao + data_vencimento Resposta imediata: status=processando + uuid Webhook em url_notificacao aprovado ou rejeitado GET /2/gnre/status/{uuid} consulta a qualquer momento
Fluxo de decisão: escolha entre valor direto e emissão a partir de notas — e confira a seleção na prévia antes de emitir.

Emissão a partir de notas fiscais. Informe uma janela de emissão em periodo (data_inicio e data_fim) ou uma lista de até 100 identificadores em documentos[]. A API localiza as notas, lê as parcelas de imposto declaradas em cada uma e compõe as guias sozinha — você não precisa calcular nada nem saber qual receita usar.

📌 O documentos[] aceita a chave de acesso ou o UUID da nota. O UUID é o mesmo identificador que a REST API de NF-e da Webmania® devolve na emissão e que você já tem gravado no seu banco. Você pode misturar chaves de 44 dígitos e UUIDs no mesmo array:
"documentos": [
  "35260800000000000000550010000012341123456789",
  "8f14e45f-ceea-4d3e-a2e0-123456789012"
]
💡 A prévia é gratuita. POST /2/gnre/notas/preview executa exatamente a mesma seleção, a mesma derivação de receitas e as mesmas validações da emissão, e devolve as guias que seriam criadas — sem emitir, sem ocupar o lote diário e sem consumir cota do plano. Use a prévia à vontade durante a integração.

Limite diário da emissão por notas: a emissão por notas tem limite diário de 1.000 guias por empresa — acima disso a API responde HTTP 429. Emissões por valor direto não contam para esse limite, que se aplica apenas à emissão por notas.

Módulos & Exemplos

Teste a REST API de GNRE sem escrever uma linha de código e acelere a sua integração com as ferramentas oficiais da Webmania®.

  • Ferramentas
    • Coleção Postman (Testes instantâneos)
    • Vídeo: Testar REST API sem linha de código

Autenticação

Para acessar os recursos da API, é necessário autenticar as requisições por meio do cabeçalho HTTP (HTTP headers). A autenticação deve ser feita utilizando o cabeçalho Authorization, no seguinte formato:

Authorization: Bearer {Access-Token}

O Access-Token da API 2.0 é encontrado no painel Webmania® e deve ser incluído em todas as requisições.

Mantenha suas credenciais em segurança. Nunca publique o Access Token nem a senha do certificado no código-fonte do site, aplicativo ou sistema onde ele possa ser facilmente acessado por terceiros.

Para aplicativos móveis (iOS e Android), recomendamos que a consulta à API seja realizada no servidor (back-end). O código-fonte do aplicativo deve apenas enviar a requisição enquanto o processamento da consulta deve ocorrer no seu servidor.

Formato de resposta

Todas as respostas da API seguem um padrão e estão no formato JSON, garantindo clareza e facilidade de interpretação.

A tabela abaixo apresenta os códigos de status HTTP que a API pode retornar com suas respectivas descrições. Esses códigos indicam o resultado da operação solicitada e ajudam a entender se a requisição foi bem-sucedida ou se ocorreu alguma falha.

Código Significado Sucesso Descrição
200 OK ✅ Operações bem-sucedidas (GET).
201 Created ✅ Criação de recursos (POST).
400 Bad Request ❌ A requisição está incorreta ou possui parâmetros inválidos no corpo (body) da requisição.
401 Unauthorized ❌ Falha na autenticação. Verifique o token de acesso enviado.
403 Forbidden ❌ Acesso negado. Não possui permissão para realizar a operação.
404 Not Found ❌ A guia não foi encontrada para o uuid informado em GET /2/gnre/status/{uuid}.
422 Unprocessable Entity ❌ Validação dos dados de entrada falhou (ex.: campo obrigatório, formato inválido).
503 Service Unavailable ❌ Certificado A1 do transmissor ou outro recurso necessário está indisponível.

Legenda: ✅ a operação foi concluída · ❌ a operação não foi concluída e nada foi criado.

O código 429 (Too Many Requests) não aparece nesta tabela: ele é específico do controle de volume e está descrito em Limite de requisições.

Limite diário do modo por notas: as emissões de GNRE a partir de notas fiscais somam um limite diário de 1.000 guias por empresa. Ao atingir o teto, novas emissões por notas retornam 429 com a mensagem "Limite diário de 1000 emissões por notas atingido. Novas emissões por notas serão liberadas no próximo dia." O limite é renovado à meia-noite (horário de Brasília) e a emissão com valor direto não consome esse limite.

Códigos de erro da GNRE

Os códigos abaixo são retornados pela Fazenda dentro do campo situacao_recepcao.codigo (recepção) ou situacao_process.codigo (processamento):

Código Descrição Ação recomendada
100Lote recebido com sucesso.Acompanhe o resultado em GET /2/gnre/status/{uuid} ou no webhook.
101Lote já cadastrado.O lote já foi recebido — consulte o resultado pelo recibo devolvido.
102Lote com sintaxe inválida.Revise a estrutura do lote enviado e reenvie corrigido.
103Lote ultrapassa o tamanho máximo permitido.Divida o lote em partes menores e reenvie.
104Lote com encoding inválido.Reenvie o lote em UTF-8.
105Lote com schema inválido.Revise os campos conforme esta documentação e reenvie.
106Lote com versão do schema inválida.Revise a versão do schema e reenvie.
107Lote com versão dos dados inválida.Revise os formatos de dados conforme esta documentação e reenvie.
108Lote com identificação do ambiente inválida.Use ambiente 1 (produção) ou 2 (homologação).
401Lote em processamento.Aguarde alguns instantes e consulte novamente.
402Lote processado com sucesso.Confira o resultado individual de cada guia em guias[].
403Lote processado com pendência.Verifique as guias com pendência em guias[] e acompanhe o desfecho.
404Lote não localizado.Confira o número do recibo informado.
450Erro no processamento do lote.Revise os dados do lote e reenvie.
501Erro no schema do lote.Revise a estrutura do lote e reenvie.
502Erro na formação do lote.Revise os dados do lote e reenvie.
503Erro no processamento.Aguarde e tente novamente — falha transitória do processamento.
504Erro de conexão.Falha de comunicação com a Fazenda — tente novamente.
601Erro no schema do resultado.Tente consultar o resultado novamente.
602Número do recibo não cadastrado.Confira o número do recibo informado.
603Erro no processamento do resultado.Tente consultar novamente em instantes.
604Erro de conexão no resultado.Falha de comunicação — tente novamente.
Importante: os códigos desta tabela pertencem ao fluxo do lote, retornados nos campos situacao_recepcao.codigo (recepção) e situacao_process.codigo (processamento). Não os confunda com o campo situacao_consulta, exclusivo de GET /2/gnre/config-uf/{uf}: naquele espaço, os códigos 450–455 descrevem o resultado da consulta de configuração (ex.: 450 = consulta realizada com sucesso), enquanto nesta tabela o 450 indica erro no processamento do lote. Os códigos de situacao_consulta estão listados na seção Configuração de UF.

Exemplo de resposta para uma requisição com erro:

{
  "error": "Parâmetro inválido: uf_favorecida. O valor XX não é uma UF válida."
}

Serviços
Emissão de GNRE

Emite um lote de guias GNRE junto à Secretaria Estadual da Fazenda (SEFAZ). A emissão é assíncrona: a API retorna imediatamente, processa o lote em background e notifica o resultado final pelo webhook informado em url_notificacao. O acompanhamento individual da guia é feito por GET /2/gnre/status/{uuid} — Saiba mais.

O que é um lote? Uma requisição de emissão envia um lote, que contém uma ou mais guias; cada guia contém um ou mais itens (documentos de origem ou receitas), e cada item carrega os valores a recolher. O lote é transmitido de uma vez à SEFAZ e recebe um recibo único; cada guia, porém, é um documento pagável independente e é contada individualmente na cobrança.

Limite Valor
Guias por lote100
Itens por guia100
Itens por lote1.000
Atenção: o teto de 1.000 itens por lote é o mais restritivo — 100 guias com 100 itens cada somam 10.000 itens e seriam recusadas. Dimensione os lotes por esse limite.
UF não elegíveis: SP e ES não emitem via GNRE e são rejeitadas com HTTP 422 na validação:
SP não é aceito na API GNRE. Utilize a API DARE-ICMS SP (/2/dare).
ES não é aceito na API GNRE. Utilize a API DUA-ES (/2/dua).
Nenhuma guia do lote é emitida quando qualquer uf_favorecida do lote é SP ou ES.
Tipos de guia GNRE:
  • 0 - Guia Simples: uma guia com um item e uma receita.
  • 1 - Múltiplos Documentos de Origem: uma guia com vários documentos de origem (até 100 itens).
  • 2 - Múltiplas Receitas: uma guia com várias receitas diferentes.

Emissão de GNRE
Informações Gerais

Parâmetros da requisição:

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da emissão.
1 = Produção
2 = Homologação
url_notificacao
Obrigatório
URL500URL do webhook que receberá a notificação quando a guia atingir status terminal (aprovado ou rejeitado).
guias
Obrigatório
array1-100Lista de guias do lote. Cada lote pode conter até 100 guias.
Homologação: ambiente aceita 1 (produção) e 2 (homologação). Em homologação, as requisições de emissão são limitadas a 1 por segundo por empresa — acima disso a API responde HTTP 429 com Retry-After: 1. Em produção (ambiente: 1) não há esse limite.

Emissão de GNRE
Guia Simples

Para guias do tipo 0 (simples), informe uma única guia com um único item.

Parâmetro Obrigatório Tipo Tam. Descrição
uf_favorecida
Obrigatório
string2UF favorecida (ex.: MG, RJ, BA).
tipo_gnre
Obrigatório
number1Tipo da guia.
0 = Simples
1 = Múltiplos Documentos
2 = Múltiplas Receitas
contribuinte_emitente
Obrigatório
object-Dados do contribuinte emitente. Saiba mais
itens
Obrigatório
array1-100Itens da guia. Saiba mais
valor_gnre
Opcional
number12,2Valor total da guia. Se omitido, será calculado pela soma dos itens.
data_pagamento
Opcional
date10Data de pagamento no formato yyyy-MM-dd.
identificador_guia
Opcional
string1-10Identificador externo da guia.

Emissão de GNRE
Tipos de guia

O campo tipo_gnre define a estrutura da guia: 0 = guia simples (um item, uma receita); 1 = guia de múltiplos documentos (cada item é um documento de origem diferente, até 100 itens); 2 = guia de múltiplas receitas (cada item é uma receita diferente, até 100 itens). Todos os itens de uma guia compartilham a mesma data de vencimento e o mesmo contribuinte emitente.

Guia tipo 1 — múltiplos documentos (tipo_gnre = 1)

Para guias do tipo 1, cada item representa um documento de origem diferente que financia a mesma receita (até 100 itens por guia). Use esse tipo quando uma obrigação é composta por vários documentos — por exemplo, várias NF-e de saída recolhendo DIFAL para a mesma UF sob a mesma receita. Cada item informa o próprio documento_origem e os seus valores; os demais campos do item podem repetir-se ou variar conforme a exigência da UF.

Exemplo — estrutura de uma guia tipo 1 dentro de guias[], dois documentos sob a mesma receita 100102:

{
  "uf_favorecida": "MG",
  "tipo_gnre": 1,
  "itens": [
    { "receita": "100102", "documento_origem": { "numero": "3526071234567890123455900012345678", "tipo": "01" }, "data_vencimento": "2026-08-20", "valores": [ { "tipo": 11, "valor": 100.00 } ] },
    { "receita": "100102", "documento_origem": { "numero": "3526071234567890123455900087654321", "tipo": "01" }, "data_vencimento": "2026-08-20", "valores": [ { "tipo": 11, "valor": 250.00 } ] }
  ]
}

Guia tipo 2 — múltiplas receitas (tipo_gnre = 2)

Para guias do tipo 2, cada item representa uma receita diferente dentro da mesma guia (até 100 itens por guia). Nem toda UF aceita este tipo de guia: a lista de tipos permitidos é publicada por receita em tipos_gnre na Configuração de UF, e uma combinação não publicada é recusada com HTTP 422.

Exemplo — estrutura de uma guia tipo 2 dentro de guias[], DIFAL e FCP na mesma guia:

{
  "uf_favorecida": "GO",
  "tipo_gnre": 2,
  "itens": [
    { "receita": "100102", "data_vencimento": "2026-08-20", "valores": [ { "tipo": 11, "valor": 350.00 } ] },
    { "receita": "100129", "data_vencimento": "2026-08-20", "valores": [ { "tipo": 12, "valor": 12.30 } ] }
  ]
}

Emissão de GNRE
Itens

Cada item da guia contém a receita, o documento de origem, os valores, a referência e dados do destinatário quando exigido.

Receitas compostas por esta API. O código da receita identifica qual tributo está sendo recolhido. As receitas abaixo são as que a emissão desta API trata quando publicadas pela UF favorecida: a disponibilidade de cada código é por UF, e a relação vigente é a que a UF publica na Configuração de UF (GET /2/gnre/config-uf/{uf}) — consulte-a antes de emitir, pois ela é a lista autoritativa. O 100002 está disponível somente nas UFs que o relacionam nessa resposta; receita que a UF favorecida não publica é recusada com HTTP 422 na emissão.

Receita Nome Origem
100102ICMS DIFAL de destino — por Operação (EC 87/15)Derivada de vICMSUFDest
100129Fundo de Combate à Pobreza — por Operação (EC 87/15)Derivada de vFCPUFDest
100002ICMS CONSUMIDOR FINAL NÃO CONTRIBUINTESomente por valor direto
100099ICMS Substituição TributáriaSomente por valor direto — não emite por notas (saiba por quê)
100110ICMS DIFAL de destino — por ApuraçãoSomente via receita_override
100137Fundo de Combate à Pobreza — por ApuraçãoSomente via receita_override

As receitas "por Apuração" (100110 e 100137) nunca são derivadas automaticamente das notas: elas só entram na guia por receita_override (descrito mais abaixo) e, como qualquer substituição, continuam sujeitas à validação de configuração da UF — uma receita que a UF não publica é recusada com HTTP 422.

Parâmetro Obrigatório Tipo Tam. Descrição
receita
Obrigatório
string6Código da receita (ex.: 100002).
detalhamento_receita
Opcional
string6Detalhamento da receita quando a UF exige. Aceita exatamente 6 dígitos — envie o código publicado em config-uf sem remover os zeros à esquerda.
documento_origem
Opcional
object-Documento de origem. Saiba mais
produto
Opcional
string1-4Código do produto.
referencia
Opcional
object-Período de referência. Saiba mais
data_vencimento
Obrigatório
date10Data de vencimento no formato yyyy-MM-dd.
valores
Obrigatório
array1-10Valores do item. Saiba mais
convenio
Opcional
string30Número do convênio quando exigido.
contribuinte_destinatario
Opcional
object-Dados do destinatário quando exigido pela UF. Saiba mais
campos_extras
Opcional
array0-3Campos extras definidos pela UF. Saiba mais
numero_controle
Opcional
string1-20Número de controle do item.
numero_controle_fecp
Opcional
string1-20Número de controle FECP.

Emissão de GNRE
Documento de Origem

Parâmetro Obrigatório Tipo Tam. Descrição
numero
Obrigatório
string1-44Número do documento de origem.
tipo
Obrigatório
string2Tipo do documento de origem, com 2 dígitos (ex.: 01). Os códigos válidos são publicados por UF em tipos_documentos_origem na resposta de GET /2/gnre/config-uf/{uf}; a API repassa o valor sem catálogo próprio.

Emissão de GNRE
Valores

Cada valor é composto pelo tipo e pelo valor monetário. Os tipos de valor seguem a tabela abaixo:

Tipo Descrição
11Principal ICMS
12Principal Fundo de Combate à Pobreza (FCP)
21Total ICMS
22Total FCP
31Multa ICMS
32Multa FCP
41Juros ICMS
42Juros FCP
51Atualização Monetária ICMS
52Atualização Monetária FCP
Parâmetro Obrigatório Tipo Tam. Descrição
tipo
Obrigatório
number2Tipo do valor conforme tabela acima.
valor
Obrigatório
number12,2Valor monetário.

Emissão de GNRE
Referência

Período de referência para pagamento do imposto.

Parâmetro Obrigatório Tipo Tam. Descrição
periodo
Opcional
number1Período de referência.
0 = Mensal
1 = 1ª quinzena
2 = 2ª quinzena
3 = 1º decêndio
4 = 2º decêndio
5 = 3º decêndio
mes
Opcional
number1-2Mês de referência (1 a 12).
ano
Opcional
number4Ano de referência (ex.: 2026).
parcela
Opcional
number1-3Número da parcela (1 a 999).

Emissão de GNRE
Contribuinte Emitente

Dados de identificação do contribuinte emitente da guia.

Parâmetro Obrigatório Tipo Tam. Descrição
tipo_identificacao
Obrigatório
number1Tipo de identificação.
1 = CNPJ
2 = CPF
cnpj
Obrigatório quando tipo_identificacao = 1
string14CNPJ do emitente.
cpf
Obrigatório quando tipo_identificacao = 2
string11CPF do emitente.
inscricao_estadual
Opcional
string2-16Inscrição estadual.
razao_social
Opcional
string60Razão social.
endereco
Opcional
string60Endereço.
municipio
Opcional
string5Cinco primeiras posições do código IBGE do município (ex.: 35503 para São Paulo, cujo código completo é 3550308).
uf
Opcional
string2UF.
cep
Opcional
string8CEP (somente números).
telefone
Opcional
string6-11Telefone (somente números).

Emissão de GNRE
Contribuinte Destinatário

Dados do contribuinte destinatário, obrigatório quando a UF exigir.

Parâmetro Obrigatório Tipo Tam. Descrição
tipo_identificacao
Obrigatório
number1Tipo de identificação.
1 = CNPJ
2 = CPF
cnpj
Obrigatório quando tipo_identificacao = 1
string14CNPJ do destinatário.
cpf
Obrigatório quando tipo_identificacao = 2
string11CPF do destinatário.
inscricao_estadual
Opcional
string2-16Inscrição estadual.
razao_social
Opcional
string60Razão social.
endereco
Opcional
string60Endereço.
municipio
Opcional
string5Cinco primeiras posições do código IBGE do município (ex.: 35503 para São Paulo, cujo código completo é 3550308).
uf
Opcional
string2UF.
cep
Opcional
string8CEP.
telefone
Opcional
string6-11Telefone.

Emissão de GNRE
Campos Extras

Campos extras definidos pela configuração da UF, quando uma receita da UF os exige. Cada item aceita no máximo 3 campos extras; o codigo é um inteiro e o valor, uma string de até 100 caracteres. Você descobre que a UF exige campos extras pelo sinalizador exige_campos_adicionais: "S" na configuração da receita, em GET /2/gnre/config-uf/{uf}; a relação de códigos é publicada no portal nacional do GNRE.

Parâmetro Obrigatório Tipo Tam. Descrição
codigo
Obrigatório
integer-Código do campo extra.
valor
Obrigatório
string100Valor do campo extra.

Emissão de GNRE
Exemplo de Requisição

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/emissao
{
  "ambiente": 2,
  "url_notificacao": "https://seudominio.com.br/webhook/gnre",
  "guias": [
    {
      "uf_favorecida": "MG",
      "tipo_gnre": 0,
      "contribuinte_emitente": {
        "tipo_identificacao": 1,
        "cnpj": "12345678000195",
        "inscricao_estadual": "123456789012",
        "razao_social": "EMPRESA EXEMPLO LTDA",
        "endereco": "RUA EXEMPLO 100",
        "municipio": "35503",
        "uf": "SP",
        "cep": "01001000",
        "telefone": "11999999999"
      },
      "itens": [
        {
          "receita": "100002",
          "detalhamento_receita": "000001",
          "documento_origem": {
            "numero": "3526071234567890123455900012345678",
            "tipo": "01"
          },
          "data_vencimento": "2026-07-20",
          "valores": [
            { "tipo": 11, "valor": 100.00 }
          ],
          "referencia": {
            "periodo": 0,
            "mes": 7,
            "ano": 2026
          },
          "contribuinte_destinatario": {
            "tipo_identificacao": 1,
            "cnpj": "11222333000181",
            "inscricao_estadual": "987654321098",
            "razao_social": "DESTINATARIO EXEMPLO LTDA",
            "endereco": "RUA DESTINO 200",
            "municipio": "35503",
            "uf": "SP",
            "cep": "01002000"
          }
        }
      ],
      "data_pagamento": "2026-07-20"
    }
  ]
}

Resposta da Webmania®:

{
  "status": "processando",
  "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Importante: guarde o uuid retornado. O resultado final será enviado para a url_notificacao quando a guia atingir aprovado ou rejeitado. Para acompanhar a qualquer momento, consulte GET /2/gnre/status/{uuid} — quando o lote já tiver sido processado, o campo provider_identifier traz o recibo SEFAZ, que pode ser usado no POST /2/gnre/consulta para obter o resultado guia a guia.

Emissão de GNRE
Emissão por Notas (período ou chaves)

O POST /2/gnre/emissao — o mesmo endpoint da emissão por valor direto — também aceita a origem por notas. Além do valor direto (guias), o GNRE pode ser emitido a partir de notas fiscais já emitidas, informando uma janela de emissão (periodo) ou uma lista de identificadores (documentos). Os dois modos são mutuamente exclusivos entre si e não podem ser combinados com guias.

As receitas de cada guia são derivadas das parcelas de imposto declaradas na própria NF-e — veja a derivação de receitas: uma nota que carrega DIFAL e FCP gera duas guias separadas, e cada guia é um documento pagável contado individualmente na cobrança.

Na origem por notas, o lote é composto pela API: os campos abaixo são informados na raiz da requisição e copiados para cada guia/item composto.

Nenhuma recusa reserva nada. Toda recusa listada abaixo acontece antes de qualquer reserva: a seleção, a derivação, a validação da configuração da UF e o guard do payload composto rodam primeiro, e somente depois a guia é reservada. Uma requisição recusada não cria guia, não ocupa o lote diário e não consome cota do plano. Você pode conferir a seleção e as recusas antecipadamente com POST /2/gnre/notas/preview (saiba mais), que executa as mesmas validações da emissão.

Parâmetros da requisição (origem por notas):

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da emissão.
1 = Produção
2 = Homologação
url_notificacao
Obrigatório
URL500URL do webhook que receberá a notificação quando a guia atingir status terminal (aprovado ou rejeitado).
periodo.data_inicio
periodo.data_fim
Obrigatório quando a origem for por período
date10Janela de emissão das notas, no formato yyyy-MM-dd. Mutuamente exclusivo com documentos e com guias.
documentos
Obrigatório quando a origem for por chaves
array1-100Chaves de acesso (44 dígitos) ou UUIDs das notas, sem duplicatas. Máximo de 100 documentos. Mutuamente exclusivo com periodo e com guias.
data_vencimento
Obrigatório
date10Vencimento do lote, no formato yyyy-MM-dd. A política de vencimento é do contribuinte e a API não arbitra um vencimento padrão.
data_pagamento
Obrigatório
date10Data de pagamento, no formato yyyy-MM-dd. É escolha do contribuinte e define a validade da guia — a API não arbitra uma data padrão.
convenio
Opcional*
string30Convênio/Protocolo ICMS que autoriza a substituição tributária no par (UF, receita). *A obrigatoriedade segue o estado publicado na configuração GNRE da UF para o par (exige_convenio na Configuração de UF), na escala N/S/O: N = não exigido, S = opcional (aceito, nunca obrigatório) e O = exigido — somente o O torna o envio obrigatório; quando exigido e ausente, a emissão recusa com HTTP 422 nomeando o campo. Não é derivável de nota alguma e nunca é inventado pela API.
referencia
Opcional
object-Competência do fato gerador {periodo, mes, ano, parcela} — derivada da data de emissão da nota: nas receitas por operação (100102/100129) a competência é o mês de emissão e o período é cota única. Informe apenas para sobrescrever a derivação; nunca é obrigatória.
receita_override
Opcional
object-Mapa receita derivada → receita substituta (códigos de 6 dígitos), ex.: {"100102": "100110"} emite o DIFAL por Apuração em vez de por Operação. Substitui a derivação mas não dispensa a validação de configuração da UF — veja Overrides.
detalhamento_receita_override
Opcional
object-Mapa receita → código de detalhamento, ex.: {"100129": "009888"}. É o único caminho para emitir por notas nos pares em que o detalhamento é obrigatório e não consta da nota (MT nas receitas 100102/100129; AL na 100129) — sem o override, a emissão recusa com HTTP 422 nomeando UF, receita e a lista de opções publicada pela própria UF.

Exemplo — período de emissão:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/emissao
{
  "ambiente": 2,
  "url_notificacao": "https://seudominio.com.br/webhook/gnre",
  "data_vencimento": "2026-08-20",
  "data_pagamento": "2026-08-20",
  "periodo": {
    "data_inicio": "2026-07-01",
    "data_fim": "2026-07-31"
  }
}

Exemplo — chaves de acesso / UUIDs, com override e convênio opcionais:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/emissao
{
  "ambiente": 2,
  "url_notificacao": "https://seudominio.com.br/webhook/gnre",
  "data_vencimento": "2026-08-20",
  "data_pagamento": "2026-08-20",
  "documentos": [
    "35260700000000000000550010000012341123456789",
    "8f14e45f-ceea-4d3e-a2e0-123456789012"
  ],
  "convenio": "123456789012345678901234567890",
  "receita_override": { "100102": "100110" },
  "detalhamento_receita_override": { "100129": "009888" }
}

Resposta da Webmania® (emissão enfileirada — o processamento é assíncrono):

{
  "status": "processando",
  "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "parcelas_recusadas": [
    {
      "document_key": "35260700000000000000550010000012441123456790",
      "receita": "100099",
      "parcela": "vST",
      "motivo": "st_requer_ie_substituto",
      "valor": "45.00",
      "mensagem": "ICMS-ST (receita 100099) não pode ser emitido por notas: depende da inscrição estadual de substituto tributário do contribuinte na UF de destino, que não consta da nota. Emita esta guia por valor direto informando a receita."
    }
  ]
}

O bloco parcelas_recusadas aparece somente quando uma nota selecionada carrega uma parcela recusada — a ausência do bloco significa que a emissão cobriu tudo o que selecionou. O resultado final chega pelo webhook em url_notificacao e pode ser acompanhado em GET /2/gnre/status/{uuid} (saiba mais).

Recusas e status da origem por notas

  • 422 — vencimento ausente: Informe data_vencimento (AAAA-MM-DD) para emissão de GNRE por notas. A política de vencimento é do contribuinte e a API não arbitra um vencimento padrão.
  • 422 — pagamento ausente: Informe data_pagamento (AAAA-MM-DD) para emissão de GNRE por notas. A data de pagamento é escolha do contribuinte e define a validade da guia; a API não arbitra uma data padrão.
  • 422 — nenhuma nota elegível: Nenhuma nota elegível para emissão de GNRE. com notas_ignoradas listando cada nota recusada e seu motivo_ignorado.
  • ICMS-ST e FCP-ST recusados com motivo próprio: notas que carregam apenas vST/vFCPST são ignoradas com st_requer_ie_substituto / fcp_st_requer_ie_substituto; quando a nota tem outras parcelas emitíveis e carrega uma parcela de ST, ela aparece em parcelas_recusadas. Em ambos os casos, emita essas parcelas por valor direto informando a receita (e o detalhamento, quando aplicável).
  • SP e ES não emitem via GNRE: notas com destino SP ou ES não são selecionadas — SP não publica nenhuma receita GNRE (use a API DARE-ICMS SP, /2/dare) e ES não publica as receitas que esta API compõe, 100102/100110/100129/100137 (use a API DUA-ES, /2/dua).
  • Configuração da UF validada antes da reserva: cada receita do lote é conferida contra a configuração vigente da GNRE na UF favorecida. Recusas publicadas pela UF respondem 422 nomeando UF e receita (451 receita não cadastrada, 452 receita não relacionada a esta UF, 453 UF não cadastrada no ambiente, 454 UF não habilitada no ambiente, 455 nenhuma receita habilitada — e 422 também para receita ausente da lista da UF). Se a configuração não puder ser obtida (SEFAZ indisponível, falha de certificado), a emissão responde 503: a API nunca emite sem validar.

Emissão de GNRE
Prévia de Seleção por Notas

POST /2/gnre/notas/preview antecipa, sem emitir nada, a seleção de notas que POST /2/gnre/emissao faria para a mesma origem (periodo ou documentos) e o mesmo ambiente. A prévia executa o mesmo motor de seleção, a derivação de receitas e toda a validação de configuração de UF da emissão — inclusive as mesmas recusas com as mesmas mensagens — e devolve as guias previstas antes de qualquer confirmação.

A prévia não reserva e não consome nada. O endpoint é somente leitura: não cria guias, não ocupa o lote diário, não move contadores e não consome cota do plano. Nenhuma chamada da prévia torna uma emissão subsequente diferente — ela apenas mostra o que será efetivamente emitido quando você confirmar.

Limite diário da emissão por notas: a emissão por notas tem limite diário de 1.000 guias por empresa — acima disso a API responde HTTP 429. Emissões por valor direto não contam para esse limite, que se aplica apenas à emissão por notas.

Os parâmetros de origem são os mesmos da Emissão por Notas: ambiente e a origem (periodo ou documentos, mutuamente exclusivos). O url_notificacao não se aplica a este endpoint.

Campos da resposta:

Parâmetro Tipo Descrição
tipostringSempre gnre neste endpoint.
selecionadas[]arrayNotas elegíveis: fiscal_document_uuid, document_key, valor_icms_st, valor_difal e as parcelas individuais (valor_icms_st_proprio, valor_fcp_st, valor_icms_uf_dest, valor_fcp_uf_dest), uf_destino e guia_indicado.
ignoradas[]arrayNotas recusadas, com motivo_ignorado e, quando aplicável, guia_indicado e mensagem (motivos de ICMS-ST/FCP-ST, abaixo).
totaisobjectSomas em texto decimal: icms_st, difal e total.
total_encontradas
total_omitidas
limite_por_requisicao
integerSomente na origem por periodo: total de notas encontradas na janela, quantas ficaram de fora e o limite de notas por requisição — sempre 100 notas. Um período acima desse limite responde 422 com a mesma contabilização da emissão, sem emitir nada.
guias_previstas[]arrayUma entrada por guia derivada: uf_favorecida, receita, tipo_gnre, quantidade_notas e valor — com detalhamento_receita e/ou documento_origem quando presentes. tipo_gnre é 0 quando a guia prevista tem um único item (uma nota) e 1 quando agrupa várias notas sob a mesma (UF, receita) — nunca 2: receitas diferentes são sempre guias separadas.
parcelas_recusadas[]arrayPresente somente quando há parcelas recusadas: document_key, receita, parcela (vST ou vFCPST), motivo, valor e mensagem.

Exemplo de requisição:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/notas/preview
{
  "ambiente": 2,
  "periodo": {
    "data_inicio": "2026-07-01",
    "data_fim": "2026-07-31"
  }
}

Exemplo de resposta:

{
  "tipo": "gnre",
  "selecionadas": [
    {
      "fiscal_document_uuid": "8f14e45f-ceea-4d3e-a2e0-123456789012",
      "document_key": "35260700000000000000550010000012341123456789",
      "valor_icms_st": "0.00",
      "valor_difal": "362.30",
      "valor_icms_st_proprio": "0.00",
      "valor_fcp_st": "0.00",
      "valor_icms_uf_dest": "350.00",
      "valor_fcp_uf_dest": "12.30",
      "uf_destino": "GO",
      "guia_indicado": "gnre"
    }
  ],
  "ignoradas": [
    {
      "fiscal_document_uuid": "9d32fa10-bb21-4e7c-9100-987654321098",
      "document_key": "35260700000000000000550010000012441123456790",
      "valor_icms_st": null,
      "valor_difal": null,
      "motivo_ignorado": "st_requer_ie_substituto",
      "mensagem": "ICMS-ST (receita 100099) não pode ser emitido por notas: depende da inscrição estadual de substituto tributário do contribuinte na UF de destino, que não consta da nota. Emita esta guia por valor direto informando a receita."
    }
  ],
  "totais": { "icms_st": "0.00", "difal": "362.30", "total": "362.30" },
  "total_encontradas": 2,
  "total_omitidas": 0,
  "limite_por_requisicao": 100,
  "guias_previstas": [
    { "uf_favorecida": "GO", "receita": "100102", "tipo_gnre": 0, "quantidade_notas": 1, "valor": "350.00" },
    { "uf_favorecida": "GO", "receita": "100129", "tipo_gnre": 0, "quantidade_notas": 1, "valor": "12.30" }
  ]
}

Derivação de receitas por nota

Para cada nota, a receita GNRE é derivada das próprias parcelas de imposto declaradas na NF-e. Uma nota que carrega as duas parcelas abaixo gera duas guias previstas separadas — nunca dois itens de uma mesma guia — e cada guia é um documento pagável: a emissão confirma 2 guias e a cobrança conta 2 (uma unidade por guia). No exemplo acima, os totais refletem essa soma: totais.difal e totais.total totalizam 350.00 + 12.30 = 362.30, exatamente a soma de guias_previstas[].valor. Quando essa mesma nota também carrega uma parcela de substituição tributária (vST/vFCPST), a parcela é recusada com motivo próprio e aparece como uma terceira linha no bloco parcelas_recusadas[] da resposta — nunca é somada às guias derivadas e nunca é descartada em silêncio:

Parcela da NF-e Receita derivada Descrição
vICMSUFDest100102ICMS DIFAL de destino — por Operação (EC 87/15).
vFCPUFDest100129Fundo de Combate à Pobreza — por Operação (EC 87/15).

Os códigos "por Apuração" (100110 para DIFAL e 100137 para FCP) nunca substituem os acima automaticamente; para usá-los, informe o receita_override descrito mais abaixo.

ICMS-ST e FCP-ST — diferimento com recusa explícita

ICMS-ST não é emitido por notas. A parcela vST (receita 100099) e a parcela vFCPST são recusadas com motivo próprio nas respostas (motivo_ignorado/motivo: st_requer_ie_substituto e fcp_st_requer_ie_substituto). O motivo é o mesmo da emissão: a emissão de ICMS-ST depende da inscrição estadual de substituto tributário do contribuinte na UF de destino, que não consta da NF-e; e, para o FCP de ST, a distinção entre FCP por operação (EC 87/15) e FCP de substituição tributária é feita pelo detalhamento da receita, que também não consta da nota — emitir sob a receita 100129 sem detalhamento quitaria o tributo errado. Para essas parcelas, emita a guia por valor direto informando a receita (e o detalhamento, quando aplicável).

As recusas aparecem em duas superfícies diferentes:

  • ignoradas[], com motivo_ignorado: a nota inteira ficou de fora da seleção. É o caso da nota que só carrega as parcelas de ST — sem DIFAL nem FCP emitíveis, ela não seleciona no endpoint.
  • parcelas_recusadas[], com motivo, parcela e valor: a parcela recusada pertence a uma nota selecionada — a nota emitiu suas guias derivadas e a parcela de ST ficou de fora, declarada aberta em vez de mergulhada no total. É por isso que o mesmo par pode aparecer duas vezes na resposta: uma nota com vFCPUFDest e vFCPST figura nas guias previstas sob a receita 100129 e, sob a mesma document_key e a mesma receita 100129, no bloco de recusadas — o que distingue as duas linhas é o campo parcela.

No corpo de sucesso da emissão por notas, o bloco parcelas_recusadas[] também é anexado, quando existe recusa — o total da guia não cobre essas parcelas, e a resposta é o único lugar onde você fica sabendo disso no momento da emissão.

SP e ES — dois casos diferentes

As notas cuja UF de destino é SP ou ES não são selecionadas para GNRE, e as duas recusas são fatos distintos:

  • SP não publica nenhuma receita GNRE — o portal responde "Nenhuma Receita para a UF selecionada" e SP não aparece no seletor de UF favorecida nem na lista das 25 UFs disponíveis. Notas com destino SP são indicadas com guia_indicado: "dare": utilize a API DARE-ICMS SP (/2/dare).
  • ES tem receitas GNRE (incluindo a 100099), mas não publica nenhuma das receitas que esta API compõe (100102/100110/100129/100137). Notas com destino ES são indicadas com guia_indicado: "dua": utilize a API DUA-ES (/2/dua).

Override de receita e de detalhamento

Duas chaves opcionais permitem substituir a composição derivada (valores de 6 dígitos), tanto na emissão quanto na prévia. A substituição nunca recria uma parcela recusada (ICMS-ST/FCP-ST) e nunca pula a validação de configuração da UF:

Parâmetro Tipo Descrição
receita_overrideobjectMapa receita derivada → receita substituta, ex.: {"100102": "100110"} emite o DIFAL por Apuração em vez de por Operação.
detalhamento_receita_overrideobjectMapa receita → código de detalhamento, ex.: {"100129": "009888"} informa o detalhamento que distingue, p. ex., FCP por operação de FCP de substituição tributária. Cada valor aceita exatamente 6 dígitos, como publicado em config-uf (detalhamentos_receita) — os zeros à esquerda fazem parte do código. O detalhamento aceito aparece em guias_previstas[].detalhamento_receita.

Serviços
Consulta de Lote

Consulta o resultado do processamento de um lote de guias GNRE a partir do número do recibo SEFAZ. Com a emissão assíncrona, o recibo não é mais retornado na resposta imediata: ele fica disponível no campo identificador do webhook e no campo provider_identifier de GET /2/gnre/status/{uuid}.

Consulta de Lote
Por Recibo

Para consultar o resultado de um lote, envie uma requisição POST para /2/gnre/consulta.

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da consulta.
1 = Produção
2 = Homologação
recibo
Obrigatório
string10/14Número do recibo SEFAZ com 10 ou 14 dígitos — use exatamente o valor recebido (campo identificador do webhook ou provider_identifier do status), sem remover ou completar zeros.
incluir_pdf_guias
Opcional
string1Incluir PDF das guias.
S = Sim
N = Não
incluir_arquivo_pagamento
Opcional
string1Incluir arquivo de pagamento.
incluir_noticias
Opcional
string1Incluir notícias.
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/consulta
{
  "ambiente": 2,
  "recibo": "12345678901234",
  "incluir_pdf_guias": "S"
}

Consulta de Lote
Resultado

A resposta contém a situação do processamento e o resultado de cada guia do lote.

Parâmetro Tipo Descrição
situacao_process.codigonumberCódigo da situação do processamento — a lista completa está em Códigos de erro da GNRE.
situacao_process.descricaostringDescrição da situação.
guiasarrayLista de guias processadas — presente somente quando o lote já foi processado (situacao_process.codigo = 402). Enquanto o lote estiver em processamento (401), o campo não é retornado.
guias[].situacao_guianumberSituação da guia:
0 = Processada com sucesso
1 = Invalidada no portal
2 = Invalidada na UF
3 = Erro de comunicação
4 = Pendência
Pode vir null quando a guia ainda não tem desfecho na SEFAZ — trate como "processamento em andamento".
guias[].dadosobjectDados da guia retornados pela Fazenda (eco da emissão enviada).
guias[].linha_digitavelstringLinha digitável para pagamento.
guias[].codigo_barrasstringCódigo de barras (44 posições).
guias[].qrcode_payloadstringPayload PIX para pagamento.
guias[].motivos_rejeicaoarrayMotivos de rejeição quando aplicável.
pdf_guiasstringPDF das guias em base64 (quando incluir_pdf_guias=S).
arquivo_pagamentostringArquivo de pagamento quando disponível.
noticiasarrayNotícias retornadas pela Fazenda.

Exemplo de resposta:

{
  "situacao_process": {
    "codigo": 402,
    "descricao": "Lote processado com sucesso"
  },
  "guias": [
    {
      "situacao_guia": 0,
      "dados": {
        "uf_favorecida": "MG",
        "tipo_gnre": 0,
        "valor_gnre": "150.00",
        "contribuinte_emitente": {
          "identificacao": "00000000000000",
          "razao_social": "Empresa Exemplo LTDA"
        },
        "itens_gnre": {
          "item": [
            {
              "receita": "100102",
              "detalhamento_receita": "000001",
              "valor": "150.00"
            }
          ]
        },
        "identificador_guia": "100102000000000"
      },
      "linha_digitavel": "123456789012345678901234567890123456789012345678",
      "codigo_barras": "12345678901234567890123456789012345678901234",
      "qrcode_payload": "0002012658...",
      "motivos_rejeicao": []
    }
  ],
  "pdf_guias": "JVBERi0xLjQKJdPr6eEK...",
  "noticias": []
}

Consulta de Lote
PDF e PIX

Quando a guia for processada com sucesso, a consulta pode retornar:

  • linha_digitavel: linha digitável de 48 posições para pagamento em qualquer banco.
  • codigo_barras: código de barras de 44 posições.
  • qrcode_payload: payload do PIX (copia e cola) quando a UF/receita aceitar pagamento via PIX.
  • pdf_guias: guia em formato PDF codificado em base64 quando incluir_pdf_guias=S.
Atenção: o PDF das guias pode aumentar significativamente o tamanho da resposta. Utilize incluir_pdf_guias=S apenas quando necessário.

Serviços
Consulta de Status

Consulta o status de uma emissão GNRE pelo uuid retornado na resposta imediata da emissão. Endpoint: GET /2/gnre/status/{uuid}. Prefira a notificação por webhook — ela chega assim que o desfecho existe.

Parâmetro Obrigatório Tipo Tam. Descrição
uuid
Obrigatório
string36UUID retornado na emissão (parâmetro de rota).

A resposta base é:

{
  "status": "processando",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "provider_identifier": null
}

Os campos variam conforme o status:

Status Campos adicionais
processandoNenhum. provider_identifier passa a conter o recibo SEFAZ assim que o lote é enviado.
aprovadoresponse: payload completo do resultado da emissão (guia a guia).
rejeitadomotivos_rejeicao: lista de {codigo, mensagem}; last_error_code: código do último erro.
erro_comunicacaomessage: orientação de reconciliação manual com a SEFAZ (ver exemplo abaixo).

Além dos campos por status, a resposta inclui campos adicionais ligados à origem da emissão, quando presentes:

Campo Quando aparece Conteúdo
origemEmissões originadas por notas.periodo (seleção por período) ou chaves (seleção por chaves) — identifica o modo de emissão.
notasEmissões originadas por notas.Trilha nota a nota: uma linha por nota × receita derivada, com document_key (chave da NF-e), valor_icms_st, valor_difal, motivo_ignorado (preenchido quando a nota ficou de fora) e receita (código GNRE financiado por aquela linha).
notas_ignoradasQuando alguma nota ficou fora da emissão.Índice das linhas de notas que têm motivo_ignorado preenchido. Nada é removido de notas.
guiasLotes GNRE, quando o resultado do lote já existe — em qualquer status.Uma entrada de pagamento por guia do lote (linha digitável, código de barras e PIX de cada guia), inclusive em lotes por valor direto com múltiplas guias.
parcelas_recusadasQuando a derivação recusou parcelas ICMS-ST/FCP-ST das notas.Uma entrada por parcela recusada (document_key, receita, parcela, motivo, valor). Esses valores não são cobertos pela guia emitida.

Exemplo — status erro_comunicacao (resultado incerto; não dispara webhook):

{
  "status": "erro_comunicacao",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "provider_identifier": null,
  "message": "Status incerto. A guia pode ter sido emitida antes da falha de comunicação. Consulte a SEFAZ manualmente. Não reenvie a emissão antes dessa confirmação, para evitar um documento fiscal em duplicidade."
}
Erros: 400 (requisição inválida — tipo de guia não reconhecido), 401 (empresa não autenticada — token ausente ou inválido) e 404 quando o uuid não existe, pertence a outra empresa ou não é deste produto. O webhook continua sendo o canal principal de resultado terminal; este endpoint é o fallback e a única superfície para guias em erro_comunicacao, que não disparam webhook.

Configuração de UF

Consulta as configurações de uma UF para emissão de GNRE, incluindo receitas habilitadas, campos exigidos, tipos de guia aceitos e quantidades máximas.

Para consultar a configuração de uma UF, envie uma requisição GET para /2/gnre/config-uf/{uf}.

Importante: SP e ES não são elegíveis para consulta de configuração GNRE. São Paulo utiliza a API DARE-ICMS SP e Espírito Santo utiliza a API DUA-ES.
Parâmetro Obrigatório Tipo Tam. Descrição
uf (path)
Obrigatório
string2UF de destino (ex.: MG, RJ, BA).
ambiente (query)
Obrigatório
number1Ambiente da consulta.
1 = Produção
2 = Homologação
receita (query)
Opcional
string6Filtrar pela receita específica (código de 6 dígitos).
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
"https://api.webmania.com.br/2/gnre/config-uf/MG?ambiente=2"

Resposta:

{
  "ambiente": 2,
  "uf": "MG",
  "situacao_consulta": {
    "codigo": 450,
    "descricao": "Consulta realizada com sucesso"
  },
  "receitas": [
    {
      "codigo": "100002",
      "nome": "ICMS CONSUMIDOR FINAL NÃO CONTRIBUINTE",
      "exige_contribuinte_emitente": "S",
      "exige_detalhamento_receita": "N",
      "exige_periodo_referencia": "S",
      "valor_exigido": "P",
      "exige_documento_origem": "S",
      "tipos_documentos_origem": ["01", "02"],
      "exige_contribuinte_destinatario": "S",
      "exige_data_vencimento": "S",
      "exige_data_pagamento": "N",
      "exige_convenio": "N",
      "exige_campos_adicionais": "S",
      "aceita_pg_pix": "S",
      "tipos_gnre": [0, 1]
    }
  ],
  "qtd_maximas": {
    "guias_por_lote": 100,
    "itens_por_guia": 100,
    "itens_por_lote": 1000
  },
  "tipos_gnre_da_uf": [0, 1, 2]
}

A resposta traz a configuração completa da UF. Campos de nível superior:

Campo Tipo Descrição
ambientenumberAmbiente da consulta (eco da requisição).
1 = Produção
2 = Homologação
ufstringUF consultada (eco da requisição).
situacao_consultaobjectResultado da consulta: codigo (number) + descricao (string). 450 = consulta realizada com sucesso
451 = receita não cadastrada
452 = receita não relacionada à UF
453 = UF não cadastrada no ambiente
454 = UF não habilitada no ambiente
455 = nenhuma receita habilitada
receitasarrayConfiguração de cada receita habilitada na UF (campos na tabela abaixo).
qtd_maximasobjectTetos publicados pela SEFAZ para a UF: guias_por_lote, itens_por_guia e itens_por_lote.
tipos_gnre_da_ufarrayTipos de guia aceitos pela UF para qualquer receita (ver distinção abaixo).

Cada entrada de receitas descreve os requisitos daquela receita na UF consultada:

Campo Tipo Descrição
codigostringCódigo da receita (6 dígitos).
nomestringNome da receita na GNRE.
exige_contribuinte_emitentestringS/N — se S, a guia exige os dados do contribuinte emitente.
exige_detalhamento_receitastringS/N — se S, a guia exige detalhamento_receita; os valores aceitos vêm em detalhamentos_receita.
exige_periodo_referenciastringS/N — se S, a guia exige o período de referência.
valor_exigidostringQuais valores de imposto a receita exige (legenda abaixo).
exige_documento_origemstringS/N — se S, a guia exige o documento de origem.
tipos_documentos_origemarrayCódigos de tipo de documento de origem aceitos pela receita nesta UF.
exige_contribuinte_destinatariostringS/N — se S, a guia exige os dados do contribuinte destinatário.
exige_data_vencimentostringS/N — se S, a guia exige data_vencimento.
exige_data_pagamentostringS/N — se S, a guia exige a data de pagamento.
exige_conveniostringN/S/O — N = não exigido, S = opcional (aceito, nunca obrigatório), O = exigido: somente O torna convenio obrigatório na guia.
exige_valor_fecpstringN/S/O — N = não exigido, S = opcional (aceito, nunca obrigatório), O = exigido: somente O torna o valor do FECP obrigatório na guia.
exige_campos_adicionaisstringS/N — se S, a emissão exige campos_extras (no máximo 3 campos, codigo inteiro e valor com até 100 caracteres).
aceita_pg_pixstringS/N — se S, a guia pode ser paga via PIX.
tipos_gnrearrayTipos de guia aceitos para esta receita nesta UF (ver distinção abaixo).

Legenda dos campos de exigência: S = Sim (a receita exige ou aceita o campo), N = Não — exceto exige_convenio e exige_valor_fecp, que publicam a escala N/S/O descrita na tabela acima. Valores de valor_exigido:

  • P = Principal
  • T = Total
  • A = Ambos
  • N = Nenhum
  • PO = Principal ou Outros
  • TO = Total ou Outros
  • AO = Ambos ou Outros

tipos_gnre × tipos_gnre_da_uf: tipos_gnre (dentro de cada receita) diz quais tipos de guia aquela receita aceita; tipos_gnre_da_uf (no nível superior) é a lista de permissão da UF. Na emissão, cada guia é validada contra a união das duas listas, e o lote contra os tetos de qtd_maximas. Valores: 0 = GNRE Simples (guia com um único item)
1 = Guia Múltiplos Documentos (vários itens de origem, mesma receita)
2 = Guia Múltiplas Receitas

Dica: consulte a configuração da UF antes da emissão para saber quais campos são obrigatórios para cada receita.

Consulta de Guias

Consulta guias GNRE já emitidas por código de barras, número de controle ou documento de origem.

Para realizar a consulta, envie uma requisição POST para /2/gnre/consulta-guias.

Importante: SP e ES não emitem via GNRE. São Paulo utiliza a API DARE-ICMS SP e Espírito Santo utiliza a API DUA-ES.
Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da consulta.
1 = Produção
2 = Homologação
consultas
Obrigatório
array1-50Lista de consultas (máximo 50).
consultas[].uf
Obrigatório
string2UF da guia.
consultas[].tipo_consulta
Obrigatório
string1-2Tipo de consulta.
C = Código de barras
N = Número de controle
D = Documento de origem
CD = Código de barras + documento de origem
ND = Número de controle + documento de origem

Os tipos CR e NR do padrão GNRE (combinações com o código da receita) não são suportados por esta API: a requisição não possui um campo de código da receita, então essas consultas não podem ser expressas de ponta a ponta.
consultas[].cod_barras
Obrigatório quando tipo_consulta = C ou CD
string44/48Identificador da guia: código de barras (44 dígitos) ou linha digitável (48 dígitos) — ambos os tamanhos são aceitos.
consultas[].num_controle
Obrigatório quando tipo_consulta = N ou ND
string10-16Número de controle da guia (10 a 16 dígitos, sem remover ou completar zeros).
consultas[].doc_origem
Obrigatório quando tipo_consulta = D, CD ou ND
object-Documento de origem da guia.
consultas[].doc_origem.numero
Obrigatório quando doc_origem é enviado
string-Número do documento de origem.
consultas[].doc_origem.tipo
Obrigatório quando doc_origem é enviado
string2Tipo do documento de origem, com 2 dígitos (ex.: 01). Os códigos válidos por UF estão em tipos_documentos_origem no retorno de GET /2/gnre/config-uf/{uf}.
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/consulta-guias
{
  "ambiente": 2,
  "consultas": [
    {
      "uf": "MG",
      "tipo_consulta": "C",
      "cod_barras": "12345678901234567890123456789012345678901234"
    }
  ]
}

A resposta imediata confirma o recebimento do lote de consultas — ela ainda não contém o resultado de cada consulta:

{
  "status": "processando",
  "recibo": "12345678901234",
  "data_hora_recibo": "2026-08-24T14:32:10-03:00",
  "tempo_estimado_proc": 5
}

O resultado das consultas é obtido depois, com POST /2/gnre/consulta-guias-resultado — ver Consulta de Guias • Resultado.

Consulta de Guias
Resultado

Consulta o resultado do processamento de um lote de consulta de guias a partir do recibo devolvido no envio. Envie uma requisição POST para /2/gnre/consulta-guias-resultado.

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da consulta.
1 = Produção
2 = Homologação
recibo
Obrigatório
string10/14Recibo devolvido no envio do lote de consultas — 10 ou 14 dígitos, sem remover ou completar zeros.
curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/gnre/consulta-guias-resultado
{
  "ambiente": 2,
  "recibo": "12345678901234"
}

A resposta traz situacao_process.codigo e situacao_process.descricao e, quando o lote já foi processado, resultado.guia[] com uma entrada por consulta enviada. Cada guia carrega os campos documentados na tabela de resultado da consulta de lote — situacao_guia, dados (eco da consulta), linha_digitavel, codigo_barras, qrcode_payload e motivos_rejeicao. Enquanto situacao_process.codigo for 401 (lote em processamento), o bloco resultado não é retornado.

Infraestrutura

Os servidores da Webmania® estão localizados na Amazon AWS, líder global em cloud computing, na região us-east-1 (Leste dos EUA) com ponto de presença em sa-east-1 (São Paulo). Manter a sua estrutura perto de uma dessas duas localidades, garante um menor tempo de resposta nas requisições na API.

Utilizamos uma infraestrutura na Amazon AWS anycast de alta disponibilidade, o que significa que ao se comunicar com a API da Webmania® a requisição será redirecionada para o servidor mais próximo da sua localidade. As requisições dos endpoints são gerenciadas através de IPs estáticos, caso necessite autorize no firewall a comunicação com os IPs abaixo.

IPs estáticos de entrada:
  • 13.248.145.90
  • 76.223.17.240
IPs estáticos de saída (notificações):
  • 34.196.69.38
  • 44.219.142.86

Limite de requisições

A API da Webmania® aplica limites de solicitação por método HTTP para evitar o mal uso da API e a sobrecarga dos servidores. Quando o limite é excedido, a requisição retorna erro 429 (Too Many Requests). Segue abaixo as especificações para uma correta integração:

  • Taxas por requisição:
    - GET: 15 requisições por segundo.
    - POST: sem limite de requisições.
    - PUT/DELETE: 5 requisições por segundo.
    - Homologação: requisições de emissão em ambiente de homologação são limitadas a 1 requisição por segundo.
    Precisa de um volume maior de requisições? Por favor, entre em contato para liberação.
  • Localização do servidor: O firewall bloqueia por padrão o IP de servidores em regiões com alto índice de ataques ou de baixa reputação. Caso a sua comunicação via GET no endpoint https://webmania.com.br/api/ ou https://api.webmania.com.br retorne 403 Erro Forbidden por engano, por favor, entre em contato para liberarmos o IP do seu servidor.
  • Credenciais de acesso: Os endpoints exigem as credenciais de acesso válida e correta na HEADER da requisição, o envio incorreto é atribuído como uso indevido da API.
  • URL de notificação: Realize a integração para obter todos os retornos da API via URL de notificação, dessa forma todos os processos podem ser realizados ao receber o retorno, como atualizar o banco de dados e o download do PDF da guia.

Soluções

Emissor de Nota Fiscal Monitor Fiscal

Documentação

API Nota Fiscal de Produto (NF-e) API Nota Fiscal de Serviço (NFS-e) API Conhecimento de Transporte (CT-e) API Manifesto Eletrônico (MDF-e) API Nota Fiscal de Comunicação (NFCom) API Declaração de Conteúdo (DC-e) API CIOT / PEF (ANTT) API Monitor Fiscal API Gerencial B2B

Webmania

Clientes Sobre nós Blog Políticas

Reforma Tributária

Reforma Tributária na Webmania® Classificações Tributárias Códigos de Serviço Nacional

Escritórios

Paraná

Matriz
Av. Água Verde, 1413 - 5º andar, Água Verde, Curitiba - PR

Ecossistema de Inovação HOTMILK
R. Imac. Conceição, 1430, Prado Velho, Curitiba - PR

São Paulo

Ecossistema de Inovação Cubo Itaú
Alameda Vicente Pinzon, 54 - 10º andar, Vila Olímpia, São Paulo - SP (Cubo Itaú)

Estados Unidos

Webmania Inc
8 The Green, STE R, Dover, DE 19901

Ícone do WhatsApp Fale conosco

Acesso rápido

Painel do Cliente Central de Ajuda 2ª via de Boleto Fale conosco Status Webmania® Monitor Sefaz Monitor Prefeituras
Instagram Webmania GitHub Webmania
Linkedin Webmania Youtube Webmania
Cubo Itaú
Webmania

Copyright © 2009-2026 Webmania®.
Webmania® é uma marca registrada e de uso exclusivo da WMBR SERVICOS EMPRESARIAIS LTDA
CNPJ: 11.290.027/0001-82 sediada na Av. Água Verde, 1413, 5º andar - Curitiba, PR - CEP 80620-200

Voltar para o topo
Usamos cookies para melhorar sua experiência na Webmania®. Consulte mais informações na nossa Política de Privacidade e Política de Cookies .
Entendi e aceito