Skip to main content
A NFS-e (Nota Fiscal de Serviço Eletrônica) é o documento fiscal para prestação de serviços, tributada por ISS. Use POST /v1/service-invoices. Se a operação envolve produtos, veja Emissão de NF-e ou Emissão de NFC-e.
A emissão de NFS-e também é assíncrona — a resposta 2xx confirma apenas que a nota foi aceita. Veja Síncrono vs assíncrono e Ciclo de vida da nota.
NFS-e é o modelo mais heterogêneo dos três: cada município emite por um provedor próprio, com seu layout, seus códigos fiscais e, às vezes, sua autenticação. Trate esta página como um guia geral e consulte o que o seu município exige antes de emitir.

Exemplo de criação

cURL
description (discriminação dos serviços) e total são os únicos campos formalmente obrigatórios pelo schema. Quais códigos fiscais o provedor do município envia à prefeitura (federalServiceCode, cityServiceCode, cnaeCode, nbsCode) varia — a consulta abaixo informa quais são e devolve um corpo de exemplo já no formato aceito pelo município.
Os valores de tributação deste exemplo (base, alíquota e valor do ISS) têm fins didáticos e não substituem a orientação de um contador. A alíquota de ISS e o enquadramento do serviço dependem do município e da natureza da operação — valide com o seu contador ou responsável fiscal antes de emitir em produção.

O que o seu município exige

Antes de emitir, consulte as Configurações de emissão por município da cidade da empresa emissora, informando o código IBGE do município:
cURL
Resposta (resumida)
A resposta traz todos os provedores que valem no município. Municípios que adotaram o Emissor Nacional para parte dos regimes tributários têm mais de um, e alguns provedores oferecem ainda um canal alternativo. O que ler em cada provedor: Se o município não estiver integrado, a consulta responde 404 — a Spedy não consegue emitir NFS-e para ele. Para navegar pelos municípios e ver essas mesmas informações sem código, use a página Municípios integrados; para listar ou buscar municípios pela API (por nome, UF ou código IBGE), use Cidades integradas.

RPS, DPS e numeração

Dois conceitos aparecem na maioria dos provedores:
  • RPS (Recibo Provisório de Serviços) — número provisório emitido antes da nota definitiva, usado pelos provedores municipais tradicionais enquanto o lote é processado.
  • DPS (Declaração de Prestação de Serviços) — o documento equivalente no Ambiente Nacional da NFS-e, o padrão que várias prefeituras vêm adotando no lugar de seus sistemas próprios.
Na API da Spedy, rpsNumber e rpsSeries representam tanto o RPS quanto a DPS; batchNumber identifica o lote, quando o provedor envia em lote. Se omitidos, a Spedy usa o próximo número, a série e o próximo lote configurados na empresa (serviceInvoice.nextNumber, series e nextBatchNumber). Quais desses o seu provedor usa está em options.rps, options.series e options.batchNumber; nos provedores que não usam RPS/DPS (options.rps falso), o número enviado à prefeitura é o da própria nota, em number.

Método de emissão e autenticação do provedor

O campo issueType (nas configurações da empresa, bloco serviceInvoice) define para qual sistema a nota é enviada. Configure o valor que a consulta por município indica no issueType do provedor escolhido: O valor vale para todas as notas de serviço da empresa — não é informado nota a nota. Além do certificado digital, alguns provedores exigem uma credencial própria, cadastrada junto à prefeitura. options.authentication diz qual é o caso, e a credencial é configurada na empresa, não enviada por nota: O campo authNumber é obrigatório apenas em dois provedores: corresponde à chave privada no Sigep e ao número da AEDF no Softplan.

Tributação de serviço (ISS)

O bloco total carrega a base de cálculo e as alíquotas do serviço, incluindo issBaseTax, issRate, issAmount e as flags de retenção (issWithheld, além de irWithheld, pisWithheld, cofinsWithheld, inssWithheld, csllWithheld). O campo taxationType define a natureza da tributação: O local de apuração do ISS (taxLocation) define de quem é a competência: município da empresa, do cliente ou da prestação do serviço (companyMunicipality, customerMunicipality, serviceProvisionMunicipality) — a regra correta depende da natureza do serviço (Lei Complementar 116/03) e varia por município. O taxLocation não deve ser confundido com o campo location: este é a cidade onde o serviço foi prestado (code IBGE, name, state), informado quando a prestação ocorre em município diferente do da empresa. taxLocation escolhe a competência; location diz qual é a cidade da prestação.

Operações relacionadas

NFS-e não tem endpoint de carta de correção nem de inutilização — esses dois recursos existem apenas para product-invoices na API da Spedy hoje. Para corrigir uma NFS-e já emitida, a via depende do provedor municipal: normalmente cancelamento (quando o prazo permite) seguido de nova emissão. Veja Cancelamento, correção e inutilização.

Próximos passos