Erro "code": "InvalidJson"

Boa tarde.

Estou recebendo o seguinte erro ao enviar o json para emissão de nfs-e:

Raw response for the API
Status code 400

{
    "error": {
        "code": "InvalidJson",
        "message": "Name expected at $.infDPS.serv.cServ.xDescServ"
    }
}

Na requisição está sendo enviada uma string, com a descrição do serviço. Na documentação diz isso:

O que pode estar errado?

Obrigado!

O erro indica que o JSON em si está mal formatado. Não é o conteúdo das propriedades, mas o formato.

Poste aqui, por favor, o trecho do JSON que tem essa propriedade (um pouco antes e um pouco depois).

Você também pode verificar a validade do JSON nesse site também: https://jsonlint.com

Obrigado @wlandgraf. Corrigi o json.

Agora estou recebendo esse erro:

{
    "error": {
        "code": "ValidationFailed",
        "message": "O lote possui notas de prestadores diferentes."
    }
}

O que deve ser?

Grato.

Bom dia, @atendimento

Já verificou se o lote não possui notas de prestadores diferentes?

Confira o CNPJ ou CPF enviado em cada nota. Eles devem ser iguais:

Boa tarde @arimateia. Fiz os ajustes na chamada e o retorno foi o seguinte:

{
    "id": "nfs_3a12386791c84ee3bf6459b30d31b8fa",
    "created_at": "2024-04-27T19:42:13.929Z",
    "status": "processando",
    "ambiente": "homologacao",
    "referencia": "string",
    "DPS": {},
    "mensagens": []
}

Esse retorno (Status 200 OK), significa que a NFS-e foi emitida, correto? Mas o item: “ambiente”: “homologacao” quer dizer que foi apenas teste; não foi emitida de verdade? Para emitir a NFS-e para um cliente preciso mudar o “ambiente” no Console, de “homologação” para “produção”?

Pode me explicar melhor como isso funciona?

Grato!

Boa tarde, @atendimento.

No caso do endpoint de emissão de NFS-e, quer dizer que o pedido de emissão foi recebido pela API da Nuvem Fiscal e será processado de forma assíncrona (atente-se à propriedade status).

Assim, será necessário ficar consultando a nota até que sua situação se altere para alguma que indique o final do processamento.

Segue a lista de valores possíveis:

Documentação completa do endpoint para consulta da NFS-e:
https://dev.nuvemfiscal.com.br/docs/api/#tag/Nfse/operation/ConsultarNfse

Sim, é uma emissão de teste, onde a API da Nuvem Fiscal efetivamente envia o pedido de emissão para o ambiente de homologação da prefeitura.

Correto.

Veja se esse tópico lhe ajuda:

Obrigado @arimateia. Eu fiz uma chamada GET, colocando o “id” que retornou na chamada POST anterior (nfs_3a12386791c84ee3bf6459b30d31b8fa). Mas retornou o seguinte erro:

{
“error”: {
“code”: “NfseNotFound”,
“message”: “Nota não encontrada.”
}
}

Minha chamada está assim (Json):

O header está assim:

A pergunta é: Se a chamada POST retornou Status 400 OK e “status: processando”, como agora na consulta, retorna um erro (“Nota não encontrada”)? Não entendi.

Grato pela ajuda.

Bom dia, @atendimento.

Sua requisição está incorreta. Em vez de enviar o parâmetro id no corpo da requisição, você deve enviá-lo na URL:

GET /nfse/nfs_3a12386791c84ee3bf6459b30d31b8fa

Bom dia @arimateia. Obrigado pelo retorno.

Refiz a chamada e retornou esse erro:

{
“id”: “nfs_3a12386791c84ee3bf6459b30d31b8fa”,
“created_at”: “2024-04-27T19:42:13.929Z”,
“status”: “erro”,
“ambiente”: “homologacao”,
“referencia”: “string”,
“DPS”: {
“serie”: “1”,
“nDPS”: “1”
},
“mensagens”: [
{
“codigo”: “X800”,
“descricao”: “Erro de Validação: → 1824 - Element ‘{http://nfse.abase.com.br/nfse.xsd}CodigoTributacaoMunicipio’: ‘string’ is not a valid value of the atomic type ‘{http://nfse.abase.com.br/nfse.xsd}tsCodigoTributacao’.\n”
}
]
}

Será um erro com o sistema da prefeitura? Ou o quê? Alguma ideia?

Grato.

@atendimento

Você enviou um valor inválido para o código de tributação do município (“string”).

Certo, obrigado. Verifiquei aqui e o código é “0”. Mas onde na documentação eu localizo esse item, isto é, no Json? Fiquei um pouco perdido aqui.

Obrigado!

Propriedade infDPS.serv.cServ.cTribMun:

Segue a documentação completa:
https://dev.nuvemfiscal.com.br/docs/api#tag/Nfse/operation/EmitirNfseDps

Boa tarde @arimateia. Fiz os ajustes e reenvie as chamadas e por fim na última retornou o seguinte:

{
“id”: “nfs_3a12426ae4c045d385dd94cbd4d1e9ac”,
“created_at”: “2024-04-29T18:22:03.952Z”,
“status”: “negada”,
“ambiente”: “producao”,
“referencia”: “string”,
“DPS”: {
“serie”: “1”,
“nDPS”: “1”
},
“mensagens”:
}

Retornou status: “negada” e nenhum motivo na mensagem. Como posso saber o motivo e como corrigir isso?

Obrigado!

Olá, bom dia!

Alguém pode me ajudar com isso:

{
“id”: “nfs_3a12426ae4c045d385dd94cbd4d1e9ac”,
“created_at”: “2024-04-29T18:22:03.952Z”,
“status”: “negada”,
“ambiente”: “producao”,
“referencia”: “string”,
“DPS”: {
“serie”: “1”,
“nDPS”: “1”
},
“mensagens”:
}

Retornou status: “negada” e nenhum motivo na mensagem. Como posso saber o motivo e como corrigir isso?

Obrigado!

Bom dia, @atendimento.

Iremos analisar. Favor aguardar.

@atendimento

Consultando agora, vimos que a nota está autorizada. Você fez alguma sincronização?

Bom dia, @arimateia. Sim, enquanto aguardava, fiz uma sincronização e depois de ajustar nrs de lote e rps, consegui a autorização da nfs-e.

Agora estou fazendo mais alguns ajustes no Json, pois alguns dados apareceram fora de lugar no layout da nf.

@arimateia, nos campos do Json, onde os dados são do tipo: “string” e não forem obrigatórios, posso enviar: “” (vazio)?

Porque quando deixo: “string”, na NFS-e está sendo impresso “string”, mas quero que fique em branco, caso o dado não tenha sido informado.

Veja como está:

String

Obrigado!

Se o campo não é obrigatório você pode simplesmente omitir ele do JSON.

Obrigado @wlandgraf. Resolveu esse ponto.

Tem mais uma coisa que não estou sabendo resolver.

No Exigibilidade da NFS-e está aparecendo a descrição: “Exigibilidade suspensa por decisão judicial”. Mas o correto seria: “Exigível” e aparecer nos campos “Alíquota” o percentual do ISS (3% no meu caso) e no campo “Valor ISS” o valor do imposto.

Veja como está saindo:

Como deveria sair:

Pode me ajudar a ver, onde no Json, eu tenho que mudar pra corrigir isso? Acredito que o problema esteja nesse trecho:

Nesse trecho, meu Json está assim:
},
“exigSusp”: {
“tpSusp”: 1,
“nProcesso”: “000000000000000000000000000000”
},

Já tentei colocar outro valor em “tpSusp”, mas retorna um erro dizendo que o valor deve ser 1, 2.

Como resolver isso?

Obrigado!