Erro ao fazer a integração: Status code 415

Pessoal, alguém tem um exemplo de integração com a API no Insomnia ou de preferência no API Conector do Bubble? Tentando obter o token de acesso está retornando o seguinte erro:

There was an issue setting up your call.

Raw response for the API
Status code 415

{
    "error": {
        "code": "UnsupportedMediaType",
        "message": "Unsupported media type: application/json"
    }
}

Se possível deixem um exemplo usando o Insomnia usando API Consultar CNPJ, funcionando essas duas eu consigo implementar as demais para emissão de NFSe.
Grato.

Se você está tentando obter um token, as chamadas que você precisa fazer estão descritas aqui:

Basta seguir as orientações. Como a API da Nuvem Fiscal segue o padrão OAuth para obtenção do token, provavelmente o Insomnia tem algum recurso mais alto nível pra isso. Mas para isso você precisa então conhecer a ferramenta. Eu pessoalmente não tenho familiaridade com ela.

Olá Wagner, consegui pegar o token pelo Insomnia menos pela minha aplicação, vou mostrar algumas imagens, quem sabe você consiga me ajudar amanhã.

Tipo de form: Form URL enconded
Auth: No Authentication
Headers: Content-Type: application/x-www-form-urlencoded
Funcionou conforme imagem acima, menos em minha aplicação que retorna o erro
“There was an issue setting up your call.
could not find property iss for authenticator of service apiconnector2, and property iss is not set as optional”.
Traduzindo: “Houve um problema a preparar a sua chamada.
não conseguiu encontrar iss de propriedade para autenticador de serviço apiconnector2, e iss de propriedade não está definido como opcional”
Em fim, de posse do token com validade de 30 dias (2592000’s) tentei fazer uma consulta de CNPJ e retorna o erro:

{
	"error": {
		"code": "InsufficientPermissions",
		"message": "You do not have enough permissions to perform this action"
	}
}

, veja imagem do Insomnia:

Aqui percebi que estava usando a URL sandbox para consultar o CNPJ, fiz a correção para a URL
https://api.nuvemfiscal.com.br/cnpj/… e retornou uma mensagem estranha:

“JWT (claims: {“scope”:“nfse”,“jti”:“75596fa6-5e24-48b6-8d9e-defa5f597b1a”,“https://nuvemfiscal.com.br/tenant_id”:“3a0a7d78-d0f1-486c-91ed-07caf03b3092”,“iss”:“https://auth.nuvemfiscal.com.br”,“aud”:“https://api.sandbox.nuvemfiscal.com.br/”,“exp”:1683655188,“iat”:1681063188,“client_id”:“W4XZgfZhlgvXPfColr9s”}) rejected due to invalid claims.
Validation errors:
Audience [aud] claim doesn’t contain an acceptable identifier. Expected [https://api.nuvemfiscal.com.br/] as aud value.”

Quanto a minha aplicação, essas são os tipos de autorizações que permite:


Tentei quase todas, principalmente a “OAuth2 Custom Token” sem sucesso.

Pessoal, só para reportar e fechar esta dúvida: Resolvi como pegar o “access_token” e integrar as outras API’s, de uma forma bem peculiar que tanto a documentação da nuvem e o manual da aplicação não explicam, acho que cada aplicação tem um jeito próprio de executar o “padrão” de autenticação.
Ficou assim:
Na Autenticação: Nenhum
Data Type: JSON
POST URL https://auth.nuvemfiscal.com.br/oauth/token
Headers: Key: Content-Type Value: application/x-www-form-urlencoded
Body type: JSON
Parameters: Nenhum
Body: client_id=Ws&client_secret=K*&scope=cnpj nfse&grant_type=client_credentials

E voiláh tudo ok.
Teste o GET CNPJ https://api.sandbox.nuvemfiscal.com.br/cnpj/[cnpj]
Headers: Key: Authorization Value: Bearer my access_token******
Também funcionou!

O erro de “insufficient permissions” aconteceu porque você pediu um token com scope nfse e depois tentou fazer uma consulta de CNPJ. Para isso você precisaria pedir um token que tivesse o scope cnpj, o que foi feito na sua segunda tentativa.

Quanto à obtenção do token, é isso aí mesmo, e está explicado em detalhes na documentação neste capítulo sobre autenticação, incluindo a parte do scope mencionada acima. A sua solução inclusive está mostrada quase que exatamente igual, na seção “Exemplo de requisição para obtenção do token”:

1 curtida

Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.