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 DARE-ICMS SP
  • Guia Rápido
  • Notificações
  • Dois modos de emissão
  • Módulos & Exemplos
  • Autenticação
  • Formato de resposta
    • Informação de Erro
  • Receitas
    • Campos da receita
    • Serviços e Regras de linha06 / linha08
  • Emissão Unitária
    • Parâmetros da requisição
    • linha06 e linha08
    • Exemplo de Requisição
  • Emissão por Notas (período ou chaves)
  • Prévia de Seleção por Notas
  • Emissão em Lote
  • Consulta de Status
  • Infraestrutura
  • Limite de requisições
  • Changelog
⚡ Acompanhe em tempo real: Status | Monitor Sefaz | Monitor Prefeituras
Versão: 1.0

REST API DARE-ICMS SP

Documentação para emissão de Documento de Arrecadação de Receitas Estaduais (DARE-ICMS) de São Paulo.

Guias DARE-ICMS SP via API Guias DARE-ICMS SP via API

Utilize a REST API da Webmania® para emitir guias DARE de recolhimento de tributos estaduais de São Paulo (DARE-ICMS SP) junto à Secretaria da Fazenda do Estado de São Paulo (SEFAZ-SP) de forma automatizada, com emissão unitária ou em lote, por valor direto ou a partir de notas fiscais, e pagamento via PIX. Deseja emitir outros modelos? Ver documentação

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.
PDF e Código de Barras
A API retorna o código de barras para pagamento; o PDF da guia fica disponível no Painel Webmania® após a aprovação.
Exclusivo SP
Emissão exclusiva para a Secretaria da Fazenda de São Paulo.
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/dare deve ser adicionado na URL em todas as requisições.

Importante: DARE-ICMS é exclusiva para São Paulo. Para outros estados, utilize a API GNRE.

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

  1. Obtenha seu Access Token no painel da Webmania®.
  2. Consulte as receitas disponíveis em GET /2/dare/receitas e copie o par codigo + codigo_servico_dare.
  3. Confira a seleção em POST /2/dare/notas/preview — quando emitir a partir de notas fiscais. A prévia não emite nada e não consome cota do plano.
  4. Emita com POST /2/dare/emissao informando url_notificacao, e receba o resultado no seu webhook.

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
  • Cálculo automático do valor a partir do ICMS-ST e do DIFAL declarados nas notas
  • Prévia da seleção sem emitir e sem consumir cota do plano
  • Emissão em lote de até 50 DAREs por requisição — limite oficial da SEFAZ-SP
  • Consulta de receitas habilitadas, com cache de 1 hora
  • Notificação por webhook no desfecho de cada DARE
  • Código de barras de 44 e 48 posições em todas as guias aprovadas

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

URL HTTP Verb Função
/2/dare/emissao POST Emitir DARE — por valor direto, por período de notas ou por chaves/UUIDs
/2/dare/emissao/lote POST Emitir até 50 DAREs em uma única requisição
/2/dare/notas/preview POST Prever a seleção de notas e o valor apurado, sem emitir
/2/dare/receitas GET Listar receitas disponíveis para emissão
/2/dare/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.

O DARE-ICMS SP é um serviço assíncrono: a emissão retorna imediatamente, o processamento é feito em background e o resultado final é notificado pelo webhook informado em url_notificacao.

Notificações

O webhook é o canal principal de notificação de resultado da API DARE-ICMS SP. Toda emissão (unitária ou em lote) deve informar a URL de callback no parâmetro url_notificacao.

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

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 DARE. Ele é gerado assim que a requisição é aceita pela API — antes de qualquer transmissão à SEFAZ-SP.

Uma vez gerado, o UUID é definitivo: não muda em retentativas nem em reenvio. O numero_controle_dare_principal, o numero_guia e o código de barras são campos diferentes, só existem após a aprovação e podem mudar — por isso o UUID, e não eles, deve ser a sua referência no banco de dados.

A emissão é assíncrona: POST /2/dare/emissao e POST /2/dare/emissao/lote respondem imediatamente com status: "processando" e o uuid, e o resultado final é enviado para a url_notificacao. Cada DARE — inclusive cada item de um lote — é notificado individualmente: quando um DARE atinge status terminal (aprovado ou rejeitado), a Webmania® envia uma requisição POST para a url_notificacao com o resultado daquele item. Um lote de 50 itens gera até 50 webhooks, cada um com o uuid do próprio item — as notificações se correlacionam à emissão original pelo uuid retornado na resposta síncrona de cada item.

A notificação é enviada no método POST, com o cabeçalho Content-Type: application/json:

Parâmetro Tipo Descrição
uuidstringIdentificador da emissão — o mesmo devolvido na resposta síncrona. É a chave de correlação da notificação.
modelostringTipo da guia: dare.
statusstringaprovado ou rejeitado (o webhook dispara apenas para status terminais).
ambientenumber1 = Produção, 2 = Homologação.
identificadorstringnumero_controle_dare_principal atribuído pela SEFAZ-SP — o mesmo valor exposto em provider_identifier no endpoint de status. Presente quando o identificador já existe.
motivos_rejeicaoarrayLista de {codigo, mensagem} com o motivo. Presente quando status é rejeitado.

Em emissões por notas, o payload inclui ainda origem (periodo ou chaves), o detalhe notas e o índice notas_ignoradas das notas não liquidadas — veja Emissão por Notas.

Exemplo de notificação — DARE aprovado:

{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modelo": "dare",
  "status": "aprovado",
  "ambiente": 1,
  "identificador": "123456789"
}

Exemplo de notificação — DARE rejeitado:

{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modelo": "dare",
  "status": "rejeitado",
  "ambiente": 1,
  "motivos_rejeicao": [
    { "codigo": "00000000", "mensagem": "Mensagem de rejeição retornada pela SEFAZ-SP." }
  ]
}

Se a comunicação com a SEFAZ-SP falhar e a API esgotar as tentativas sem obter um identificador, o DARE é marcado como rejeitado e o webhook é chamado com motivos_rejeicao contendo o código SEFAZ_UNSTABLE_TIMEOUT e a mensagem "Falha ao processar guia devido a instabilidade nos servidores da SEFAZ. Tente emitir novamente." Nessa situação, o integrador pode tentar emitir novamente.

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

Atenção: a própria SEFAZ-SP não disponibiliza endpoint público de consulta de status por número de controle. A consulta de fallback deve ser feita pela API da Webmania® (GET /2/dare/status/{uuid}), que mantém o status internamente.

Resumo dos status possíveis:

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.
rejeitadoSimSimA SEFAZ-SP recusou. Consulte motivos_rejeicao no payload e corrija antes de reemitir.
erro_comunicacaoSimNãoFalha de comunicação com a SEFAZ-SP. Confirme via GET /2/dare/status/{uuid} que o DARE não foi gerado antes de reemitir, para evitar documento fiscal em duplicidade.

Dois modos de emissão

O endpoint POST /2/dare/emissao — e também POST /2/dare/emissao/lote — aceita dois modos de origem, mutuamente exclusivos:

Valor direto A partir de notas fiscais
Quando usar Você já sabe o valor do DARE Você emite NF-e pela Webmania® e quer o DARE das operações do período
Campo de origem valor periodo ou documentos[]
Quem calcula o valor Você A API, somando o ICMS-ST e o DIFAL das notas selecionadas
receita.codigo e receita.codigo_servico_dare Obrigatórios Obrigatório nos dois modos — a API não deriva a receita
Dados do emitente Obrigatórios Unitária: obrigatórios no payload — a API não os preenche; só uf é definido pela API (sempre SP). Lote: obrigatórios na raiz, não preenchidos pela API
Limite 50 itens por lote 100 notas por requisição
Confere antes de emitir — POST /2/dare/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 do DARE Sei quais notas compõem o DARE? 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/dare/notas/preview confere a seleção sem emitir e sem consumir cota A seleção está correta? Ajuste a janela ou as chaves POST /2/dare/emissao mesmo payload + url_notificacao + data_vencimento Resposta imediata: status=processando + uuid Webhook em url_notificacao aprovado ou rejeitado GET /2/dare/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 e apura o valor do DARE a partir do ICMS-ST e do DIFAL declarados. Neste modo, a API define sempre valor (a soma do ICMS-ST e do DIFAL das notas selecionadas). Na emissão unitária por notas, a API também define uf (sempre SP). Os demais dados do emitente — inscricao_estadual, cnpj, razao_social, endereco e cidade — não são preenchidos pela API e devem ser informados no corpo da requisição em todos os modos. No lote por notas, esses campos — inclusive uf, restrito a SP — são exigidos no corpo da requisição, na raiz.

Dados do emitente na emissão por notas. Os campos de perfil do emitente — inscricao_estadual, cnpj, razao_social, endereco e cidade — não são preenchidos pela API e devem ser informados no corpo da requisição em todos os modos. Na emissão unitária por notas, apenas uf é definido pela API (sempre SP). No lote por notas, todos esses campos — inclusive uf — são obrigatórios na raiz e propagados a cada item composto. Já o objeto receita permanece obrigatório em todos os modos, inclusive por notas: o código da receita é sempre informado pelo integrador.
📌 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"
]

No lote, os campos comuns vão na raiz. Na emissão em lote a partir de notas, os campos que não participam da origem por notas — receita e data_vencimento — são informados na raiz da requisição, não em cada item de itens_para_geracao. Os dados do emitente — inscricao_estadual, cnpj, razao_social, endereco, cidade e uf — também vão na raiz da requisição e são propagados a cada item composto. Nenhum modo preenche esses campos pelo perfil da empresa: na emissão unitária, apenas uf é definido pela API (sempre SP).

💡 A prévia é gratuita. POST /2/dare/notas/preview executa exatamente a mesma seleção e as mesmas validações da emissão — inclusive a exigência do objeto receita — e devolve o valor que seria apurado, 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 DARE-ICMS SP 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.

API Key da SEFAZ-SP. A API DARE utiliza a API Key da SEFAZ-SP internamente para comunicação com o serviço DARE-ICMS. O integrador NÃO precisa enviar a API Key em sua requisição.

Mantenha suas credenciais em segurança. Nunca publique o Access Token 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|POST).
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/dare/status/{uuid}.
422 Unprocessable Entity ❌ Validação dos dados de entrada falhou (ex.: campo obrigatório, formato inválido).
502 Bad Gateway ❌ Erro de comunicação com a SEFAZ-SP.
503 Service Unavailable ❌ API Key da SEFAZ-SP indisponível.

Legenda: ✅ a operação foi concluída · ❌ a operação não foi concluída: nos erros de validação ou de negócio (400, 401, 403, 404, 422), nada foi criado; já em falhas de comunicação ou indisponibilidade da SEFAZ-SP (502, 503) — ou quando o status da guia for erro_comunicacao — a resposta não confirma o resultado, e uma guia pode ter sido gerada antes da falha. Nesses casos, se a resposta da emissão conteve o uuid (requisição aceita), consulte GET /2/dare/status/{uuid} com esse uuid antes de reenviar, para evitar um DARE em duplicidade. Se a falha retornou apenas {"error": "..."}, nenhum uuid veio nessa resposta: quando a própria mensagem informar que o callback será notificado, aguarde a notificação — ela chega com o uuid e o motivo da rejeição; caso contrário, não há o que consultar e o reenvio é a única via — como a API não expõe chave de idempotência, o reenvio pode gerar um DARE em duplicidade.

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 DARE-ICMS SP 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.

Informação de Erro

A resposta de erro de um endpoint do DARE segue um destes formatos, conforme a etapa em que a falha ocorre:

  • Erro de validação (422) — a resposta traz "error": "validation_failed" acompanhado do objeto errors com cada campo recusado e a respectiva mensagem, por exemplo {"error": "validation_failed", "errors": {"receita": ["campo receita obrigatório para DARE"]}}.
  • Erro de requisição, de negócio ou de infraestrutura (400, 401, 404, 429, 502, 503) — a resposta traz uma única mensagem legível no formato {"error": "..."}, como na resposta do limite diário por notas.
  • Erro de acesso ou de assinatura (403) — a resposta traz a mensagem legível no campo error (o mesmo formato {"error": "..."}); quando a causa é o estado da assinatura, acrescenta error_code com o identificador programático do motivo e action_url com o link para regularização, por exemplo {"error": "Pagamento em atraso. Regularize sua assinatura para liberar o acesso.", "error_code": "payment_overdue", "action_url": "https://financeiro.webmaniabr.com/minha-conta/assinatura"}.
  • Informação de erro devolvida pela SEFAZ-SP — nos dados de resultado de uma guia já processada, o bloco erro com a estrutura da tabela abaixo, presente quando a SEFAZ-SP registra um erro no processamento. Esses dados são devolvidos apenas pela consulta de status: quando a guia é rejeitada, os motivos aparecem em motivos_rejeicao e last_error_code; quando é aprovada, o resultado completo vem no bloco response — veja Consulta de Status. O webhook não carrega o bloco erro nem o bloco response: nas rejeições, a notificação traz somente motivos_rejeicao — veja Notificações.

As respostas de sucesso das emissões não carregam campo de erro: seguem o formato descrito na seção de emissão, com o uuid de acompanhamento.

Parâmetro Tipo Descrição
erro.esta_okbooleantrue quando a operação foi bem-sucedida.
erro.mensagensarrayLista de mensagens de erro quando esta_ok=false.

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

{
  "error": "validation_failed",
  "errors": {
    "receita": ["campo receita obrigatório para DARE"]
  }
}

Receitas

Lista as receitas disponíveis para emissão de DARE-ICMS SP. A lista é cacheada por 1 hora e pode variar conforme a habilitação administrativa.

codigo e codigo_servico_dare formam um par. Copie os dois valores da mesma entrada retornada por GET /2/dare/receitas: eles nem sempre coincidem. A receita 247, por exemplo, corresponde ao serviço 24701; em outros casos os códigos são iguais, como na receita 4603, cujo serviço também é 4603. Informar um par inconsistente é aceito pela API — e um par bem-formado, porém errado, gera um DARE real e pagável que quita a receita errada.

Como conferir. A lista autoritativa de receitas do DARE-ICMS é publicada pela SEFAZ-SP no portal DARE-ICMS. Antes de emitir em produção, compare o nome e os códigos da entrada retornada por GET /2/dare/receitas com a obrigação que você pretende quitar — essa é a única verificação que a API não faz por você. Sobre o que a API valida, veja o alerta de Validação da receita na seção Emissão Unitária.

Para listar as receitas, envie uma requisição GET para /2/dare/receitas.

Parâmetro Obrigatório Tipo Descrição
ambiente (query)
Obrigatório
numberAmbiente da consulta.
1 = Produção
2 = Homologação
curl -X GET \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
"https://api.webmania.com.br/2/dare/receitas?ambiente=2"

Resposta:

[
  {
    "codigo": "247",
    "codigo_servico_dare": 24701,
    "escopo_uso": 0,
    "habilitado_administrativo": true,
    "nome": "ICMS - TRANSPORTE AÉREO, NAVEGAÇÃO OBRIGAÇÕES DA AT",
    "observacao_dare_avulso": "",
    "possui_linha06_dare": true,
    "suprimir_referencia": false,
    "telefone_obrigatorio": false
  }
]

Campos da receita

Parâmetro Tipo Descrição
codigostringCódigo da receita.
codigo_servico_darenumberCódigo do serviço DARE vinculado.
escopo_usonumberEscopo de uso:
0 = CNPJ
1 = CPF
2 = Ambos
habilitado_administrativobooleanIndica se a receita está habilitada.
nomestringNome da receita.
observacao_dare_avulsostringObservação para DARE avulso.
possui_linha06_darebooleanIndica se a receita exige linha06.
suprimir_referenciabooleanIndica se a referência deve ser suprimida.
telefone_obrigatoriobooleanIndica se o telefone é obrigatório.

Serviços e Regras de linha06 / linha08

A tabela abaixo relaciona os principais códigos de serviço DARE e as regras de preenchimento dos campos linha06 e linha08:

codigo_servico_dare linha06 linha08 Descrição
8101-[0-9]{9}ICMS - CONTRIBUINTE NÃO ESTABELECIDO
1044-[0-9]{9}ICMS - SUBSTITUIÇÃO TRIBUTÁRIA
6305.{1,10}.{1,35}ICMS - CONSUMIDOR FINAL NÃO CONTRIBUINTE
89202[0-9]{2,10}-ICMS - TRANSFERÊNCIA DE CRÉDITO
24701[0-9]{1,35}-ICMS - TRANSPORTE AÉREO
4603[0-9]{1,35}-ICMS - COMUNICAÇÃO
14604[0-9]{1,35}-ICMS - ENERGIA ELÉTRICA
6307[0-9]{1,35}-ICMS - COMBUSTÍVEL
6308[0-9]{1,35}-ICMS - LUBRIFICANTE
Atenção: quando possui_linha06_dare=true, o campo linha06 é obrigatório e deve respeitar o formato do codigo_servico_dare.

Serviços
Emissão Unitária

Emite um DARE-ICMS SP de forma assíncrona. A API retorna imediatamente e processa o DARE em background. O resultado final é notificado pelo webhook informado em url_notificacao, com acompanhamento por GET /2/dare/status/{uuid} — Saiba mais.

Emissão Unitária
Parâmetros da requisição

Campos enviados no corpo da requisição de emissão:

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da emissão.
1 = Produção
2 = Homologação

Em homologação (ambiente: 2) as emissões são limitadas a 1 requisição por segundo por empresa — acima disso a API responde HTTP 429 com Retry-After: 1.
url_notificacao
Obrigatório
URL500URL do webhook que receberá a notificação quando o DARE atingir status terminal (aprovado ou rejeitado).
receita.codigo
Obrigatório
string-Código da receita. Obrigatório em todos os modos de emissão (valor direto, período e chaves).
receita.codigo_servico_dare
Obrigatório
number-Código do serviço DARE. Obrigatório em todos os modos de emissão.
referencia
Opcional
string7Referência do fato gerador no formato mm/aaaa (ex.: 07/2026). Para serviços cujo catálogo (GET /2/dare/receitas) marca suprimir_referencia: true, a referência não é usada no formulário do DARE — dispense o campo nesses casos.
receita.suprimir_referencia
Opcional
boolean-Flag de cada entrada do catálogo de receitas (GET /2/dare/receitas): quando true, o serviço suprime a referência no formulário do DARE. A API aceita o campo no objeto receita, mas não valida a consistência com referencia.
data_vencimento
Obrigatório
date10Data de vencimento no formato yyyy-MM-dd. Obrigatória em todos os modos de emissão.
valor
Obrigatório
number12,2Valor do DARE, entre 0,01 e 9.999.999.999,99.
inscricao_estadual
Obrigatório
string12Inscrição estadual (12 dígitos).
cnpj
Obrigatório
string14CNPJ do contribuinte (14 dígitos, validado).
cpf
Opcional
string-CPF do contribuinte, para receitas com escopo_uso 1 (CPF). Aceito sem validação de formato — diferente de cnpj, que é validado (CNPJ válido, 14 dígitos).
razao_social
Obrigatório
string60Razão social.
endereco
Obrigatório
string60Endereço.
cidade
Obrigatório
string-Cidade.
uf
Obrigatório
string2UF. Sempre SP.
telefone
Obrigatório quando receita.telefone_obrigatorio=true
string-Telefone.
gerar_pdf
Opcional
boolean-Indica se deve gerar o PDF do DARE. Padrão false.
linha06
Obrigatório quando receita.possui_linha06_dare=true
string1-35Informações adicionais conforme serviço.
linha08
Obrigatório conforme a receita selecionada
string1-35Informações adicionais conforme serviço.
numero_guia
Opcional
string-Entrada (opcional): identificador interno do integrador, para controle próprio. Saída (na aprovação): a resposta devolvida pela SEFAZ-SP também traz numero_guia — o número oficial da guia emitida — dentro do objeto response da Consulta de Status (veja a tabela de resposta adiante).
Receitas exclusivas de CPF (escopo_uso: 1). O catálogo de Receitas classifica cada serviço por escopo_uso (0 = CNPJ, 1 = CPF, 2 = ambos). Para esses serviços a requisição aceita o campo cpf — que não recebe validação de formato, ao contrário de cnpj. A API não confere o documento contra o escopo_uso da receita: informar o contribuinte correto é responsabilidade do integrador, como na validação da receita abaixo.
Validação da receita: a API valida apenas a presença e o formato do código da receita — nunca se o código informado corresponde à receita desejada. Um código bem-formado, porém errado, gera um DARE real e pagável que quita a receita errada; a correção do código é responsabilidade do integrador.

Emissão Unitária
linha06 e linha08

De onde vêm esses nomes. linha06 e linha08 correspondem às linhas 6 e 8 do formulário oficial do DARE-ICMS da SEFAZ-SP. A SEFAZ não atribui um significado único a elas: o que deve ser informado muda conforme o codigo_servico_dare selecionado. A tabela abaixo publica o formato que a API aceita em cada caso; o conteúdo esperado depende da receita e deve ser confirmado no portal DARE-ICMS da SEFAZ-SP.

codigo_servico_dare linha06 linha08
8101Não exigida — formato livreObrigatória — 9 dígitos (^[0-9]{9}$)
1044Não exigida — formato livreObrigatória — 9 dígitos (^[0-9]{9}$)
6305Obrigatória — 1 a 10 caracteres (^.{1,10}$)Obrigatória — 1 a 35 caracteres (^.{1,35}$)
89202Obrigatória — 2 a 10 dígitos (^[0-9]{2,10}$)Não exigida — formato livre
24701Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$)Não exigida — formato livre
4603Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$)Não exigida — formato livre
14604Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$)Não exigida — formato livre
6307Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$)Não exigida — formato livre
6308Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$)Não exigida — formato livre
codigo_servico_dare linha06 linha08
8101, 1044OpcionalObrigatória (9 dígitos)
6305Obrigatória (1-10)Obrigatória (até 35)
89202Obrigatória (2-10 dígitos)Opcional
24701, 4603, 14604, 6307, 6308Obrigatória (1-35 dígitos)Opcional

linha06/linha08 são as linhas 6 e 8 do formulário DARE-ICMS da SEFAZ-SP; o significado do conteúdo é definido pela SEFAZ para cada codigo_servico_dare. A API valida apenas presença e formato (descritos na tabela) — nunca o significado: informe o conteúdo conforme a receita. A obrigatoriedade por receita também aparece em GET /2/dare/receitas (campo possui_linha06_dare).

Para serviços fora desta lista, linha06 e linha08 são aceitos sem validação de formato. O catálogo de Receitas informa possui_linha06_dare em cada entrada, para você saber antecipadamente quando a linha é exigida.

Dica: consulte GET /2/dare/receitas para verificar o campo possui_linha06_dare antes de emitir.
Atenção: a API valida apenas o formato desses campos. Um valor bem-formado, porém incorreto, gera um DARE real e pagável com a informação errada. Confirme o conteúdo esperado no portal DARE-ICMS da SEFAZ-SP antes de emitir em produção.

Emissão Unitária
Exemplo de Requisição

Exemplo de requisição — valor direto:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/dare/emissao
{
  "ambiente": 2,
  "url_notificacao": "https://seudominio.com.br/webhook/dare",
  "receita": {
    "codigo": "247",
    "codigo_servico_dare": 24701
  },
  "referencia": "07/2026",
  "data_vencimento": "2026-07-20",
  "valor": 100.00,
  "inscricao_estadual": "123456789012",
  "cnpj": "12345678000195",
  "razao_social": "EMPRESA EXEMPLO LTDA",
  "endereco": "RUA EXEMPLO 100",
  "cidade": "SÃO PAULO",
  "uf": "SP",
  "telefone": "11999999999",
  "gerar_pdf": false,
  "linha06": "12345678901234567890123456789012345"
}

Resposta:

{
  "status": "processando",
  "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

A resposta imediata acima não contém os dados da guia emitida. Quando a guia é aprovada, GET /2/dare/status/{uuid} devolve os campos devolvidos pela SEFAZ-SP no objeto response:

Parâmetro Tipo Tam. Descrição
codigo_barra_44string44Código de barras da guia no padrão de 44 posições.
codigo_barra_48string48Código de barras da guia no padrão de 48 posições.
numero_guiastring-Número oficial da guia atribuído pela SEFAZ-SP.

Exemplo de desfecho quando a SEFAZ-SP rejeita a guia — este é o formato da resposta de GET /2/dare/status/{uuid}. O webhook informado em url_notificacao envia um payload próprio, documentado na seção Notificações:

{
  "status": "rejeitado",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "provider_identifier": null,
  "motivos_rejeicao": [
    { "codigo": "9999", "mensagem": "Dados do contribuinte não conferem com o cadastro da SEFAZ-SP." }
  ],
  "last_error_code": "9999"
}

Os códigos em motivos_rejeicao e last_error_code são devolvidos pela SEFAZ-SP (o exemplo acima é ilustrativo). Nada foi emitido: corrija a causa apontada e envie uma nova requisição.

Importante: para gerar o PDF, envie gerar_pdf=true. O webhook não envia arquivos: o PDF fica disponível no Painel Webmania® (opção Visualizar PDF na listagem de guias) após a aprovação.

Serviços
Emissão por Notas (período ou chaves)

Além do valor direto, o DARE-ICMS SP pode ser emitido a partir de notas fiscais já emitidas, informando uma janela de emissão (periodo) ou uma lista de identificadores (documentos). O endpoint é o mesmo da emissão por valor direto: POST /2/dare/emissao — e o modo por notas também vale para a emissão em lote (POST /2/dare/emissao/lote), que aceita a mesma origem. Os dois modos de origem são mutuamente exclusivos entre si e não podem ser combinados com valor. O valor do DARE é calculado pela API a partir das notas selecionadas (ICMS-ST e/ou DIFAL). Neste modo a API define valor (a soma do ICMS-ST e do DIFAL das notas selecionadas) e uf (sempre SP). Os dados de perfil do emitente — inscricao_estadual, cnpj, razao_social, endereco e cidade — não são preenchidos pela API e devem ser informados no corpo da requisição em todos os modos. O objeto receita permanece obrigatório em todos os modos, inclusive por notas: o código da receita é sempre informado pelo integrador.

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente da emissão.
1 = Produção
2 = Homologação

Em homologação (ambiente: 2) as emissões são limitadas a 1 requisição por segundo por empresa — acima disso a API responde HTTP 429 com Retry-After: 1.
url_notificacao
Obrigatório
URL500URL do webhook que receberá a notificação quando o DARE atingir status terminal (aprovado ou rejeitado).
receita
Obrigatório
object-Objeto da receita. receita.codigo (string) e receita.codigo_servico_dare (number) são obrigatórios em todos os modos de emissão; os demais campos do objeto são opcionais.
data_vencimento
Obrigatório
date10Data de vencimento no formato yyyy-MM-dd. Obrigatória em todos os modos de emissão.
inscricao_estadual
Obrigatório
string12Inscrição estadual do emitente (12 dígitos). Obrigatório em todos os modos — a API não o preenche na origem por notas.
cnpj
Obrigatório
string14CNPJ do contribuinte (14 dígitos). Obrigatório em todos os modos — a API não o preenche na origem por notas.
razao_social
Obrigatório
string60Razão social do emitente. Obrigatório em todos os modos — a API não a preenche na origem por notas.
endereco
Obrigatório
string60Endereço do emitente. Obrigatório em todos os modos — a API não o preenche na origem por notas.
cidade
Obrigatório
string-Cidade do emitente. Obrigatório em todos os modos — a API não a preenche na origem por notas.
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 valor.
documentos
Obrigatório quando a origem for por chaves
array100Chaves de acesso (44 dígitos) ou UUIDs das notas, sem duplicatas. Máximo de 100 documentos. Mutuamente exclusivo com periodo e com valor.
linha06 / linha08
Obrigatórias conforme a receita selecionada
string1-35Informações adicionais exigidas por determinados serviços, conforme o codigo_servico_dare — veja linha06 e linha08.

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/dare/emissao
{
  "ambiente": 1,
  "url_notificacao": "https://seudominio.com.br/webhook/dare",
  "receita": {
    "codigo": "247",
    "codigo_servico_dare": 24701
  },
  "data_vencimento": "2026-08-31",
  "inscricao_estadual": "123456789012",
  "cnpj": "12345678000195",
  "razao_social": "EMPRESA EXEMPLO LTDA",
  "endereco": "RUA EXEMPLO 100",
  "cidade": "SÃO PAULO",
  "periodo": {
    "data_inicio": "2026-07-01",
    "data_fim": "2026-07-31"
  },
  "linha06": "12345678901234567890123456789012345"
}

Exemplo — chaves de acesso / UUIDs:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/dare/emissao
{
  "ambiente": 1,
  "url_notificacao": "https://seudominio.com.br/webhook/dare",
  "receita": {
    "codigo": "4603",
    "codigo_servico_dare": 4603
  },
  "data_vencimento": "2026-08-31",
  "inscricao_estadual": "123456789012",
  "cnpj": "12345678000195",
  "razao_social": "EMPRESA EXEMPLO LTDA",
  "endereco": "RUA EXEMPLO 100",
  "cidade": "SÃO PAULO",
  "linha06": "12345678901234567890123456789012345",
  "documentos": [
    "35260800000000000000550010000012341123456789",
    "8f14e45f-ceea-4d3e-a2e0-123456789012"
  ]
}

A resposta é a mesma da emissão por valor direto, com o resultado final notificado pelo webhook informado em url_notificacao.

Serviços
Prévia de Seleção por Notas

POST /2/dare/notas/preview antecipa, sem emitir nada, a seleção de notas que POST /2/dare/emissao faria para a mesma origem (periodo ou documentos). A prévia não é mais permissiva que a emissão: o objeto receita é obrigatório aqui exatamente como na emissão — uma prévia que passasse onde a emissão responderia 422 seria pior que nenhuma prévia.

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. 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.

Parâmetros da requisição:

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number1Ambiente das notas.
1 = Produção
2 = Homologação
receita
Obrigatório
object-Objeto da receita, com a mesma regra da emissão: receita.codigo (string) e receita.codigo_servico_dare (number) obrigatórios. Emitir a prévia sem receita responde 422 com a mesma mensagem da emissão (campo receita obrigatório para DARE).
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.
documentos
Obrigatório quando a origem for por chaves
array100Chaves de acesso (44 dígitos) ou UUIDs das notas, sem duplicatas. Máximo de 100 documentos. Mutuamente exclusivo com periodo.

Campos da resposta:

Parâmetro Tipo Descrição
tipostringSempre dare neste endpoint.
selecionadas[]arrayNotas elegíveis: fiscal_document_uuid, document_key, valor_icms_st, valor_difal, uf_destino e guia_indicado.
ignoradas[]arrayNotas recusadas, com motivo_ignorado e mensagem quando aplicável.
totaisobjectSomas em texto decimal: icms_st, difal e total — o valor que a emissão usaria com a receita informada.
total_encontradas
total_omitidas
limite_por_requisicao
integerSomente na origem por periodo. O valor de limite_por_requisicao é sempre 100 notas. Um período acima desse limite responde 422 com a mesma contabilização da emissão, sem emitir nada.

Exemplo de requisição:

curl -X POST \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://api.webmania.com.br/2/dare/notas/preview
{
  "ambiente": 1,
  "receita": {
    "codigo": "247",
    "codigo_servico_dare": 24701
  },
  "documentos": [
    "35260800000000000000550010000012341123456789",
    "8f14e45f-ceea-4d3e-a2e0-123456789012"
  ]
}

Exemplo de resposta:

{
  "tipo": "dare",
  "selecionadas": [
    {
      "fiscal_document_uuid": "8f14e45f-ceea-4d3e-a2e0-123456789012",
      "document_key": "35260800000000000000550010000012341123456789",
      "valor_icms_st": "412.15",
      "valor_difal": "0.00",
      "uf_destino": "SP",
      "guia_indicado": "dare"
    }
  ],
  "ignoradas": [],
  "totais": { "icms_st": "412.15", "difal": "0.00", "total": "412.15" }
}

Emissão em Lote

Emite múltiplos DARE-ICMS SP em uma única requisição. A API retorna imediatamente e processa cada DARE em background. Cada item é notificado individualmente pelo webhook informado em url_notificacao, com acompanhamento por GET /2/dare/status/{uuid} — Saiba mais.

Para emitir em lote, envie uma requisição POST para /2/dare/emissao/lote.

Exemplo de requisição:

{
  "ambiente": 2,
  "url_notificacao": "https://seudominio.com.br/webhook/dare",
  "tipo_agrupamento_filhotes": 3,
  "itens_para_geracao": [
    {
      "ambiente": 2,
      "receita": {
        "codigo": "247",
        "codigo_servico_dare": 24701
      },
      "referencia": "07/2026",
      "data_vencimento": "2026-07-20",
      "valor": 100.00,
      "inscricao_estadual": "123456789012",
      "cnpj": "12345678000195",
      "razao_social": "EMPRESA EXEMPLO LTDA",
      "endereco": "RUA EXEMPLO 100",
      "cidade": "SÃO PAULO",
      "uf": "SP",
      "gerar_pdf": false,
      "linha06": "12345678901234567890123456789012345"
    },
    {
      "ambiente": 2,
      "receita": {
        "codigo": "4603",
        "codigo_servico_dare": 4603
      },
      "referencia": "07/2026",
      "data_vencimento": "2026-07-20",
      "valor": 50.00,
      "inscricao_estadual": "123456789012",
      "cnpj": "12345678000195",
      "razao_social": "EMPRESA EXEMPLO LTDA",
      "endereco": "RUA EXEMPLO 100",
      "cidade": "SÃO PAULO",
      "uf": "SP",
      "gerar_pdf": false,
      "linha06": "12345678901234567890123456789012345"
    }
  ]
}

Resposta:

{
  "status": "processando",
  "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
  "lote_uuid": "9f8e7d6c-5b4a-3210-abcd-ef1234567890",
  "itens_para_geracao": [
    {
      "status": "processando",
      "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
      "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    },
    {
      "status": "processando",
      "message": "Emissão em processamento. Consulte novamente em alguns instantes.",
      "uuid": "b2c3d4e5-f6a7-8901-abcd-ef1234567891"
    }
  ]
}

Parâmetros do lote (raiz da requisição). A coluna Tam. indica o tamanho: 12 = exatamente 12 caracteres; 1-35 = entre 1 e 35 caracteres; 1-50 e 100 = limite de itens da lista; 12,2 = até 12 algarismos com 2 casas decimais; 500 = até 500 caracteres; - = tamanho fixo não publicado:

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number-Ambiente da emissão.
1 = Produção
2 = Homologação
url_notificacao
Obrigatório
URL500URL do webhook que receberá a notificação quando cada DARE do lote atingir status terminal (aprovado ou rejeitado) — um webhook por item.
itens_para_geracao
Obrigatório quando a origem for por valor direto
array1-50Lista de DAREs a emitir. Mínimo 1 e máximo 50 itens — limite oficial da SEFAZ-SP para o lote DARE (fonte: portal SEFAZ-SP — DARE em Lote: "A emissão é limitada a 50 documentos por lote"). Requisições com mais de 50 itens recebem HTTP 422. Ausente na origem por notas: mutuamente exclusivo com periodo e com documentos.
tipo_agrupamento_filhotes
Opcional
number-Tipo de agrupamento dos itens do lote. Único valor aceito: 3 (PorNúmeroGuia — agrupamento por número de guia), que também é o padrão quando o campo é omitido; qualquer outro valor responde HTTP 422.
dados_contribuinte_nao_cadastrado
Opcional
object-Dados do contribuinte não cadastrado, no mesmo formato dos dados de emitente de um item (cnpj, inscricao_estadual, razao_social, endereco, cidade, uf, telefone). Faz parte do envelope de lote da SEFAZ-SP: a API não valida nem consome o campo nas requisições — quando a SEFAZ-SP devolve esses dados na resposta do lote, eles vêm preenchidos nele.
periodo
periodo.data_inicio
periodo.data_fim
Obrigatório quando a origem for por período
object
date
10Janela de emissão das notas, no formato yyyy-MM-dd. periodo.data_fim não pode ser anterior a periodo.data_inicio. Mutuamente exclusivo com documentos e com itens_para_geracao.
documentos
Obrigatório quando a origem for por chaves
array100Chaves de acesso (44 dígitos) ou UUIDs das notas, sem duplicatas — máximo 100 documentos. Mutuamente exclusivo com periodo e com itens_para_geracao.
receita
Obrigatório na raiz quando a origem for por período ou chaves
object-Objeto da receita, na raiz, somente na origem por notas: receita.codigo (string) e receita.codigo_servico_dare (number) obrigatórios — o valor é aplicado a todos os itens compostos.
data_vencimento
Obrigatório na raiz quando a origem for por período ou chaves
date10Data de vencimento no formato yyyy-MM-dd, na raiz, somente na origem por notas — o valor é aplicado a todos os itens compostos.
inscricao_estadual, cnpj,
razao_social, endereco,
cidade, uf
Obrigatórios na raiz quando a origem for por período ou chaves
string-Dados do emitente do lote. Na origem por notas são obrigatórios na raiz e propagados a cada item composto — a API não preenche esses campos a partir do perfil da empresa em nenhum modo de emissão; na emissão unitária por notas, apenas uf é definido pela API (sempre SP). Na origem por valor direto são exigidos por item. Tamanhos: inscricao_estadual 12, cnpj 14, razao_social/endereco até 60, uf = SP.
linha06 / linha08
Obrigatórias na raiz conforme a receita, quando a origem for por período ou chaves
string1-35Na origem por notas, exigidas na raiz exatamente como na matriz por item — a obrigatoriedade segue o codigo_servico_dare — veja linha06 e linha08.

Campos de cada item de itens_para_geracao:

Parâmetro Obrigatório Tipo Tam. Descrição
ambiente
Obrigatório
number-Ambiente do item — deve ser igual ao ambiente informado no lote; um item divergente responde HTTP 422.
1 = Produção
2 = Homologação
receita
Obrigatório
object-Objeto da receita do item. receita.codigo (string) e receita.codigo_servico_dare (number) são obrigatórios por item na emissão por valor direto.
referencia
Opcional
string7Referência no formato mm/aaaa (ex.: 07/2026).
data_vencimento
Obrigatório
date10Data de vencimento no formato yyyy-MM-dd.
valor
Obrigatório
number12,2Valor do DARE, entre 0,01 e 9.999.999.999,99.
inscricao_estadual
Obrigatório
string12Inscrição estadual (12 dígitos).
cnpj
Obrigatório
string14CNPJ do contribuinte (14 dígitos).
razao_social
Obrigatório
string60Razão social (até 60 caracteres).
endereco
Obrigatório
string60Endereço (até 60 caracteres).
cidade
Obrigatório
string-Cidade do contribuinte.
uf
Obrigatório
string2UF do contribuinte. Sempre SP.
telefone
Obrigatório quando receita.telefone_obrigatorio=true
string-Telefone do contribuinte.
gerar_pdf
Opcional
boolean-Indica se deve gerar o PDF do DARE. Padrão false. Todos os itens do lote devem informar o mesmo valor do primeiro item — valores mistos respondem HTTP 422.
linha06
Obrigatório conforme a receita selecionada
string1-35Informações adicionais exigidas por determinados serviços, conforme o codigo_servico_dare — veja linha06 e linha08.
linha08
Obrigatório conforme a receita selecionada
string1-35Informações adicionais exigidas por determinados serviços, conforme o codigo_servico_dare — veja linha06 e linha08.
Receita obrigatória em todos os modos: em valor direto, cada item de itens_para_geracao exige receita.codigo e receita.codigo_servico_dare; na emissão por notas (período ou chaves) a receita é obrigatória na raiz da requisição, junto com data_vencimento e os dados do emitente (inscricao_estadual, cnpj, razao_social, endereco, cidade, uf). A API valida apenas a presença e o formato do código da receita — nunca se o código informado corresponde à receita desejada. Um código bem-formado, porém errado, gera um DARE real e pagável que quita a receita errada; a correção do código é responsabilidade do integrador.
Comportamento de gerar_pdf em lote: o gerar_pdf do primeiro item de itens_para_geracao define o comportamento de todos os DAREs do lote. Não é permitido enviar valores mistos: um item com valor diferente do primeiro responde HTTP 422 com a mensagem gerar_pdf deve ser igual ao primeiro item do lote. Quando omitido, o padrão é false.
Processamento por item: cada DARE do lote possui seu próprio uuid e é processado e notificado individualmente — um lote de 50 itens gera até 50 webhooks (um por item), correlacionados pelo uuid do item e, quando presente, pelo numero_controle_dare_principal no campo identificador. O lote_uuid aparece apenas nesta resposta síncrona e não persiste: não é enviado em webhooks nem aceito na consulta de status — use-o somente para conferência imediata da requisição. Se um item já estiver em erro_comunicacao (por exemplo, numa repetição da mesma emissão), esse item retorna status: "erro_comunicacao" com a mensagem de reconciliação manual e não é reenviado automaticamente.
Reenvio e duplicidade: a API não expõe chave de idempotência. Em caso de HTTP 502 ou 503, a resposta de erro traz apenas {"error": "..."}, sem uuid. Se a requisição chegou a ser aceita (a resposta da emissão conteve os uuid dos itens), confirme o status de cada item em GET /2/dare/status/{uuid} antes de reenviar; se a mensagem do erro informar que os callbacks serão notificados, aguarde a notificação — ela chega com o uuid de cada item. Quando nenhum uuid existe para a requisição, não há o que consultar: o reenvio é a única via, e reenviar às cegas pode gerar dois DAREs reais e pagáveis para a mesma obrigação. Um item que já esteja em erro_comunicacao retorna esse mesmo status numa repetição e não é reenviado automaticamente — a reconciliação é manual: verifique no Painel Webmania® se a guia foi ou não gerada antes de emitir de novo.

Serviços
Consulta de Status

Consulta o status de uma emissão DARE-ICMS SP pelo uuid retornado na emissão. Endpoint: GET /2/dare/status/{uuid}. Prefira a notificação por webhook — ela chega assim que o desfecho existe.

Atenção: o lote_uuid devolvido por POST /2/dare/emissao/lote não é aceito neste endpoint. Ele existe apenas na resposta síncrona da requisição de lote, para conferência imediata, e não persiste. Na emissão em lote, cada DARE possui seu próprio uuid — consulte cada item individualmente.
Parâmetro Obrigatório Tipo Tam. Descrição
uuid
Obrigatório
string36UUID do DARE 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 numero_controle_dare_principal assim que a SEFAZ-SP retorna.
aprovadoresponse: payload completo do resultado da emissão.
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-SP (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 selecionada, com document_key (chave da NF-e) e motivo_ignorado (preenchido quando a nota ficou de fora). receita acompanha a linha e é sempre null no DARE — a receita é um parâmetro da emissão, não é derivada por nota.
notas_ignoradasQuando alguma nota ficou fora da emissão.Índice das linhas de notas que têm motivo_ignorado preenchido. Nada é removido de notas.

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 DAREs em erro_comunicacao, que não disparam webhook.

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.

Changelog

Versão Data Mudanças
1.0 08/2026 receita passa a ser obrigatória em todos os modos de emissão (valor direto, período e chaves), com receita.codigo e receita.codigo_servico_dare exigidos em toda requisição. data_vencimento também passa a ser obrigatória em todos os modos. A API valida apenas a presença e o formato do código da receita — nunca se o código informado corresponde à receita desejada. Um código bem-formado, porém errado, gera um DARE real e pagável que quita a receita errada; a correção do código é responsabilidade do integrador. Documentação ampliada na seção Receitas: o par receita.codigo × receita.codigo_servico_dare (copiados da mesma entrada de GET /2/dare/receitas) passa a ser explicado, com orientação para conferir a receita no catálogo DARE-ICMS da SEFAZ-SP antes de emitir em produção, e a tabela de campos passa a se chamar Campos da receita.

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