No Plugnotas, o envio padrão é feito com somente um serviço declarado por nota, mas é possível compatibilizar o seu JSON de envio de NFS-e para que sejam enviados múltiplos serviços.
Não são todas as cidades que possibilitam que uma NFS-e contenha mais de um elemento de item de serviço. Por isso, antes de compatibilizar o envio de múltiplos serviços em seu sistema e oferecer isso aos clientes, verifique se a prefeitura aceita via webservice esta funcionalidade.
Como compatibilizar o envio para o Plugnotas?
Para enviar mais de um serviço em uma única nota no Plugnotas, é necessário realizar apenas uma mudança estrutural no JSON no nó de serviços, substituindo o que hoje é um objeto "servico" por um array que recebe objetos, utilizando o mesmo nome de campo "servico". Assim, é possível enviar vários objetos de uma só vez (o Plugnotas não limita a quantidade de objetos enviados dentro do array, o que pode limitar a quantidade de serviços é uma eventual regra da prefeitura).
No restante da estrutura da nota, nada vai ser alterado.
Essa estrutura também funciona para o envio de um único objeto. Não é necessário enviar apenas um objeto, sem o array, em caso do cliente optar por enviar apenas um único serviço na nota.
Abaixo, o exemplo de envio de múltiplos objetos dentro do nó "servico", utilizando dados simbólicos:
"servico": [
{
"iss": {
"tipoTributacao": 4,
"exigibilidade": 1,
"retido": false,
"aliquota": 0,
"valor": 0,
"valorRetido": 0
},
"valor": {
"servico": 0.01,
"baseCalculo": 0.01,
"deducoes": 0,
"descontoCondicionado": 0,
"descontoIncondicionado": 0,
"liquido": 0.01
},
"deducao": {
"tipo": 0,
"descricao": "Sem Deduções"
},
"retencao": {
"pis": {
"aliquota": 0,
"valor": 0
},
"cofins": {
"aliquota": 0,
"valor": 0
},
"csll": {
"aliquota": 0,
"valor": 0
},
"inss": {
"aliquota": 0,
"valor": 0
},
"irrf": {
"aliquota": 0,
"valor": 0
},
"outrasRetencoes": 0
},
"tributavel": true,
"codigoCidadeIncidencia": "3170206",
"codigo": "1.01",
"discriminacao": "HOSPEDAGEM DE SITE",
"cnae": "620910001",
"descricaoCidadeIncidencia": "Uberlândia",
"informacoesLegais": "Antecipacao de parcela 12"
},
{
"iss": {
"tipoTributacao": 4,
"exigibilidade": 1,
"retido": false,
"aliquota": 0,
"valor": 0,
"valorRetido": 0
},
"valor": {
"servico": 0.01,
"baseCalculo": 0.01,
"deducoes": 0,
"descontoCondicionado": 0,
"descontoIncondicionado": 0,
"liquido": 0.01
},
"deducao": {
"tipo": 0,
"descricao": "Sem Deduções"
},
"retencao": {
"pis": {
"aliquota": 0,
"valor": 0
},
"cofins": {
"aliquota": 0,
"valor": 0
},
"csll": {
"aliquota": 0,
"valor": 0
},
"inss": {
"aliquota": 0,
"valor": 0
},
"irrf": {
"aliquota": 0,
"valor": 0
},
"outrasRetencoes": 0
},
"tributavel": true,
"codigoCidadeIncidencia": "3170206",
"codigo": "1.01",
"idIntegracao": "20169",
"discriminacao": "SERVICOS EM TI",
"cnae": "620910001",
"descricaoCidadeIncidencia": "Uberlândia",
"informacoesLegais": "Antecipacao de parcela 3"
}
],
O exemplo acima está preenchido com os dados de um exemplo de envio para prefeitura de Uberlândia. Não são necessariamente os campos obrigatórios dos serviços, nem todos os campos possíveis de envio nos dados do serviço. Isso se mantém conformeo objeto do serviço descrito no envio completo da NFS-e na documentação.
As inteligências de totalizadores da API do Plugnotas se mantém, agora considerando todos os objetos do array para fazer as somas de base de cálculo, tributos e valor da nota, por exemplo.
Consigo utilizar serviços cadastrados?
Sim, é possível cadastrar o serviço e utilizar posteriormente no envio múltiplo também. Basta fazer da mesma forma, identificando o serviço pelo ID através do envio simplificado:
"servico" [
{
"id": "5bf75b3819984315f86406cb",
"discriminacao": "Programação de software",
"valor": {
"servico": 39.85
},
{
"id": "9bf00b3819955000f86406cz",
"discriminacao": "Hospedagem de sistema",
"valor": {
"servico": 99.50
}
],
A API vai deixar de aceitar a estrutura de um único serviço?
A API do Plugnotas aceita os dois tipos de envio: múltiplos serviços através de um array e um único serviço através de um objeto. Assim, mesmo com a compatibilização da API para receber múltiplos serviços, o envio de NFS-e com um único item poderá ser feito utilizando ambas as estruturas com array ou objeto.
Atenção: caso você utilize a mesma rota de envio para consultar as notas, fazendo um GET na rota /nfse/{nota}, o retorno virá como um array, mesmo que seja enviado um único serviço.
As demais rotas de consulta não foram alteradas.
Comentários
0 comentário
Por favor, entre para comentar.