---
updatedAt: 2026-02-20T17:57:26.000Z
agentTools:
  projectIndex: https://docs.melhorenvio.com.br/llms.txt
---

# Fluxo de Autorização

Criação de um aplicativo no Painel do Melhor Envio

<div style={{ textAlign: "justify" }}>
  # Autenticação

  A autenticação deve ser realizada através da criação de um aplicativo no [Painel](https://melhorenvio.com.br/painel) do Melhor Envio em "Integrações" > "Área Dev.", sendo que este aplicativo valerá para que a plataforma possa gerenciar os tokens de maneira que o usuário da plataforma não precise se preocupar com isto.

  Através do aplicativo, o usuário apenas dará permissão para que a plataforma possa realizar requisições conforme as permissões concedidas. O usuário não deverá possuir acesso aos dados do aplicativo.

  No formulário de cadastro de aplicativo, é necessário que sejam preenchidos com atenção todos os campos.

  É de suma importância que o campo de callback seja idêntico a URL de callback de retorno da sua aplicação. Caso este campo esteja diferente, nossa API irá retornar `Client invalid` impedindo a autorização do aplicativo.

  A autenticação é baseada no padrão [OAuth2](https://www.oauth.com/).

  Também disponibilizamos um [fluxograma](https://melhorenvio.s3.sa-east-1.amazonaws.com/partners/manual/Diagrama+de+integra%C3%A7%C3%A3o+-+Fluxograma+de+autentica%C3%A7%C3%A3o+por+App.pdf) que poderá lhe auxiliar a visualizar este processo, assim como servir de base para que você adapte da melhor maneira ao fluxo de seu sistema.

  Para uma documentação mais descritiva sobre como integrar o fluxo de autenticação, [clique aqui](https://melhorenvio.readme.io/docs/autenticacao) para consultar o respectivo tópico de nossa nova documentação.

  # Autorização

  Após o cadastro do aplicativo, serão fornecidas duas informações que serão essenciais no desenvolvimento do processo de autenticação com a API para solicitar a autorização dos usuários, estas informações são o Client ID e o Secret.

  > 📘
  >
  > Para Criar um novo app, basta clicar em “Cadastrar Aplicativo” no [painel Area Dev.](https://app.melhorenvio.com.br/integracoes/area-dev) e preencher o formulário com as informações solicitadas.

  > 📘
  >
  > Dentre as informações que requerem maior cuidado estão o nome do aplicativo (que deve ser alusivo ao nome da plataforma) e a redirect uri ou callback (url para onde o usuário é redirecionado após autorizar o aplicativo).

  Para dar início a solicitação de autorização do aplicativo, deve-se realizar um redirect pelo navegador utilizando a URL de redirecionamento, informando os seguintes parâmetros:

  * O Client ID (fornecido após cadastro do app);
  * A URL de redirecionamento (cadastrado no app);
  * As permissões (separado por espaço).

  ## Lista de permissões

  ### (solicitar apenas as permissões necessárias para sua integração)

  | Permissões           | Descrição                                                 |
  | :------------------- | :-------------------------------------------------------- |
  | `cart-read`          | Visualização dos itens do carrinho                        |
  | `cart-write`         | Cadastro e edição dos itens do carrinho                   |
  | `companies-read`     | Visualização das informações de empresas                  |
  | `companies-write`    | Cadastro e edição das informações de empresas             |
  | `coupons-read`       | Visualização dos cupons cadastrados                       |
  | `coupons-write`      | Cadastro de novos cupons                                  |
  | `notifications-read` | Visualização das notificações                             |
  | `orders-read`        | Visualização das etiquetas                                |
  | `products-read`      | Visualização de produtos                                  |
  | `products-write`     | Cadastro e edição de produtos                             |
  | `purchases-read`     | Visualização das compras                                  |
  | `shipping-calculate` | Cotação de fretes                                         |
  | `shipping-cancel`    | Cancelamento de etiquetas                                 |
  | `shipping-checkout`  | Checkout para compra de fretes, utiliza saldo da carteira |
  | `shipping-companies` | Consulta de transportadoras                               |
  | `shipping-generate`  | Geração de novas etiquetas                                |
  | `shipping-preview`   | Pré-visualização de etiquetas                             |
  | `shipping-print`     | Impressão de etiquetas                                    |
  | `shipping-share`     | Compartilhamento de etiquetas                             |
  | `shipping-tracking`  | Status do ciclo de vida da etiqueta                       |
  | `ecommerce-shipping` | Cotação e compra de fretes para sua loja                  |
  | `transactions-read`  | Visualização das transações da carteira                   |
  | `users-read`         | Visualização das informações pessoais                     |
  | `users-write`        | Edição das informações pessoais                           |

  Ao acessar o fluxo de Autorização o usuário deverá autorizar a solicitação de acesso, ao final do fluxo será redirecionado para o endereço cadastrado no redirect\_uri com o parâmetro CODE informado na barra de endereços do navegador.
  O CODE retornado neste redirecionamento é o mesmo que deverá ser enviado para requisição de Solicitação do Token.

  Abaixo um exemplo de como a URL de redirecionamento deve ser montada:

  `{{url}}/oauth/authorize?client_id={{client_id}}&redirect_uri={{callback}}&response_type=code&state=teste&scope={{permissao1}} {{permissao2}}`

  > 🚧 Nota:
  >
  > * Essa rota deve ser chamada através de um redirect padrão pelo navegador;
  >
  > * A URL de callback(redirect\_uri) deve ser estática e conforme configurada no app.

  Caso deseje passar algum argumento, é possível passar o campo `state` com o valor desejado para que retorne junto ao `code`, o campo `state` é passado do mesmo modo que o Client ID, a URL de redirecionamento e as demais informações.

  Abaixo um exemplo com todas as permissões e parâmetro `state`:

  `{{url}}/oauth/authorize?client_id={{client_id}}&redirect_uri={{callback}}&response_type=code&state=teste&scope=cart-read cart-write companies-read companies-write coupons-read coupons-write notifications-read orders-read products-read products-write purchases-read shipping-calculate shipping-cancel shipping-checkout shipping-companies shipping-generate shipping-preview shipping-print shipping-share shipping-tracking ecommerce-shipping transactions-read users-read users-write`
</div>