Emissor Fiscal · todos os modelos
NFS-e em mais de 5.000 municípios
+15 milhõesde documentos fiscais por mês
Conheça as soluções Webmania® para o seu negócio e escolha a ideal para sua operação.
Agendar demonstraçãoConsulte condições e serviços disponíveis.
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
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.
GET /2/dare/receitas e copie o par codigo + codigo_servico_dare.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.POST /2/dare/emissao informando url_notificacao, e receba o resultado no seu webhook.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.
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 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 |
|---|---|---|
uuid | string | Identificador da emissão — o mesmo devolvido na resposta síncrona. É a chave de correlação da notificação. |
modelo | string | Tipo da guia: dare. |
status | string | aprovado ou rejeitado (o webhook dispara apenas para status terminais). |
ambiente | number | 1 = Produção, 2 = Homologação. |
identificador | string | numero_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_rejeicao | array | Lista 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.
GET /2/dare/status/{uuid}), que mantém o status internamente. Resumo dos status possíveis:
| Status | Terminal | Dispara webhook | Ação recomendada |
|---|---|---|---|
processando | Não | Não | Aguarde a notificação. Não reenvie a requisição. |
aprovado | Sim | Sim | Guia gerada. Obtenha os artefatos de pagamento. |
rejeitado | Sim | Sim | A SEFAZ-SP recusou. Consulte motivos_rejeicao no payload e corrija antes de reemitir. |
erro_comunicacao | Sim | Não | Falha 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. |
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 |
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.
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. 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).
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.HTTP 429. Emissões por valor direto não contam para esse limite, que se aplica apenas à emissão por notas. 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®.
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.
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.
A resposta de erro de um endpoint do DARE segue um destes formatos, conforme a etapa em que a falha ocorre:
"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"]}}.{"error": "..."}, como na resposta do limite diário por notas.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"}.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_ok | boolean | true quando a operação foi bem-sucedida. |
erro.mensagens | array | Lista 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"]
}
}
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.
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 | number | Ambiente da consulta.1 = Produçã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
}
] | Parâmetro | Tipo | Descrição |
|---|---|---|
codigo | string | Código da receita. |
codigo_servico_dare | number | Código do serviço DARE vinculado. |
escopo_uso | number | Escopo de uso:0 = CNPJ1 = CPF2 = Ambos |
habilitado_administrativo | boolean | Indica se a receita está habilitada. |
nome | string | Nome da receita. |
observacao_dare_avulso | string | Observação para DARE avulso. |
possui_linha06_dare | boolean | Indica se a receita exige linha06. |
suprimir_referencia | boolean | Indica se a referência deve ser suprimida. |
telefone_obrigatorio | boolean | Indica se o telefone é obrigatório. |
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 |
possui_linha06_dare=true, o campo linha06 é obrigatório e deve respeitar o formato do codigo_servico_dare. 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.
Campos enviados no corpo da requisição de emissão:
| Parâmetro | Obrigatório | Tipo | Tam. | Descrição |
|---|---|---|---|---|
ambiente | Obrigatório | number | 1 | Ambiente da emissão.1 = ProduçãoEm 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 | URL | 500 | URL 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 | string | 7 | Referê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 | date | 10 | Data de vencimento no formato yyyy-MM-dd. Obrigatória em todos os modos de emissão. |
valor | Obrigatório | number | 12,2 | Valor do DARE, entre 0,01 e 9.999.999.999,99. |
inscricao_estadual | Obrigatório | string | 12 | Inscrição estadual (12 dígitos). |
cnpj | Obrigatório | string | 14 | CNPJ 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 | string | 60 | Razão social. |
endereco | Obrigatório | string | 60 | Endereço. |
cidade | Obrigatório | string | - | Cidade. |
uf | Obrigatório | string | 2 | UF. 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 | string | 1-35 | Informações adicionais conforme serviço. |
linha08 | Obrigatório conforme a receita selecionada | string | 1-35 | Informaçõ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). |
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. 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 |
|---|---|---|
8101 | Não exigida — formato livre | Obrigatória — 9 dígitos (^[0-9]{9}$) |
1044 | Não exigida — formato livre | Obrigatória — 9 dígitos (^[0-9]{9}$) |
6305 | Obrigatória — 1 a 10 caracteres (^.{1,10}$) | Obrigatória — 1 a 35 caracteres (^.{1,35}$) |
89202 | Obrigatória — 2 a 10 dígitos (^[0-9]{2,10}$) | Não exigida — formato livre |
24701 | Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$) | Não exigida — formato livre |
4603 | Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$) | Não exigida — formato livre |
14604 | Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$) | Não exigida — formato livre |
6307 | Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$) | Não exigida — formato livre |
6308 | Obrigatória — 1 a 35 dígitos (^[0-9]{1,35}$) | Não exigida — formato livre |
| codigo_servico_dare | linha06 | linha08 |
|---|---|---|
8101, 1044 | Opcional | Obrigatória (9 dígitos) |
6305 | Obrigatória (1-10) | Obrigatória (até 35) |
89202 | Obrigatória (2-10 dígitos) | Opcional |
24701, 4603, 14604, 6307, 6308 | Obrigató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.
GET /2/dare/receitas para verificar o campo possui_linha06_dare antes de emitir. 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_44 | string | 44 | Código de barras da guia no padrão de 44 posições. |
codigo_barra_48 | string | 48 | Código de barras da guia no padrão de 48 posições. |
numero_guia | string | - | 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.
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. 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 | number | 1 | Ambiente da emissão.1 = ProduçãoEm 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 | URL | 500 | URL 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 | date | 10 | Data de vencimento no formato yyyy-MM-dd. Obrigatória em todos os modos de emissão. |
inscricao_estadual | Obrigatório | string | 12 | Inscriçã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 | string | 14 | CNPJ 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 | string | 60 | Razão social do emitente. Obrigatório em todos os modos — a API não a preenche na origem por notas. |
endereco | Obrigatório | string | 60 | Endereç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_inicioperiodo.data_fim | Obrigatório quando a origem for por período | date | 10 | Janela 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 | array | 100 | Chaves 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 | string | 1-35 | Informaçõ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.
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.
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 | number | 1 | Ambiente das notas.1 = Produçã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_inicioperiodo.data_fim | Obrigatório quando a origem for por período | date | 10 | Janela de emissão das notas, no formato yyyy-MM-dd. Mutuamente exclusivo com documentos. |
documentos | Obrigatório quando a origem for por chaves | array | 100 | Chaves 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 |
|---|---|---|
tipo | string | Sempre dare neste endpoint. |
selecionadas[] | array | Notas elegíveis: fiscal_document_uuid, document_key, valor_icms_st, valor_difal, uf_destino e guia_indicado. |
ignoradas[] | array | Notas recusadas, com motivo_ignorado e mensagem quando aplicável. |
totais | object | Somas em texto decimal: icms_st, difal e total — o valor que a emissão usaria com a receita informada. |
total_encontradastotal_omitidaslimite_por_requisicao | integer | Somente 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" }
} 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 |
url_notificacao | Obrigatório | URL | 500 | URL 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 | array | 1-50 | Lista 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. |
periodoperiodo.data_inicioperiodo.data_fim | Obrigatório quando a origem for por período | object date | 10 | Janela 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 | array | 100 | Chaves 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 | date | 10 | Data 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 | string | 1-35 | Na 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 |
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 | string | 7 | Referência no formato mm/aaaa (ex.: 07/2026). |
data_vencimento | Obrigatório | date | 10 | Data de vencimento no formato yyyy-MM-dd. |
valor | Obrigatório | number | 12,2 | Valor do DARE, entre 0,01 e 9.999.999.999,99. |
inscricao_estadual | Obrigatório | string | 12 | Inscrição estadual (12 dígitos). |
cnpj | Obrigatório | string | 14 | CNPJ do contribuinte (14 dígitos). |
razao_social | Obrigatório | string | 60 | Razão social (até 60 caracteres). |
endereco | Obrigatório | string | 60 | Endereço (até 60 caracteres). |
cidade | Obrigatório | string | - | Cidade do contribuinte. |
uf | Obrigatório | string | 2 | UF 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 | string | 1-35 | Informações adicionais exigidas por determinados serviços, conforme o codigo_servico_dare — veja linha06 e linha08. |
linha08 | Obrigatório conforme a receita selecionada | string | 1-35 | Informações adicionais exigidas por determinados serviços, conforme o codigo_servico_dare — veja linha06 e linha08. |
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. 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. 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. 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. 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.
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 | string | 36 | UUID 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 |
|---|---|
processando | Nenhum. provider_identifier passa a conter o numero_controle_dare_principal assim que a SEFAZ-SP retorna. |
aprovado | response: payload completo do resultado da emissão. |
rejeitado | motivos_rejeicao: lista de {codigo, mensagem}; last_error_code: código do último erro. |
erro_comunicacao | message: 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 |
|---|---|---|
origem | Emissões originadas por notas. | periodo (seleção por período) ou chaves (seleção por chaves) — identifica o modo de emissão. |
notas | Emissõ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_ignoradas | Quando 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."
} 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. 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: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:
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. | 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. |