A API de Pré-Cadastro de Nota Fiscal de Serviço (endpoint POST /service-invoice/pre-registration) permite enviar, por integração, os dados de uma NFS-e para que ela seja registrada no Sienge como pré-nota — a mesma etapa intermediária disponível na tela de Cadastro de Pré-Nota de Serviços, em que a nota fica disponível para revisão antes da emissão efetiva à prefeitura. Ela é útil para quem mantém um sistema externo (ERP, plataforma de gestão de contratos, etc.) e quer gerar a pré-nota automaticamente a partir desses dados, sem digitação manual no Sienge. Assim como os demais recursos de API, esse endpoint está disponível apenas para clientes na nuvem (DC); clientes com servidor local não têm acesso a API.
Veja a seguir o que cada campo do corpo da requisição representa.
Identificação da empresa, do tomador e da operação
companyId — código da empresa prestadora do serviço (obrigatório).
takerId — código do cliente tomador do serviço (obrigatório).
operationType — tipo de operação governamental da nota. Aceita 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) ou 5 (fornecimento e recebimento do pagamento concomitantes).
takerIsNotRecipient — indica se quem recebe a nota (destinatário) é diferente do cliente informado em takerId.
recipientId — código do destinatário da nota. Só é obrigatório quando takerIsNotRecipient estiver marcado como true.
Local e descrição do serviço prestado
provisionCityId — código do município onde o serviço foi efetivamente prestado (obrigatório).
incidence — define onde incide o ISS: 1 (serviço prestado no município), 2 (serviço prestado fora do município) ou 3 (serviço prestado no exterior) — campo obrigatório.
incidenceCityId — código do município de incidência do ISS, de acordo com o valor informado em incidence (obrigatório).
municipalBenefitCode — código de um benefício fiscal municipal aplicado ao serviço, quando houver.
serviceId — código do serviço (produto fiscal) cadastrado no Sienge (obrigatório).
description — descrição do serviço prestado (obrigatório). Para quebrar linha dentro do texto, use o caractere \n; nenhum outro caractere especial deve ser usado.
quantity — quantidade do serviço prestado (obrigatório).
serviceValue — valor do serviço (obrigatório).
invoiceValue — valor total da nota fiscal (obrigatório).
additionalInfo — informações complementares da nota, como número de contrato. Segue a mesma regra do campo description para quebra de linha (\n).
buildingId — código da obra onde o serviço foi prestado, quando aplicável.
sendPropertyInformation — indica se as informações do imóvel vinculado à obra devem ser enviadas na nota. Só tem efeito quando buildingId é informado.
sendCibCode — indica se o código CIB do imóvel deve ser enviado. Só tem efeito quando sendPropertyInformation está marcado como true.
Título financeiro gerado pela nota
configurationId — código da configuração usada para gerar o título financeiro correspondente à nota (obrigatório).
amountInstallment — quantidade de parcelas do título (obrigatório).
dueDate — data do primeiro vencimento, no formato aaaa-mm-dd (obrigatório).
deductions — lista de deduções aplicadas ao valor da nota, quando o serviço estiver vinculado a títulos anteriores. Cada item da lista informa billId (número do título vinculado à dedução) e deductionValue (valor a deduzir) — ambos obrigatórios dentro do item.
Tributação do ISS
issWithheldType — indica se o ISS é retido na fonte pelo tomador.
issTaxNature — natureza de tributação do ISS (obrigatório): 0 (não informar), 1 (Simples Nacional), 2 (fixo), 3 (depósito em juízo), 4 (exigibilidade suspensa por decisão judicial), 5 (exigibilidade suspensa por procedimento administrativo) ou 6 (isenção parcial).
issChargeability — exigibilidade do ISS (obrigatório): 1 (exigível), 2 (não incidência), 3 (isenção), 4 (exportação), 5 (imunidade), 6 (exigibilidade suspensa por decisão judicial) ou 7 (exigibilidade suspensa por processo administrativo).
suspensionProcessNumber — número do processo de suspensão da exigibilidade do ISS. Torna-se obrigatório quando issChargeability é 6 ou 7.
doNotSendIssRate — indica se a alíquota do ISS não deve ser enviada na nota.
issCalculationBasis, issRate, issIncidenceRate e issValue — respectivamente, a base de cálculo, a alíquota (percentual), o percentual de incidência e o valor calculado do ISS.
Impostos federais retidos (PIS, COFINS, INSS, CSLL e IRPJ)
Cada um desses impostos segue o mesmo padrão de quatro campos: base de cálculo, alíquota (percentual), percentual de incidência e valor retido.
PIS: pisCalculationBasis, pisRate, pisIncidenceRate, pisValue.
COFINS: cofinsCalculationBasis, cofinsRate, cofinsIncidenceRate, cofinsValue.
INSS: inssCalculationBasis, inssRate, inssIncidenceRate, inssValue.
CSLL: csllCalculationBasis, csllRate, csllIncidenceRate, csllValue.
IRPJ: irpjCalculationBasis, irpjRate, irpjIncidenceRate, irpjValue.
Além desses, o campo withholdingValue registra o valor de outras retenções que não se enquadram nos impostos acima.
Campos da Reforma Tributária (IBS/CBS)
Esses campos existem para acomodar o período de transição da Reforma Tributária, em que o IBS (Imposto sobre Bens e Serviços, que substitui gradualmente o ICMS e o ISS) e a CBS (Contribuição sobre Bens e Serviços, que substitui gradualmente o PIS e a COFINS) passam a conviver com os tributos atuais.
cstId e taxClassificationId — código da situação tributária (CST) e código da classificação tributária aplicados à nota no novo modelo.
regularTaxationCstId e regularTaxClassificationId — os mesmos códigos, referentes ao regime regular de tributação, usado como parâmetro de comparação durante a transição.
presumedCreditId — código do crédito presumido aplicável à operação, quando houver.
ibsCbsCalculationBasis — base de cálculo comum usada para o IBS e a CBS.
percentageDeferralIbsState, percentageDeferralIbsMunicipal e percentageDeferralCbs — percentuais de diferimento (postergação do recolhimento) do IBS estadual, do IBS municipal e da CBS, respectivamente.
stateIbsRate, stateIbsReducedRate, stateIbsEffectiveRate, stateIbsDeferralValue e stateIbsValue — alíquota cheia, alíquota reduzida, alíquota efetiva, valor diferido e valor tributado do IBS estadual.
municipalIbsRate, municipalIbsReducedRate, municipalIbsEffectiveRate, municipalIbsDeferralValue e municipalIbsValue — os mesmos cinco indicadores, para o IBS municipal.
percentageIbsPresumedCredit e ibsPresumedCreditValue — percentual e valor de crédito presumido do IBS.
cbsRate, cbsReducedRate, cbsEffectiveRate, cbsValue e cbsDeferralValue — alíquota cheia, alíquota reduzida, alíquota efetiva, valor tributado e valor diferido da CBS.
percentageCbsPresumedCredit e cbsPresumedCreditValue — percentual e valor de crédito presumido da CBS.
regularStateIbsEffectiveRate, regularStateIbsValue, regularMunicipalIbsEffectiveRate, regularMunicipalIbsValue, regularCbsEffectiveRate e regularCbsValue — as alíquotas efetivas e os valores equivalentes calculados pelo regime regular, usados como referência de comparação enquanto os dois modelos de tributação coexistem.
Nota referenciada
referencedInvoices — lista de notas fiscais referenciadas por esta nota — por exemplo, quando ela substitui ou complementa uma nota já emitida. Cada item da lista informa apenas referencedInvoiceKey, com a chave de acesso da nota referenciada (obrigatório dentro do item).
Ao processar a requisição, a API retorna uma mensagem de resposta com o status HTTP (status), uma mensagem técnica voltada ao desenvolvedor (developerMessage) e uma mensagem voltada ao usuário (clientMessage), que ajuda a identificar o motivo de um eventual erro.
A documentação técnica completa deste endpoint, incluindo exemplos de requisição e resposta, está disponível em api.sienge.com.br/docs/#/service-invoice-pre-registration.
Esperamos que este artigo tenha ajudado!