Emitir NFS-e
Cria uma nova NFS-e. A operação é assíncrona por padrão — devolve 202 Accepted e dispara um webhook quando o status final estiver disponível.
/nfse🔒 Bearer TokenIdempotência
Reenviar a mesma idIntegracao no mesmo tenant não cria nota duplicada — devolve a existente (com seu status atual). Isso garante segurança em retries do seu ERP.
Formato compatível com PlugNotas
O JSON de emissão espelha o layout do PlugNotas (layout RTC007/1.01). Se você está migrando do PlugNotas, os nomes de campos, a estrutura aninhada e as unidades são as mesmas — na prática você reaproveita o mesmo body. As três convenções centrais:
servicoé um ARRAY — uma nota pode ter vários itens, cada um com sua própria tributação (iss,retencao,apuracaoPropria,reforma,valor).- Dinheiro em REAIS DECIMAIS (
number, no máximo 2 casas) —660.64, não centavos inteiros. Não existe mais sufixo*Centavos. - Alíquotas em PERCENTUAL (
number) —3= 3%,0.65= 0,65%. Não existe mais basis points.
Cálculo automático de impostos
Este é o ponto que mais simplifica a integração: você manda só a alíquota de cada imposto e a Notare calcula o valor. O campo valor de cada imposto (ISS, PIS, COFINS, CSLL, IBS, CBS…) é opcional.
- Quando você omite
valor, a Notare calcula:valor = baseCalculo × aliquota / 100, com arredondamento fiscal (2 casas, half-up). A base padrão de cada imposto é o valor do serviço (ajustado por deduções/descontos quando aplicável). - Quando você informa
valorealiquotae os dois divergem, a Notare usa o valor calculado e devolve um aviso emavisos[]apontando o campo. Não bloqueia a emissão. - Você pode sobrescrever a base de um imposto específico com
baseCalculo(em reais) dentro do bloco do imposto.
Na prática: informe só a aliquota e deixe a Notare calcular. Isso evita divergências de arredondamento entre o seu ERP e o XML fiscal — e é o que torna a migração de quem vem do PlugNotas praticamente um copiar-e-colar.
Request body
prestadorobjectObrigatórioPrestador (emitente fiscal). Deve estar cadastrado como Empresa no tenant da API key.
cpfCnpjstringObrigatórioCPF (11 dígitos) ou CNPJ (14 dígitos) do prestador.
- Apenas dígitos (sem máscara
XX.XXX.XXX/XXXX-XX) - Validação: algoritmo de DV ICP-Brasil
- A empresa precisa ter certificado A1 ativo vinculado
11 ou 14 dígitosExemplo: 82653726000198idIntegracaostringRecomendadoIdentificador externo do seu ERP. Fortemente recomendado.
Habilita:
- Idempotência — reenvio devolve a nota existente em vez de criar duplicada
- Reconciliação no seu ERP sem guardar o
idUUID da Notare - Filtro rápido no portal e em webhooks
Restrições:
- Sem espaços nas pontas
- Único por tenant (não precisa ser único globalmente)
- Persiste no webhook payload
OS-30046339servicoarrayObrigatórioArray de itens de serviço. Pelo menos um item. Cada item carrega sua própria tributação (iss, retencao, apuracaoPropria, reforma, valor). Os campos abaixo descrevem um item do array.
codigostringObrigatórioItem da Lista de Serviços da LC 116/2003 / código de serviço. Aceita formato com pontos
(1.07.01) ou só números (10701) — a Notare normaliza. (antes: itemListaServico)
item LC 116Exemplo: 10701municipioPrestacaostringObrigatórioCódigo IBGE do município de prestação. A Notare resolve automaticamente o roteamento — você não escolhe webservice nem padrão.
IBGE 7 dígitosExemplo: 4104808codigoTributacaostringCódigo local de tributação do município. Notare deriva automaticamente quando possível; informe se
o município exigir explicitamente (varia por cidade). (antes: codigoTributacaoMunicipal)
discriminacaostringObrigatórioDescrição livre do serviço prestado. Aparece no DANFSe e nas consultas. Pode incluir referências
de OS, projeto, contrato. (antes: descricao)
cnaestringRecomendadoCNAE do prestador. Recomendado pois é exigido por diversos municípios.
7 dígitosmunicipioIncidenciastringMunicípio competente para o ISS, quando diferente do de prestação.
IBGE 7 dígitoscodigoServicoNacionalstringDPS — código de serviço nacional (cTribNac). Sistema Nacional.
6 dígitoscodigoNbsstringDPS — código NBS (Nomenclatura Brasileira de Serviços).
9 dígitosvalorobjectObrigatórioValores deste item, em reais decimais (number, máx. 2 casas).
serviconumberObrigatórioValor bruto do serviço em reais. R$ 660,64 → 660.64. (antes: valorServicosCentavos: 66064)
660.64baseCalculonumberBase de cálculo do ISS em reais. Default = servico − deducoes − descontoIncondicionado.
descontoIncondicionadonumberdescontoCondicionadonumberrecebidonumberdeducoesnumber | objectDeduções permitidas (LC 116 itens 7.05, 1.05 etc.) em reais. Aceita um number simples ou um objeto detalhado ({ valor, percentual, documentos[] }). (antes: valorDeducoesCentavos)
issobjectObrigatórioTributação do ISS deste item. Informe a aliquota; o valor é opcional (calculado).
aliquotanumberObrigatórioAlíquota do ISS em percentual. 3% → 3. Faixa típica municipal: 2 a 5. (antes:
aliquotaIssBp: 300)
3 (= 3%)valornumberValor do ISS em reais. Opcional — quando omitido, a Notare calcula baseCalculo × aliquota / 100.
tipoTributacaointegerSituação tributária do ISS (numérico, alinha com o XML): 1=tributável no município, 2=fora,
3=isenção, 4=imune, 5=exig. suspensa judicial, 6=exig. suspensa adm., 7=tributável fora
do município.
exigibilidadeintegerExigibilidade do ISS (numérico): 1=exigível, 2=não incidência, etc.
retidobooleantrue quando o tomador (geralmente órgão público) é responsável por reter e recolher o ISS.
falsetipoImunidadeintegerTipo de imunidade conforme tabela DPS, quando aplicável.
retencaoobjectImpostos federais retidos na fonte pelo tomador. Cada bloco recebe só a aliquota (em percentual); o valor é calculado se omitido. Todos opcionais.
pisobject{ "aliquota": 0.65 } — PIS retido. valor opcional.
cofinsobject{ "aliquota": 3 } — COFINS retido. valor opcional.
csllobject{ "aliquota": 1 } — CSLL retido. valor opcional.
inssobjectINSS retido. valor opcional.
irrfobjectIRRF retido. valor opcional.
cppobjectCPP retido. valor opcional.
outrasnumberOutras retenções federais (valor em reais).
apuracaoPropriaobjectPIS/COFINS apurados e recolhidos pelo próprio prestador (regime não-cumulativo) — não retidos pelo tomador.
cstPisCofinsstringCST de PIS/COFINS.
2 dígitosExemplo: 01baseCalculoPisCofinsnumberBase de cálculo PIS/COFINS em reais. Default = valor do serviço.
1000pisobject{ "aliquota": 1.65 } — PIS próprio. valor opcional.
cofinsobject{ "aliquota": 7.6 } — COFINS próprio. valor opcional.
reformaobjectBloco IBS/CBS/IS deste item — ver Reforma Tributária pra detalhamento
completo de campos e CST. Alíquotas em percentual. (antes: reformaTributaria)
informacoesComplementaresstringTexto livre adicional impresso no DANFSe. Comum: dados de contrato, nota fiscal correlata, mensagem ao tomador.
tomadorobjectObrigatórioBloco do tomador (cliente).
cpfCnpjstringRecomendadoCPF (PF) ou CNPJ (PJ). Pode ser omitido apenas em "tomador não identificado" (varejo). Sem máscara.
11 ou 14 dígitosnifEstrangeirostringNIF/Tax ID quando tomador é estrangeiro. Use no lugar do cpfCnpj em exportação de serviços.
razaoSocialstringRecomendadoNome completo (PF) ou razão social (PJ).
consumidorFinalbooleanMarca o tomador como consumidor final. Afeta cálculo de impostos em alguns cenários. (antes
ficava no nível raiz do request; agora vive apenas dentro de tomador)
falseinscricaoMunicipalstringIM do tomador. Necessária se ele estiver sujeito a retenção de ISS no município.
emailstringEmail do tomador. Alguns municípios enviam o PDF/XML pelo email cadastrado.
RFC 5322Tamanho: 0 – 200enderecoobjectObrigatórioEndereço completo do tomador (obrigatório quando PJ).
tipoLogradourostringTipo do logradouro (Rua, Av, Rod). Opcional.
logradourostringObrigatórioRua, Av, Rod, etc.
numerostringObrigatórioUse "S/N" quando sem número.
complementostringSala, andar, bloco.
tipoBairrostringTipo do bairro. Opcional.
bairrostringObrigatóriocodigoCidadestringObrigatórioCódigo IBGE do município do tomador. (antes: municipioIbge)
IBGE 7 dígitosdescricaoCidadestringNome do município. Opcional.
estadostringObrigatórioUF do tomador. (antes: uf)
UF 2 letrascepstringObrigatório8 dígitos sem máscaracodigoPaisstringCódigo país BACEN. 1058 = Brasil.
1058Tamanho: 0 – 4rpsobjectIdentificação opcional do RPS. Recomendado deixar a Notare alocar — evita conflitos de sequência.
numerostringForça um número específico. Use só se você gerencia a sequência externa.
seriestringSérie do RPS.
da config da empresatipoenumrpsValores: rps, nota_conjugada_misto, cupomdataEmissaostringData/hora de emissão do RPS.
ISO 8601Default: agoracompetenciastringMês/ano de competência fiscal.
YYYY-MMDefault: mês atualopcoesobjectModificadores de processamento.
modoSincronobooleantrue faz a API aguardar a resposta final (até 30s). Default assíncrono devolve 202 e dispara
webhook quando estiver pronto.
falsewebhookUrlstringSobrescreve a URL de webhook do tenant apenas para esta emissão.
URL HTTPSprioridadeenumReservado para planos Scale/Enterprise. Default normal é suficiente em 99% dos casos.
normalValores: normal, altaExemplo de request
{
"idIntegracao": "OS-30046339",
"prestador": {
"cpfCnpj": "82653726000198"
},
"tomador": {
"cpfCnpj": "77856995003218",
"razaoSocial": "Cliente Exemplo LTDA",
"consumidorFinal": false,
"email": "financeiro@cliente.com",
"endereco": {
"logradouro": "Av. Brasil",
"numero": "1000",
"bairro": "Centro",
"codigoCidade": "4104808",
"estado": "PR",
"cep": "85801000"
}
},
"servico": [
{
"codigo": "10701",
"codigoTributacao": "10701",
"discriminacao": "Consultoria em desenvolvimento de software",
"municipioPrestacao": "4104808",
"cnae": "6202300",
"valor": {
"servico": 660.64
},
"iss": {
"tipoTributacao": 1,
"exigibilidade": 1,
"aliquota": 3,
"retido": false
},
"retencao": {
"pis": { "aliquota": 0.65 },
"cofins": { "aliquota": 3 },
"csll": { "aliquota": 1 }
}
}
]
}
Repare que nenhum imposto traz valor — só a aliquota. A Notare calcula o ISS, o PIS, a COFINS e a CSLL a partir do valor do serviço (R$ 660,64). Mande só as alíquotas. Veja Cálculo automático de impostos.
Response
{
"id": "5fcb9e1d-28e1-4e45-bde9-8e957c835b27",
"status": "processando",
"numero": null,
"chaveAcesso": null,
"numeroRps": "201",
"serieRps": "8",
"meta": {
"trilho": "municipal",
"municipio": { "ibge": "4104808", "nome": "Cascavel" },
"tempoProcessamento": "120ms",
"tentativas": 1
},
"urls": { "pdf": null, "xml": null },
"scoreConfianca": 95,
"avisos": [],
"erros": []
}
Campos do response
idstringUUID v4statusenumEstado atual. Veja a tabela de transições abaixo.
processando, autorizada, rejeitada, cancelada, substituida, falha_temporaria, falha_definitivanumerostringnull enquanto não autorizada.chaveAcessostringnull enquanto não autorizada.numeroRpsstringserieRpsstringurlsobjectpdfstringautorizada.xmlstringautorizada.scoreConfiancaintegerScore heurístico pré-emissão. ≥ 90 = alta confiança · 70–89 = atenção · < 70 = revise antes de produção.
0-100avisosarrayerrosarrayrejeitada: lista de erros estruturados com campo, codigo, mensagem.Estados possíveis
| Estado | Significado | Transições saída |
|---|---|---|
processando | Em fila ou aguardando resposta | → autorizada · rejeitada · falha_temporaria |
autorizada | NFS-e gerada com sucesso | → cancelada · substituida |
rejeitada | Validação falhou (erros[] lista os campos) | terminal |
cancelada | Cancelamento confirmado | terminal |
substituida | Substituída por outra NFS-e | terminal |
falha_temporaria | Erro transitório — retentável | → processando · falha_definitiva |
falha_definitiva | Esgotou retries automáticos | terminal |