Inicio
Documentação
Recursos
Parcerias
Comunidade

Parcerias

Conheça nosso programa para agĂȘncias ou desenvolvedores que oferecem serviços de integração e vendedores que desejam contratĂĄ-los.

Comunidade

Fique por dentro das Ășltimas novidades, peça ajuda a outros integradores e compartilhe seu conhecimento.

Obter Access Token - OAuth - Mercado Pago Developers

Busca inteligente powered by OpenAI 

Obter Access Token

Saiba como utilizar os fluxos, tambĂ©m conhecidos como grant types, para obter um Access Token e acessar os dados expostos por uma API. A existĂȘncia desses fluxos surge para responder a todos os cenĂĄrios de negĂłcios que podem surgir no consumo de APIs com base no tipo de aplicação consumidora, seu grau de confiança e como Ă© a interação do usuĂĄrio no processo.

Os fluxos de acesso disponíveis para geração do Access Token são:

  • Authorization code: quando se for usar as credenciais para acessar um recurso em nome de terceiros.
  • Client credentials: quando se for usar as credenciais para acessar um recurso em nome prĂłprio.
Importante
Caso um Access Token gerado a partir do fluxo Authorization code esteja invalido ou expirado, vocĂȘ poderĂĄ utilizar o fluxo Refresh Token para trocar um concessĂŁo temporĂĄria do tipo refresh_token por um Access Token. Ou seja, permite que o Access Token seja atualizado sem a necessidade de interação do usuĂĄrio novamente apĂłs a autorização concedida. Para mais informaçÔes, acesse Renovar Access Token .

Authorization code

O fluxo se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um refresh token associado.

Por ser um fluxo baseado em redirecionamento, vocĂȘ deve ser capaz de permitir interação com o navegador do vendedor e de receber o request atravĂ©s do redirecionamento por parte do servidor de autorização. Neste fluxo, a aplicação solicita ao vendedor o consentimento expresso para acessar os dados atravĂ©s da abertura de uma pĂĄgina web que deixa explĂ­cito os scopes aos quais se estĂĄ solicitando acesso.

Importante
Lembre que vocĂȘ vai utilizar informaçÔes sensĂ­veis dos seus vendedores. Certifique-se de resguardĂĄ-las de maneira segura. NĂŁo as utilize na URL de autenticação e gerencie todo processo somente a partir do seu servidor.

Uma vez permitido o acesso, o servidor gera um código de acesso que mediante um redirecionamento chega à aplicação. Nesta etapa, a aplicação solicita acesso ao servidor de autenticação enviando o código obtido e os dados da aplicação. Feito isso, o servidor concede o Access Token e o refresh token à aplicação.

Veja abaixo como configurar o protocolo PKCE (um protocolo de segurança não obrigatório que oferece uma camada extra de proteção, por isso é recomendado) e, em seguida, gerar o Access Token.

Configurar PKCE

O PKCE (Proof Key for Code Exchange) Ă© um protocolo de segurança usado com OAuth para proteger contra ataques de cĂłdigo malicioso durante a troca de cĂłdigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um verifier que Ă© transformado em um challenge para garantir que mesmo se o cĂłdigo de autorização for interceptado, ele nĂŁo seja Ăștil sem o verifier original.

Siga os passos abaixo para habilitar e configurar o uso o fluxo de código de autorização com o PKCE.

  1. Primeiramente, na tela de Detalhes de aplicação, clique em Editar e habilite o uso o fluxo de código de autorização com o PKCE. Com o campo habilitado, o Mercado Pago passarå a requerer como obrigatórios os campos code_challenge e code_method nas requisiçÔes de OAuth.
  2. Os campos exigidos poderão ser gerados de vårias formas, com desenvolvimento próprio ou uso de SDKs. Siga os passos necessårios descritos nesta documentação oficial para gerar os campos que serão requeridos.
  3. Após gerar e criptografar os campos, serå necessårio enviar os respectivos códigos ao Mercado Pago. Para isso, envie via query_params utilizando a URL de autenticação abaixo.

URL

https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD
  • Redirect_uri: URL informada no campo "Redirect URL" da sua aplicação.
  • Code_verifier: cĂłdigo que deverĂĄ ser gerado, respeitando seus requisitos para funcionamento, sendo eles: uma sequĂȘncia aleatĂłria de caracteres que tenham entre 43-128 caracteres, com letras maiĂșsculas, minĂșsculas, nĂșmeros e alguns caracteres especiais. Por exemplo: 47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU.
  • Code_challenge: em seguida, Ă© necessĂĄrio criar um code_challenge a partir do code_verifier usando uma das seguintes transformaçÔes:
    • Se for possĂ­vel utilizar S256, serĂĄ necessĂĄrio usar essa opção transformando o code_verifier em um code_challenge atravĂ©s de uma codificação BASE64URL apĂłs aplicar a função "SHA256".
    • Se nĂŁo for possĂ­vel usar S256 por algum motivo tĂ©cnico e o servidor suportar o mĂ©todo Plain, Ă© possĂ­vel definir o code_challenge igual ao code_verifier.
  • Code_challenge_method: Ă© o mĂ©todo utilizado para gerar o code_challenge, conforme descrito no item acima. Este campo poderĂĄ ser, por exemplo, S256 ou Plain, de acordo com a codificação selecionada na etapa de code_challenge.
  1. Tendo enviado os cĂłdigos corretamente ao Mercado Pago, vocĂȘ obterĂĄ a autorização necessĂĄria (code_verifier) para obter o Access Token e realizar a verificação por PKCE nas transaçÔes feitas com OAuth.

Obter token

O Access Token Ă© o cĂłdigo utilizado em diferentes requests pĂșblicos para acessar um recurso protegido. Nesse fluxo, ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo scopes e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtĂȘ-lo.

Atenção
É recomendado realizar este procedimento por completo de uma Ășnica vez em conjunto com o usuĂĄrio, visto que o cĂłdigo recebido pela "URL de redirecionamento" apĂłs a autorização tem validade de 10 minutos e o Access Token recebido atravĂ©s do endpoint tem validade de 180 dias (6 meses).
  1. Edite sua aplicação para conter suas URLs de redirecionamento. Veja Editar aplicação.

  2. Envie a URL de autenticação para o vendedor cuja conta vocĂȘ deseja vincular Ă  sua com os seguintes campos:

    Authentication_URL

    https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com
    CampoDescrição
    Client_idSubstitua o valor "APP_ID" com a nĂșmero da sua aplicação. Veja Detalhes da aplicação para mais informaçÔes.
    StateSubstitua o valor "RANDOM_ID" por um identificador que seja Ășnico para cada tentativa e que nĂŁo inclua informaçÔes sensĂ­veis, de forma que vocĂȘ consiga identificar de quem Ă© o cĂłdigo recebido. Isso garantirĂĄ que a resposta pertença a uma solicitação iniciada pelo mesmo aplicativo.
    Redirect_uriAdicione a URL informada no campo "URLs de redirecionamento" da sua aplicação. Certifique-se de que o redirect_uri seja uma URL eståtica. Veja Detalhes da aplicação para mais informaçÔes.
    Se desejar enviar parùmetros adicionais em redirect_uri, utilize o parùmetro state para incluir essas informaçÔes. Caso contrårio, a chamada receberå uma resposta de erro se a URL não corresponder exatamente à configuração do aplicativo.
  3. Aguarde o vendedor acessar a URL e permitir o acesso. Ao acessar a URL o vendedor serå direcionado para o Mercado Pago e deverå realizar o login na conta dele para realizar a autorização.

  4. Verifique na URL de redirecionamento do seu servidor o código de autorização retornado no parùmetro code.

    Redirect_URL

    https://www.redirect-url.com?code=CODE&state=RANDOM_ID 
  5. Envie as suas credenciais (client_id e client_secret), o código de autorização (code) retornado e, caso tenha configurado o PKCE, o code_verifier ao endpoint /oauth/token para receber como resposta o Access Token.

          
<?php
  $client = new OauthClient();
   $request = new OAuthCreateRequest();
     $request->client_secret = "CLIENT_SECRET";
     $request->client_id = "CLIENT_ID";
     $request->code = "CODE";
     $request->redirect_uri = "REDIRECT_URI";

  $client->create($request);
?>

        
          
OauthClient client = new OauthClient();

String authorizationCode = "TG-XXXXXXXX-241983636";
client.createCredential(authorizationCode, null);

        
          
const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); 

const oauth = new OAuth(client);

oauth.create({
	'client_secret': 'your-client-secret',
	'client_id': 'your-client-id',
	'code': 'return-of-getAuthorizationURL-function',
	'redirect_uri': 'redirect-uri'
}).then((result) => console.log(result))
	.catch((error) => console.log(error));

        
          
curl -X POST \
    'https://api.mercadopago.com/oauth/token'\
    -H 'Content-Type: application/json' \
    -d '{
  "client_id": "client_id",
  "client_secret": "client_secret",
  "code": "TG-XXXXXXXX-241983636",
  "grant_type": "authorization_code",
  "redirect_uri": "APP_USR-4934588586838432-XXXXXXXX-241983636",
  "refresh_token": "TG-XXXXXXXX-241983636",
  "test_token": "false"
}'

        
Para gerar credenciais de sandbox para a realização de testes, envie o parùmetro test_token com valor true.

Client credentials

Este fluxo é utilizado quando as aplicaçÔes solicitam um Access Token usando apenas as suas próprias credenciais e para acessar seus próprios recursos. A principal diferença em relação aos outros fluxos é que o usuårio não interage no processo e, consequentemente, a aplicação não pode atuar em nome do usuårio.

Obter token

O Access Token Ă© o cĂłdigo utilizado em diferentes requests pĂșblicos para acessar um recurso protegido. Neste fluxo, obtĂ©m-se o Access Token sem interação do usuĂĄrio e apenas para acessar seus prĂłprios recursos.

Siga os passos abaixo para obtĂȘ-lo.

  1. Envie as suas credenciais (client_id e client_secret) ao endpoint /oauth/token com o cĂłdigo client_credentials no parĂąmetro grant_type para receber uma nova resposta com o access_token.
  2. Atualize a aplicação com o Access Token recebido na resposta.
Atenção
O token recebido tem validade de 6 horas. Não esqueça de renovå-lo antes do período de expiração para que suas aplicaçÔes sigam funcionando corretamente.
          
<?php
  $client = new OauthClient();
   $request = new OAuthCreateRequest();
     $request->client_secret = "CLIENT_SECRET";
     $request->client_id = "CLIENT_ID";

  $client->create($request);
?>

        
          
const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); 

const oauth = new OAuth(client);

oauth.create({
	'client_secret': 'your-client-secret',
	'client_id': 'your-client-id',
}).then((result) => console.log(result))
	.catch((error) => console.log(error));

        
          
curl -X POST \
    'https://api.mercadopago.com/oauth/token'\
    -H 'Content-Type: application/json' \
    -d '{
  "client_id": "client_id",
  "client_secret": "client_secret",
  "grant_type": "client_credentials",
}'