Guia técnico de emissão de NFS-e em São Paulo/SP pela API da Focus NFe

Saiba como emitir NFS-e em São Paulo (SP) pela API da Focus NFe. Este guia é voltado para clientes e para quem está testando a nossa API. Aqui, você encontra os campos obrigatórios, exemplos e observações específicas para desenvolvedores.

Informações Gerais

Provedor
Próprio
Padrão
Próprio
Autenticação
Certificado digital
Cancelamento
Ativo

Ambientes Disponíveis

Ambiente
Disponível
Portal de Acesso
Produção
Sim
Homologação
Sim
Não disponível

Campos Importantes

CampoObrigatoriedadeObservação
CPF/CNPJ do TomadorDesconhecido
Endereço do TomadorDesconhecido
Item Lista ServiçoObrigatórioUtiliza um formato próprio. Consulte a lista aqui. Eventualmente, o código pode ser alterado conforme a vigência
Código CNAENão utilizado
Código Tributário MunicípioNão utilizado

Campos do Provedor

Chaves de acesso da NFS-e referenciada
$.chaves_nfse_referenciadas /IBSCBS
Reforma
Lista de objetos do tipo chave_nfse
Chave da NFS-e referenciada
$.chaves_nfse_referenciadas[].chave_nfse /refNFSe
Reforma
Indicador Consumo Final
$.consumidor_final /indFinal
ObrigatórioReforma
  • Valores possíveis:
  • 0 - Não
  • 1 - Sim
Destinatário
$.destinatario /dest
Reforma
Grupo de informações do destinatário
CNPJ
$.destinatario.cnpj /CNPJ
Reforma
Número do CNPJ
CPF
$.destinatario.cpf /CPF
Reforma
Número do CPF
Email
$.destinatario.email /email
Reforma
Endereço eletrônico
Endereço
$.destinatario.endereco /end
Reforma
Grupo de informações do endereço
CEP
$.destinatario.endereco.cep /CEP
Reforma
Código de Endereçamento Postal
CEP no exterior
$.destinatario.endereco.cep_ext /cEndPost
Reforma
Código alfanumérico do Endereçamento Postal no exterior
Código do país
$.destinatario.endereco.codigo_pais_ext /cPais
Reforma
Tabela de Países ISO
Nome da cidade no exterior
$.destinatario.endereco.nome_cidade_ext /xCidade
Reforma
Nome da cidade no exterior
Região no exterior
$.destinatario.endereco.regiao_ext /xEstProvReg
Reforma
Estado, província ou região da cidade no exterior
Motivo ausência NIF
$.destinatario.motivo_ausencia_nif /NaoNIF
Reforma
  • Tipo do motivo para não informação do NIF. Valores possíveis:
  • 0 - Não informado na nota de origem
  • 1 - Dispensado do NIF
  • 2 - Não exigência do NIF
NIF
$.destinatario.nif /NIF
Reforma
Número de Identificação Fiscal fornecido por um órgão de administração tributária no exterior
Razão Social
$.destinatario.razao_social /xNome
Reforma
Nome ou Razão Social
Documentos Referenciados
$.documentos_referenciados /gReeRepRes
Reforma
Lista de objetos do tipo documentos_referenciados
Chave DFE
$.documentos_referenciados[].chave_dfe /chaveDFE
Reforma
Chave do Documento Fiscal eletrônico do repositório nacional referenciado para os casos de operações já tributadas
CNPJ do fornecedor
$.documentos_referenciados[].cnpj_fornecedor /CNPJ
Reforma
Código município emissor
$.documentos_referenciados[].codigo_municipio_doc_fiscal_outro /cMunDocFiscal
Reforma
Código do município emissor do documento fiscal que não se encontra no repositório nacional
CPF do fornecedor
$.documentos_referenciados[].cpf_fornecedor /CPF
Reforma
Data comp. doc. ded.
$.documentos_referenciados[].data_competencia_documento_dedutivel /dtCompDoc
Reforma
Data da competência do documento dedutível. Ano, mês e dia (AAAA-MM-DD)
Data emissão doc. ded.
$.documentos_referenciados[].data_emissao_documento_dedutivel /dtEmiDoc
Reforma
Data da emissão do documento dedutível. Ano, mês e dia (AAAA-MM-DD)
Descrição chave DFE
$.documentos_referenciados[].descricao_chave_dfe /xTipoChaveDFe
Reforma
Descrição da DF -e a que se refere a chaveDfe que seja um dos documentos do Repositório Nacional. Deve ser preenchido apenas quando tipoChaveDFe = 9 (Outro)
Descrição do documento fiscal
$.documentos_referenciados[].descricao_doc_fiscal_outro /xDocFiscal
Reforma
Descrição do documento não fiscal
$.documentos_referenciados[].descricao_doc_nao_fiscal /xDoc
Reforma
Descrição repasse
$.documentos_referenciados[].descricao_tipo_valor_incluido /xTpReeRepRes
Reforma
Descrição do reembolso ou ressarcimento quando a opção é "99 - Outros reembolsos ou ressarcimentos recebidos por valores pagos relativos a operações por conta e ordem de terceiro"
Mot. ausência NIF fornecedor
$.documentos_referenciados[].motivo_ausencia_nif_fornecedor /NaoNIF
Reforma
  • Tipo do motivo para não informação do NIF. Valores possíveis:
  • 0 - Não informado na nota de origem
  • 1 - Dispensado do NIF
  • 2 - Não exigência do NIF
NIF do fornecedor
$.documentos_referenciados[].nif_fornecedor /NIF
Reforma
Tipo NIF (Número de Identificação Fiscal) - fornecido por um órgão de administração tributária no exterior
Número do documento fiscal
$.documentos_referenciados[].numero_doc_fiscal_outro /nDocFiscal
Reforma
Número do documento fiscal que não se encontra no repositório nacional
Número do documento não fiscal
$.documentos_referenciados[].numero_doc_nao_fiscal /nDoc
Reforma
Razão Social do fornecedor
$.documentos_referenciados[].razao_social_fornecedor /xNome
Reforma
Nome ou Razão Social
Tipo chave DFE
$.documentos_referenciados[].tipo_chave_dfe /tipoChaveDFE
Reforma
  • Tipo de documento do repositório nacional. Valores possíveis:
  • 1 - NFS-e
  • 2 - NF-e
  • 3 - CT-e
  • 9 - Outro
Tipo valor incluído
$.documentos_referenciados[].tipo_valor_incluido /tpReeRepRes
Reforma
Tipo de valor incluído neste documento, recebido por motivo de estarem relacionadas a operações de terceiros, objeto de reembolso, repasse ou ressarcimento pelo recebedor, já tributados e aqui referenciado
Valor monetário reembolso ou ressarcimento
$.documentos_referenciados[].valor_repasse /vlrReeRepRes
Reforma
Valor monetário (total ou parcial, conforme documento informado) utilizado para não inclusão na base de cálculo do ISS e do IBS e da CBS da NFS-e que está sendo emitida (R$)
Evento
$.evento /atvEvento
Reforma
Grupo de informações sobre o evento
Data de fim do evento
$.evento.data_fim /dtFimEvt
Reforma
Data de fim da atividade de evento. Ano, Mês e Dia (AAAA-MM-DD)
Data de início do evento
$.evento.data_inicio /dtIniEvt
Reforma
Data de início da atividade de evento. Ano, Mês e Dia (AAAA-MM-DD)
Endereço do evento
$.evento.endereco /end
Reforma
Grupo de informações do endereço do evento
CEP
$.evento.endereco.cep /CEP
Reforma
Código de Endereçamento Postal
CEP no exterior
$.evento.endereco.cep_ext /cEndPost
Reforma
Código alfanumérico do Endereçamento Postal no exterior
Código do país
$.evento.endereco.codigo_pais_ext /cPais
Reforma
Tabela de Países ISO
Nome da cidade no exterior
$.evento.endereco.nome_cidade_ext /xCidade
Reforma
Nome da cidade no exterior
Região no exterior
$.evento.endereco.regiao_ext /xEstProvReg
Reforma
Estado, província ou região da cidade no exterior
Nome do evento
$.evento.nome /xNomeEvt
Reforma
Nome do evento cultural, artístico, esportivo
Exigibilidade Suspensa
$.exigibilidade_suspensa /ExigibilidadeSuspensa
ObrigatórioReforma
  • Informe se é uma emissão com exigibilidade suspensa.
  • 0 - Não
  • 1 - Sim
Indicador da finalidade da emissão
$.finalidade_emissao /finNFSe
ObrigatórioReforma
  • Valores possíveis:
  • 0 - NFS-e regular
  • 1 - NFS-e complementar
Código CIB
$.imovel.codigo_cib /cCIB
Reforma
Cadastro de imóveis. Obrigatório para construção civil
Endereço imóvel
$.imovel.endereco /end
Reforma
Grupo de informações do endereço do imóvel
CEP
$.imovel.endereco.cep /CEP
Reforma
Código de Endereçamento Postal
CEP no exterior
$.imovel.endereco.cep_ext /cEndPost
Reforma
Código alfanumérico do Endereçamento Postal no exterior
Código do país
$.imovel.endereco.codigo_pais_ext /cPais
Reforma
Tabela de Países ISO
Nome da cidade no exterior
$.imovel.endereco.nome_cidade_ext /xCidade
Reforma
Nome da cidade no exterior
Região no exterior
$.imovel.endereco.regiao_ext /xEstProvReg
Reforma
Estado, província ou região da cidade no exterior
Inscrição Imobiliária Fiscal
$.imovel.inscricao_imobiliaria /inscImobFisc
Reforma
Inscrição Imobiliária fiscal (código fornecido pela prefeitura para identificação da obra ou para fins de recolhimento do IPTU)
Indicador Destinatário
$.indicador_destinatario /indDest
ObrigatórioReforma
  • Valores possíveis:
  • 0 - O destinatário é o próprio tomador identificado na NFS-e (tomador = destinatário)
  • 1 - O destinatário não é o próprio tomador, podendo ser o intermediário ou outra pessoa, física ou jurídica (ou equiparada), ou um estabelecimento diferente do indicado como tomador (tomador != destinatário)
Código Obra
$.obra.codigo /cObra
Reforma
Identificação da obra, do Cadastro Nacional de Obras, ou do Cadastro Específico do INSS
Código CIB
$.obra.codigo_cib /cCIB
Reforma
Cadastro de imóveis. Obrigatório para construção civil
Endereço obra
$.obra.endereco /end
Reforma
Grupo de informações do endereço da obra
CEP
$.obra.endereco.cep /CEP
Reforma
Código de Endereçamento Postal
CEP no exterior
$.obra.endereco.cep_ext /cEndPost
Reforma
Código alfanumérico do Endereçamento Postal no exterior
Código do país
$.obra.endereco.codigo_pais_ext /cPais
Reforma
Tabela de Países ISO
Nome da cidade no exterior
$.obra.endereco.nome_cidade_ext /xCidade
Reforma
Nome da cidade no exterior
Região no exterior
$.obra.endereco.regiao_ext /xEstProvReg
Reforma
Estado, província ou região da cidade no exterior
Inscrição Imobiliária Fiscal
$.obra.inscricao_imobiliaria /inscImobFisc
Reforma
Inscrição Imobiliária fiscal (código fornecido pela prefeitura para identificação da obra ou para fins de recolhimento do IPTU)
Pag. Parc. Antecipado
$.pagamento_parcelado_antecipado /PagamentoParceladoAntecipado
ObrigatórioReforma
  • Informe se a nota teve pagamento parcelado antecipado
  • 0 - Não
  • 1 - Sim
Código indicador da operação de fornecimento
$.servico.codigo_indicador_operacao /cIndOp
ObrigatórioReforma
Conforme tabela "código indicador de operação"
Código município prestação
$.servico.codigo_municipio_prestacao /cLocPrestacao
Reforma
Código da cidade do município da prestação do serviço
NBS
$.servico.codigo_nbs /NBS
ObrigatórioReforma
Nomenclatura Brasileira de Serviços
NCM
$.servico.codigo_ncm /NCM
Reforma
Nomenclatura Comum do Mercosul
Código do país prestação
$.servico.codigo_pais_prestacao /cPaisPrestacao
Reforma
Código do país da prestação do serviço
Fonte do total de tributos
$.servico.fonte_total_tributos /FonteCargaTributaria
Utilizado para mostrar a entidade responsável pelo cálculo do campo percentual_total_tributos. Ex: IBPT.
Código Class. Trib. IBS/CBS
$.servico.ibs_cbs_classificacao_tributaria /cClassTrib
ObrigatórioReforma
Código de classificação Tributária do IBS e da CBS principal
Código Class. Trib. IBS/CBS Regular
$.servico.ibs_cbs_classificacao_tributaria_regular /cClassTribReg
Reforma
Código de classificação Tributária do IBS e da CBS de tributação regular
Percentual do valor total dos tributos
$.servico.percentual_total_tributos /PercentualCargaTributaria
Valor Final
$.servico.valor_final_cobrado /ValorFinalCobrado
ObrigatórioReforma
Valor final cobrado
Valor Inicial
$.servico.valor_inicial_cobrado /ValorInicialCobrado
Reforma
Valor inicial cobrado
Valor IPI
$.servico.valor_ipi /ValorIPI
ObrigatórioReforma
Valor de IPI
Valor Juros
$.servico.valor_juros /ValorJuros
Reforma
Valor dos juros
Valor Multa
$.servico.valor_multa /ValorMulta
Reforma
Valor da multa
Tipo do ente da compra governamental
$.tipo_compra_governamental /tpEnteGov
Reforma
  • Valores possíveis:
  • 1 - União
  • 2 - Estados
  • 3 - Distrito Federal
  • 4 - Municípios
Tipo de Op. Entes Gov.
$.tipo_operacao_governamental /tpOper
Reforma
  • Tipo de Operação com Entes Governamentais ou outros serviços sobre bens imóveis. Valores possíveis:
  • 1 - Fornecimento com pagamento posterior
  • 2 - Recebimento do pagamento com fornecimento já realizado
  • 3 - Fornecimento com pagamento já realizado
  • 4 - Recebimento do pagamento com fornecimento posterior
  • 5 - Fornecimento e recebimento do pagamento concomitantes
Endereço do tomador
$.tomador.endereco /EnderecoTomador
Bairro
$.tomador.endereco.bairro /Bairro
Reforma
CEP
$.tomador.endereco.cep /CEP
Reforma
Código Município
$.tomador.endereco.codigo_municipio /Cidade
Reforma
Complemento
$.tomador.endereco.complemento /ComplementoEndereco
Reforma
Logradouro
$.tomador.endereco.logradouro /Logradouro
Reforma
Número
$.tomador.endereco.numero /NumeroEndereco
Reforma
Tipo de Logradouro
$.tomador.endereco.tipo_logradouro /TipoLogradouro
Reforma
UF
$.tomador.endereco.uf /UF
Reforma
Motivo ausência NIF
$.tomador.motivo_ausencia_nif /NaoNIF
Reforma
  • Tipo do motivo para não informação do NIF
  • 0 - Não informado na nota de origem
  • 1 - Dispensado do NIF
  • 2 - Não exigência do NIF
NIF
$.tomador.nif /NIF
Reforma
Tipo NIF (Número de Identificação Fiscal) fornecido por um órgão de administração tributária no exterior
Tipo de tributação do RPS
$.tributacao_rps /TributacaoRPS
  • Indica como o RPS foi tributado. Valores possíveis:
  • T: Tributado em São Paulo (valor default);
  • F: Tributado Fora de São Paulo;
  • A: Tributado em São Paulo, porém Isento;
  • B: Tributado Fora de São Paulo, porém Isento;
  • M: Tributado em São Paulo, porém Imune;
  • N: Tributado Fora de São Paulo, porém Imune;
  • X: Tributado em São Paulo, porém Exigibilidade Suspensa;
  • V: Tributado Fora de São Paulo, porém Exigibilidade Suspensa;
  • P: Exportação de Serviços.

Outras Informações

  • Uso do RPS
    • A configuração do RPS para a cidade de São Paulo tem uma particularidade importante a ser observada para não haver notas de outras competências canceladas.
    • Cada nota emitida recebe um número único de RPS e, se esse número for reutilizado num período de até 6 meses, a primeira nota associada a ele será automaticamente cancelada pela Prefeitura. Caso a reutilização ocorra após esse período é retornado o seguinte erro: “Operação não realizada por meio eletrônico em razão de ultrapassado o prazo permitido”.
    • Para evitar problemas, o ideal é sempre verificar no portal da Prefeitura qual foi o último número de RPS utilizado e configurar o próximo número de forma sequencial. Vale lembrar que o sistema municipal permite consultar apenas o último mês, por isso mantenha um controle interno ou solicite essa informação diretamente ao órgão responsável.
    • Essa atenção ao RPS não é apenas uma exigência técnica, mas um cuidado estratégico para garantir que sua emissão fiscal ocorra de forma segura e sem surpresas desagradáveis. Com soluções integradas, como a API Focus NFe, esse controle é automatizado, reduzindo drasticamente a chance de erros e cancelamentos inesperados.

JSONs de Exemplo

{
  "data_emissao": "2025-12-17T00:00:00",
  "natureza_operacao": "1",
  "prestador": {
    "cnpj": "00000000000",
    "inscricao_municipal": "12345",
    "codigo_municipio": "3550308"
  },
  "tomador": {
    "cnpj": "85.904.290/0001-50",
    "razao_social": "Fictício Tomador",
    "endereco": {
      "logradouro": "Rua Fictícia",
      "numero": "2",
      "complemento": "ap02",
      "bairro": "Centro",
      "uf": "SP",
      "cep": "05608040"
    },
    "telefone": "41 3256-8060",
    "email": "test@example.com"
  },
  "servico": {
    "discriminacao": "NFSe reforma tributária teste",
    "item_lista_servico": "07498",
    "valor_servicos": "1",
    "valor_final_cobrado": "1",
    "base_calculo": "1",
    "aliquota": "5",
    "iss_retido": "0",
    "valor_ipi": 0,
    "codigo_nbs": "000000000",
    "codigo_indicador_operacao": "000000",
    "ibs_cbs_classificacao_tributaria": "000001"
  },
  "exigibilidade_suspensa": 0,
  "pagamento_parcelado_antecipado": 0,
  "finalidade_emissao": 0,
  "consumidor_final": 0,
  "indicador_destinatario": 0
}