TF Fiscal
Documentation

NFS-e

Issue NFS-e

Accepts the request immediately and files with the authority asynchronously.

POST/openapi/v2/empresas/{empresaId}/nfse
Requires the token, timestamp and sign signature headers, see Authentication.

Acceptance returns HTTP 200 with no body and filing with the authority is asynchronous; the result arrives via webhook or the query endpoint. Re-submitting the same id reuses the original task and never issues a second document.

The 50-digit access key is generated by the authority, so a document that failed has no chaveAcesso and can only be located by identificacaoDps, the 45-character identifier the platform generates. The platform routes by the company municipality and the channel appears as padraoMunicipal in the query response; an unsupported municipality is rejected at acceptance (10018010).

Path parameters

empresaId*
stringCompany identifier

* Required field

Request body

id*
stringRequest identifier
ambienteEmissao*
stringEnvironment
dataCompetencia
stringCompetence month
objectIssuer
*
required when `emitente.tipo` is not `Prestador`
objectService provider
objectRecipient
objectIntermediary
*
objectService
objectReplacement
observacoes
stringRemarks

* Required field

200
Request accepted; no body. The document goes on to the asynchronous filing with the authority.

No response body

  • The company must be approved with a usable certificate (10018004).
  • The company needs its NFS-e profile (series, Simples status, special regime), coming from the emissaoNFSe section of Register company or maintained by operations; missing, 10018005. Service code, CNAE, NBS, ISS rate and the PIS/COFINS and IBS/CBS codes have no company default: send them on every request.
  • ambienteEmissao must be the company current environment. After registration the company sits in Homologacao; the switch to production is done by operations.
  • The platform routes by the company municipality. A São Paulo company (padraoMunicipal Paulistana) needs its municipal registration CCM; when missing from the profile the platform looks it up by CNPJ at acceptance and only rejects 10018005 when nothing is found. On that channel: emitente.tipo Prestador only, no substituicao, no discounts, no pagamentosVinculados, no NaoIncidencia, numeric CNPJ only, 5-digit codigoTributacaoMunicipal. ibsCbs is optional and selects the municipal layout: with ibsCbs + codigoNbs the invoice goes out in layout 2 (with IBS/CBS); without it, layout 1 (ISS only). Foreign customers (NIF) only in layout 2.
  • CNPJ recipient: send the withheld amounts in servico.retencoes, or omit them and the platform computes from the official withholding classification of the service plus cliente.orgaoPublico and cliente.optanteSimplesNacional; when information is missing, 10018023 lists everything missing at once. An ME/EPP provider whose service is subject to INSS withholding gives the Simples annex of that service in servico.retencoes.anexoSimples.