Fluxo de Autorização

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

Autenticação

A autenticação deve ser realizada através da criação de um aplicativo no Painel do Melhor Envio, 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.

Também disponibilizamos um fluxograma 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 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. 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õesDescrição
cart-readVisualização dos itens do carrinho
cart-writeCadastro e edição dos itens do carrinho
companies-readVisualização das informações de empresas
companies-writeCadastro e edição das informações de empresas
coupons-readVisualização dos cupons cadastrados
coupons-writeCadastro de novos cupons
notifications-readVisualização das notificações
orders-readVisualização das etiquetas
products-readVisualização de produtos
products-writeCadastro e edição de produtos
purchases-readVisualização das compras
shipping-calculateCotação de fretes
shipping-cancelCancelamento de etiquetas
shipping-checkoutCheckout para compra de fretes, utiliza saldo da carteira
shipping-companiesConsulta de transportadoras
shipping-generateGeração de novas etiquetas
shipping-previewPré-visualização de etiquetas
shipping-printImpressão de etiquetas
shipping-shareCompartilhamento de etiquetas
shipping-trackingRastreio de fretes
ecommerce-shippingCotação e compra de fretes para sua loja
transactions-readVisualização das transações da carteira
users-readVisualização das informações pessoais
users-writeEdiçã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