Emissão de NFS-e com Cálculo Manual de Impostos
Nesta seção, iremos explicar como emitir uma Nota Fiscal de Serviço Eletrônica (NFS-e) informando manualmente os valores de impostos e alíquotas. Caso não encontre uma resposta para sua dúvida, fique à vontade para entrar em contato e enviar sua pergunta.
O que é o Cálculo Manual de Impostos?
O cálculo manual de impostos é o cenário em que você tem total controle sobre os detalhes tributários e valores dos impostos a serem enviados para a prefeitura no processamento da nota fiscal. Ao informar qualquer campo de imposto na requisição, a plataforma entende que você deseja controlar os valores manualmente e não realizará o cálculo automático.
Quando utilizar este cenário?
- Controle total sobre os impostos: Quando você precisa definir manualmente os valores de alíquotas e impostos retidos.
- Alíquotas específicas: Quando a alíquota de ISS ou outros impostos aplicáveis ao serviço diferem do padrão cadastrado na plataforma.
- Retenções de impostos: Quando há necessidade de informar valores de retenção de IR, PIS, COFINS, CSLL, INSS ou ISS.
Campos para emissão
Para emitir uma nota fiscal com cálculo manual de impostos, além dos campos básicos, você deve informar os campos de alíquotas e retenções conforme as regras abaixo:
| Campo | Descrição | Obrigatório |
|---|---|---|
borrower.type | Tipo do tomador de serviço (Undefined, NaturalPerson, LegalEntity) | Sim |
borrower.name | Nome ou Razão Social do tomador | Sim |
borrower.federalTaxNumber | CPF ou CNPJ do tomador (somente números) | Sim |
borrower.email | Email do tomador | Não |
borrower.address | Endereço completo do tomador | Sim |
cityServiceCode | Código do serviço no município | Sim |
description | Descrição do serviço prestado | Sim |
servicesAmount | Valor total do serviço | Sim |
issRate | Alíquota do ISS (valor em decimal, ex: 2% = 0.02) | Sim |
issAmount | Valor do ISS calculado (servicesAmount x issRate) | Condicional* |
deductions | Valor das deduções | Condicional** |
unconditionalDiscount | Valor do desconto incondicionado | Condicional** |
conditionalDiscount | Valor do desconto condicionado | Condicional** |
irWithheld | Valor da retenção de IR | Condicional** |
pisWithheld | Valor da retenção de PIS | Condicional** |
cofinsWithheld | Valor da retenção de COFINS | Condicional** |
csllWithheld | Valor da retenção de CSLL | Condicional** |
inssWithheld | Valor da retenção de INSS | Condicional** |
issWithheld | Valor da retenção de ISS | Condicional** |
othersWithheld | Valor de outras retenções | Condicional** |
Regras de obrigatoriedade:
- *ISS: Você pode informar somente o
issRate(alíquota do ISS). Porém, se informar oissAmount(valor do ISS), é obrigatório informar também oissRate, pois são correlatos (servicesAmountxissRate=issAmount). - **Impostos retidos: Se qualquer campo de retenção for informado, todos os campos de retenção devem ser informados, definindo
0para os que não se aplicam.
Emissão via API
Para emitir uma nota fiscal com cálculo manual de impostos via API, informe os campos de alíquotas e retenções na requisição.
Cenário 1: Informando apenas a alíquota do ISS
Quando você precisa apenas definir a alíquota do ISS, sem informar retenções.
Exemplo de JSON
{
"borrower": {
"type": "LegalEntity",
"name": "Banco do Brasil SA",
"federalTaxNumber": 191,
"municipalTaxNumber": null,
"email": "[email protected]",
"address": {
"country": "BRA",
"postalCode": "01430-000",
"street": "Avenida Brasil",
"number": "418",
"additionalInformation": "ANDAR 1",
"district": "Jardins",
"city": {
"code": "3550308",
"name": "São Paulo"
},
"state": "SP"
}
},
"cityServiceCode": "0101",
"description": "Descrição do serviço prestado",
"servicesAmount": 1000.00,
"issRate": 0.02
}
Cenário 2: Informando alíquota, valor do ISS e retenções
Quando você precisa definir todos os valores de impostos e retenções.
Exemplo de JSON
{
"borrower": {
"type": "LegalEntity",
"name": "Banco do Brasil SA",
"federalTaxNumber": 191,
"municipalTaxNumber": null,
"email": "[email protected]",
"address": {
"country": "BRA",
"postalCode": "01430-000",
"street": "Avenida Brasil",
"number": "418",
"additionalInformation": "ANDAR 1",
"district": "Jardins",
"city": {
"code": "3550308",
"name": "São Paulo"
},
"state": "SP"
}
},
"cityServiceCode": "0101",
"description": "Descrição do serviço prestado",
"servicesAmount": 1000.00,
"issRate": 0.02,
"issAmount": 20.00,
"deductions": 0.00,
"unconditionalDiscount": 0.00,
"conditionalDiscount": 0.00,
"irWithheld": 0.00,
"pisWithheld": 0.00,
"cofinsWithheld": 0.00,
"csllWithheld": 0.00,
"inssWithheld": 0.00,
"issWithheld": 0.00,
"othersWithheld": 0.00
}
Observações importantes
- O campo
issRatedeve ser informado em valor decimal (ex: 2% = 0.02, ou seja, 2 / 100). - Se o
issAmountfor informado, ele deve ser consistente com a fórmula:servicesAmountxissRate=issAmount. - Todos os campos de retenção que não se aplicam devem ser preenchidos com
0.00. - O campo
federalTaxNumberdeve conter somente números (sem pontos, traços ou barras). - O campo
borrower.address.city.codedeve conter o código IBGE do município (7 dígitos).
Emissão via Planilha
Também é possível emitir notas fiscais com cálculo manual de impostos utilizando a planilha avançada de importação. Neste cenário, utilize o modelo de planilha avançada — nele, você tem controle total sobre os campos de impostos.
Campos da Planilha
Além dos campos básicos do tomador e serviço, preencha os seguintes campos tributários:
| Coluna da Planilha | API | Descrição |
|---|---|---|
Aliquota_ISS | issRate | Alíquota do ISS em percentual |
Valor_ISS | issAmount | Valor do ISS calculado |
Retencao_IR | irWithheld | Valor da retenção de IR |
Retencao_PIS | pisWithheld | Valor da retenção de PIS |
Retencao_COFINS | cofinsWithheld | Valor da retenção de COFINS |
Retencao_CSLL | csllWithheld | Valor da retenção de CSLL |
Retencao_INSS | inssWithheld | Valor da retenção de INSS |
Retencao_ISS | issWithheld | Valor da retenção de ISS |
Retencao_OUTROS | othersWithheld | Valor de outras retenções |
Valor_Deducoes | deductions | Valor das deduções legais |
Valor_Desconto_Incondicionado | unconditionalDiscount | Valor do desconto incondicionado |
Valor_Desconto_Condicionado | conditionalDiscount | Valor do desconto condicionado |
Exemplo de preenchimento
| Codigo_Servico | Descricao | Valor | CPF_CNPJ | Nome | Aliquota_ISS | Valor_ISS | Retencao_IR | Retencao_PIS | Retencao_COFINS | Retencao_CSLL | Retencao_INSS | Retencao_ISS | Retencao_OUTROS | Valor_Deducoes | Valor_Desconto_Incondicionado | Valor_Desconto_Condicionado |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0101 | Descrição do serviço prestado | 1000.00 | 00000000000191 | Banco do Brasil SA | 2 | 20.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
Observações
- Para utilizar o cálculo manual, utilize o modelo de planilha avançada.
- Na planilha, a alíquota do ISS (
Aliquota_ISS) é informada em percentual (ex: 2 para 2%), diferente da API onde o valor é em decimal (0.02). - As mesmas regras de obrigatoriedade da API se aplicam à planilha: se um campo de retenção for preenchido, todos devem ser preenchidos.
Perguntas Frequentes (FAQ)
Qual a diferença entre a alíquota na API e na planilha?
Na API, a alíquota do ISS (issRate) deve ser informada em valor decimal (ex: 2% = 0.02). Na planilha, o campo Aliquota_ISS é informado em percentual (ex: 2% = 2).
O que acontece se eu não informar todos os campos de impostos?
Os campos de impostos seguem regras específicas:
- ISS: Você pode informar somente o campo
issRate(alíquota do ISS). Porém, se informar o campoissAmount(valor do ISS), é obrigatório informar também oissRate, pois eles são correlatos (servicesAmountxissRate=issAmount). - Impostos retidos: Se qualquer campo de retenção for informado (
irWithheld,pisWithheld,cofinsWithheld,csllWithheld,inssWithheld,issWithheld,othersWithheld), todos os campos de retenção devem ser informados, definindo0para os que não se aplicam.
Posso misturar cálculo automático e manual?
Não. Ao informar qualquer campo de imposto na requisição, a plataforma entende que você deseja controlar os valores manualmente. Se você quer que a plataforma calcule automaticamente, não informe nenhum campo de imposto. Consulte o cenário Cálculo Automático de Impostos.
Como sei quais alíquotas aplicar para o meu serviço?
Recomendamos consultar a tabela de alíquotas da prefeitura do município da empresa emissora ou seu contador para identificar as alíquotas corretas para cada tipo de serviço.
Como cadastrar, atualizar ou customizar um imposto?
Para cadastro de imposto, atualização de imposto ou cadastro de imposto customizado para sua empresa, entre em contato com nosso suporte. A equipe de suporte será responsável por realizar essas configurações na plataforma.
Dúvidas adicionais
Caso tenha dúvidas específicas sobre a emissão de notas fiscais com cálculo manual de impostos, entre em contato com nosso suporte ou consulte seu contador para orientações sobre o enquadramento correto da sua empresa.
Relacionados: