Configurar a vinculação
A vinculação é a autorização concedida pelo comprador que permite ao vendedor debitar pagamentos diretamente da carteira do Mercado Pago, sem que seja necessário realizar login a cada transação. Trata-se da primeira etapa da integração com o Wallet Connect e é obrigatória antes de processar qualquer pagamento.
O fluxo é composto por três etapas: criar a vinculação, obter a aprovação do comprador e gerar o token de pagamento. Ao concluí-lo, você terá o payer_token, credencial que autoriza as cobranças descritas na seção Processar pagamentos.
A criação da vinculação gera o link de autorização que deve ser apresentado ao comprador para que ele conceda ao vendedor o acesso à sua carteira do Mercado Pago. Há dois fluxos disponíveis: Padrão, no qual o comprador conclui a autorização no navegador, e Sniffing, que tenta abrir a autorização diretamente no aplicativo do Mercado Pago em dispositivos móveis. Compare as opções abaixo e escolha a que melhor se adequa à sua integração.
No fluxo padrão, o comprador autoriza o acesso à sua carteira do Mercado Pago no navegador e pode precisar fazer login manualmente.
Para criar uma vinculação sem redirecionar o comprador para o aplicativo do Mercado Pago, envie uma solicitação ao endpoint /v2/wallet_connect/agreementsPOST, incluindo seu Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`. e os parâmetros indicados abaixo.
curlcurl -X POST \ 'https://api.mercadopago.com/v2/wallet_connect/agreements' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}' \ -d '{ "return_uri": "https://www.mercadopago.com/", "external_flow_id": "{{EXTERNAL_FLOW_ID}}", "external_user": { "id": "usertest", "description": "Test account" }, "agreement_data": { "validation_amount": 3.14, "description": "Test agreement" } }'
Consulte na tabela abaixo as descrições dos parâmetros que são obrigatórios na requisição e daqueles que, embora sejam opcionais, possuem alguma particularidade importante de ser destacada.
| Parâmetro | Tipo | Descrição | Obrigatoriedade |
Authorization | Header | Refere-se ao Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`.. | Obrigatório |
return_uri | Body. String | URI para onde o comprador será redirecionado ao concluir o fluxo de vinculação. É nesse endereço que você receberá o resultado da autorização como query parameters. O limite máximo é de 2048 caracteres e o valor enviado deve corresponder a uma URI previamente registrada para a aplicação. | Obrigatório |
external_flow_id | Body. String | Identificador interno do vendedor para o estado atual do fluxo. Utilize-o para correlacionar o retorno da vinculação com a sessão de compra em seu sistema. O limite máximo é de 64 caracteres. | Obrigatório |
external_user.id | Body. String | Identificador único do comprador no sistema do vendedor. O limite máximo é de 256 caracteres e o valor não deve conter dados sensíveis. | Obrigatório |
external_user.description | Body. String | Identificação do comprador no sistema do vendedor, como o seu nome. O limite máximo é de 256 caracteres. | Opcional |
agreement_data.validation_amount | Body. Number | Valor de referência da vinculação. Caso o saldo em conta do comprador seja insuficiente para cobrir esse valor, um cartão será solicitado como meio de pagamento secundário durante a autorização. Recomendamos enviar um valor próximo ao ticket médio das suas cobranças. | Opcional |
agreement_data.description | Body. String | Descrição das ações que o comprador está prestes a autorizar, exibida durante o fluxo de aprovação. O limite máximo é de 256 caracteres. | Opcional |
Se a solicitação for bem-sucedida, a resposta retornará o status 201 com o identificador da vinculação criada e a URI de autorização a ser apresentada ao comprador.
json{ "agreement_id": "22abcd1235ed497f945f755fcaba3c6c", "agreement_uri": "{{wc_agreement_uri_example}}" }
| Parâmetro | Tipo | Descrição |
agreement_id | String | Identificador único da vinculação criada. Armazene-o, pois ele é necessário para gerar o token de pagamento e para consultar ou cancelar a vinculação. |
agreement_uri | String | URI para a qual o comprador deve ser redirecionado a fim de autorizar o acesso à sua carteira. Consulte a etapa Obter aprovação do comprador para saber como utilizá-la. |
Após criar a vinculação, redirecione o comprador para a agreement_uri retornada na resposta. Nesse endereço, o comprador concede a autorização para que o vendedor utilize a sua carteira do Mercado Pago como meio de pagamento.
Ao finalizar o fluxo, o Mercado Pago redireciona o comprador para a return_uri informada na criação, acrescentando o resultado da operação como query parameters.
- Em caso de autorização concedida, a
return_uriserá chamada no formato abaixo.
plain`{return_uri}?agreement_id={agreement_id}&code={code}&flow=agreement&external_flow_id={external_flow_id}&code_type=validation_code`
- Já em caso de recusa ou cancelamento por parte do comprador, a
return_uriserá chamada no formato abaixo, sem o parâmetrocodee com o parâmetroerror.
plain`{return_uri}?agreement_id={agreement_id}&flow=agreement&external_flow_id={external_flow_id}&error={error}`
| Parâmetro | Tipo | Descrição |
agreement_id | String | Identificador único da vinculação autorizada. |
code | String | Código de autorização utilizado para gerar o token de pagamento. Trata-se de um código alfanumérico de 32 caracteres em letras minúsculas, com janela de validade limitada. |
flow | String | Identifica o fluxo que originou o redirecionamento. Retorna sempre o valor fixo agreement. |
external_flow_id | String | Identificador interno do vendedor, retornado conforme enviado na criação da vinculação. |
code_type | String | Indica o tipo do código retornado. Retorna sempre o valor fixo validation_code. |
error | String | Motivo pelo qual a vinculação não foi concluída. Retorna o valor fixo access_denied, que indica que o comprador rejeitou ou cancelou a autorização. |
O token de pagamento (payer_token) é a credencial que representa a autorização do comprador e permite ao vendedor executar cobranças a partir da sua carteira, sendo a última etapa do fluxo de vinculação. O parâmetro code necessário para gerá-lo pode ser obtido de duas formas: como query parameter na return_uri (recomendado) ou a partir da Webhooks de confirmação da vinculação.
Para gerar o token, envie uma solicitação ao endpoint /v2/wallet_connect/agreements/{agreement_id}/payer_tokenPOST, incluindo seu Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`., o agreement_id da vinculação obtido na sua criação e o código de autorização.
curlcurl -X POST \ 'https://api.mercadopago.com/v2/wallet_connect/agreements/{{AGREEMENT_ID}}/payer_token' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}' \ -d '{ "code": "{{AUTHORIZATION_CODE}}" }'
Consulte na tabela abaixo as descrições dos parâmetros que devem ser enviados nesta requisição.
| Parâmetro | Tipo | Descrição | Obrigatoriedade |
Authorization | Header | Refere-se ao Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`.. | Obrigatório |
agreement_id | Path. String | Identificador único da vinculação, obtido na resposta à sua criação. | Obrigatório |
code | Body. String | Código de autorização gerado durante o fluxo de vinculação. Deve ser uma string alfanumérica de 32 caracteres em letras minúsculas e pode ser utilizado apenas uma vez, dentro da janela de validade. | Obrigatório |
Se a solicitação for bem-sucedida, a resposta retornará o status 201 com o token de pagamento associado à vinculação.
json{ "payer_token": "abcdef1e23f4567d8e9123eb6591ff68df74c57930551ed980239f4538a7e530" }
| Parâmetro | Tipo | Descrição |
payer_token | String | Token que representa a autorização do comprador para que o vendedor processe pagamentos a partir da sua carteira. Deve ser enviado no campo transactions.payments.payment_method.token a cada cobrança. |
payer_token de forma segura, pois ele será utilizado em todos os pagamentos deste comprador enquanto a vinculação estiver ativa. Um mesmo code não pode ser reutilizado para gerar um novo token e, caso a vinculação seja cancelada, será necessário repetir todo o fluxo de autorização.O cancelamento revoga a autorização concedida pelo comprador e invalida o payer_token associado, impedindo novas cobranças a partir da sua carteira.
Para cancelar uma vinculação, envie uma solicitação ao endpoint /v2/wallet_connect/agreements/{agreement_id}DELETE sem enviar o body na requisição. Certifique-se de incluir seu Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`. e o agreement_id da vinculação que deseja cancelar.
curlcurl -X DELETE \ 'https://api.mercadopago.com/v2/wallet_connect/agreements/{{AGREEMENT_ID}}' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}'
| Parâmetro | Tipo | Descrição | Obrigatoriedade |
Authorization | Header | Refere-se ao Access Token de testeChave privada utilizada no backend para autenticar as requisições. No Wallet Connect, o Access Token e a Public Key são repassados pela equipe responsável por criar a sua aplicação, tanto os de teste quanto os de produção. Também é possível visualizá-los em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`.. | Obrigatório |
agreement_id | Path. String | Identificador único da vinculação que se deseja cancelar. | Obrigatório |
Se a solicitação for bem-sucedida, a resposta retornará o status 200 sem corpo de resposta, indicando que a vinculação foi cancelada e que o payer_token associado deixou de ser válido.