Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Obtener Access Token - OAuth - Mercado Pago Developers

BĂșsqueda inteligente powered by OpenAI 

Obtener Access Token

Aprende a utilizar los flujos, también conocidos como grant types, para obtener un Access Token y acceder a los datos expuestos por una API. Estos flujos responden a todos los escenarios de negocios que pueden aparecer en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso.

Los flujos de acceso disponibles para la generaciĂłn del Access Token son:

  • Authorization code: se van a usar credenciales para acceder a un recurso a nombre de un tercero.
  • Client credentials: se van a usar credenciales para acceder a un recurso en nombre propio.
Importante
Si un Access Token generado a partir del flujo Authorization code es invålido o ha expirado, podrås utilizar el flujo Refresh Token para intercambiar una concesión temporal del tipo refresh_token por un Access Token. Esto permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para mås información, visita la documentación Renovar Access Token .

Authorization code

Este flujo se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos, y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. Como se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el request a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una pågina web, en la que se explicitan los åmbitos para los que se solicita el acceso.

Importante
Recuerda que utilizarĂĄs informaciĂłn sensible de tus vendedores. AsegĂșrate de guardarla de forma segura. No la utilices en la URL de autenticaciĂłn y gestiona todo el proceso Ășnicamente desde tu servidor.

Una vez autorizado, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y sus datos. Una vez hecho esto, el servidor otorga el Access Token y el refresh token a la aplicación.

Mira a continuaciĂłn cĂłmo configurar el protocolo PKCE (un protocolo de seguridad no obligatorio que brinda una capa de protecciĂłn extra, por lo que es recomendado) y luego generar el Access Token.

Configurar PKCE

El PKCE (Proof Key for Code Exchange) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de cĂłdigo malicioso durante el intercambio de cĂłdigos de autorizaciĂłn por Access Token. Añade una capa adicional de seguridad generando un verifier que se transforma en un challenge para asegurar que, incluso si el cĂłdigo de autorizaciĂłn es interceptado, no sea Ăștil sin el verifier original.

Siga los pasos a continuaciĂłn para habilitar y configurar el uso del flujo de cĂłdigo de autorizaciĂłn con PKCE.

  1. Primero, en la pantalla de Detalles de la aplicaciĂłn, haz clic en Editar y habilite el uso del flujo de cĂłdigo de autorizaciĂłn con PKCE. Con el campo habilitado, Mercado Pago comenzarĂĄ a requerir como obligatorios los campos code_challenge y code_method en las solicitudes de OAuth.
  2. Los campos requeridos pueden generarse de varias formas, ya sea con desarrollo propio o mediante el uso de SDKs. Sigue los pasos necesarios descritos en esta documentaciĂłn oficial para hacerlo.
  3. DespuĂ©s de generar y cifrar los campos, serĂĄ necesario enviar los cĂłdigos respectivos a Mercado Pago a travĂ©s de query_params. Para eso, utiliza la URL de autenticaciĂłn presentada a continuaciĂłn, reemplazando los campos necesarios segĂșn se describen debajo.

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 proporcionada en el campo "URLs de redireccionamiento" de tu aplicaciĂłn.
  • Code_verifier: cĂłdigo que debe generarse, respetar los requisitos para su funcionamiento; es decir, ser una secuencia aleatoria de caracteres con una longitud de entre 43 y 128 caracteres, que incluya letras mayĂșsculas, minĂșsculas, nĂșmeros y algunos caracteres especiales. Por ejemplo: 47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU.
  • Code_challenge: a continuaciĂłn, es necesario crear un code_challenge, a partir del code_verifier, utilizando una de las siguientes transformaciones:
  • Si es posible utilizar S256, serĂĄ necesario seleccionar esta opciĂłn transformando el code_verifier en un code_challenge mediante una codificaciĂłn BASE64URL despuĂ©s de aplicar la funciĂłn "SHA256".
  • Si no es posible utilizar S256 por alguna razĂłn tĂ©cnica, y el servidor admite el mĂ©todo Plain, es posible definir el code_challenge igual al code_verifier.
  • Code_challenge_method: es el mĂ©todo utilizado para generar el code_challenge, segĂșn se describe en el Ă­tem anterior. Este campo puede ser, por ejemplo, S256 o Plain, dependiendo de la codificaciĂłn seleccionada en la etapa de code_challenge.

  1. Después de enviar correctamente los códigos a Mercado Pago, obtendrås la autorización necesaria (code_verifier) para obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth.

Obtener token

El Access Token es el cĂłdigo utilizado en diferentes solicitudes de origen pĂșblico para acceder a un recurso protegido. En este flujo, representa una autorizaciĂłn otorgada por un vendedor a una aplicaciĂłn cliente, que contiene scopes y un tiempo de vigencia limitado para dicho acceso, y se concede por medio de una URL de redirecciĂłn

Sigue los pasos a continuaciĂłn para obtenerlo.

AtenciĂłn
Se recomienda realizar este procedimiento de una Ășnica vez junto con el usuario, ya que el cĂłdigo recibido por la "URL de redireccionamiento" despuĂ©s de la autorizaciĂłn tiene una validez de 10 minutos y el Access Token recibido a travĂ©s del endpoint tiene una validez de 180 dĂ­as (6 meses).
  1. Edita tu aplicaciĂłn para que contenga tu URLs de redireccionamiento. Consulta Editar aplicaciĂłn.

  2. EnvĂ­a la URL de autenticaciĂłn con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya:

    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
    CamposDescripciĂłn
    Client_idReemplaza el valor "APP_ID" con el nĂșmero de su aplicaciĂłn. Consulta Detalles de la aplicaciĂłn para mĂĄs informaciĂłn.
    StateReemplaza el valor "RANDOM_ID" con un identificador que sea Ășnico para cada intento y que no incluya informaciĂłn sensible, de forma que pueda identificar de quiĂ©n es el cĂłdigo recibido. AsĂ­, podrĂĄs garantizar que la respuesta pertenezca a una solicitud iniciada por la misma aplicaciĂłn.
    Redirect_uriAgrega la URL informada en el campo "URLs de redireccionamiento" de su aplicaciĂłn. AsegĂșrate de que el redirect_uri sea una URL estĂĄtica. Consulta Detalles de la aplicaciĂłn para mĂĄs informaciĂłn.
    Si deseas enviar parĂĄmetros adicionales en redirect_uri, utiliza el parĂĄmetro state para incluir esa informaciĂłn. De lo contrario, la llamada recibirĂĄ una respuesta de error si la URL no coincide exactamente con la configuraciĂłn de la aplicaciĂłn.
  3. Espera a que el vendedor acceda a la URL y permita el acceso. Al ingresar a la URL, el vendedor serĂĄ dirigido a Mercado Pago y deberĂĄ iniciar sesiĂłn en su cuenta para realizar la autorizaciĂłn.

  4. Verifica la URL de redireccionamiento de tu servidor para ver el cĂłdigo de autorizaciĂłn devuelto en el parĂĄmetro de code.

    Redirect_URL

    https://www.redirect-url.com?code=CODE&state=RANDOM_ID 
  5. EnvĂ­a tus credenciales (client_id y client_secret), el cĂłdigo de autorizaciĂłn que fue devuelto en la propiedad code y, si has configurado el PKCE, el valor code_verifier al endpoint /oauth/token para recibir el Access Token como respuesta.

          
<?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 generar credenciales de sandbox para pruebas, envĂ­a el parĂĄmetro test_token con el valor true.

Client credentials

Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales y para acceder a sus propios recursos. La principal diferencia con respecto a los otros flujos es que el usuario no interactĂșa en el proceso y, por lo tanto, la aplicaciĂłn no puede actuar en su nombre.

Obtener token

Access Token es el cĂłdigo utilizado en diferentes solicitudes de origen pĂșblico para acceder a un recurso protegido. En este flujo, se obtiene el Access Token sin interacciĂłn del usuario y solo para acceder a sus propios recursos.

Sigue los pasos a continuaciĂłn para obtenerlo.

  1. EnvĂ­a tus credenciales (client_id y client_secret) al endpoint /oauth/token, incluyendo el cĂłdigo client_credentials en el parĂĄmetro grant_type para recibir una nueva respuesta con un nuevo access_token.
  2. Actualiza la aplicaciĂłn con el Access Token recibido en la respuesta.
AtenciĂłn
El token recibido tiene una validez de 6 horas. No olvides renovarlo antes de este perĂ­odo de expiraciĂłn para que sus aplicaciones sigan funcionando correctamente.
          
<?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",
}'