NotificaçÔes
Webhooks
O Webhooks (também conhecido como retorno de chamada web) é um método simples que facilita com que um app ou sistema forneça informaçÔes em tempo real sempre que um evento acontece, ou seja, é um modo de receber dados entre dois sistemas de forma passiva através de um HTTP POST.
Uma vez configurado, o Webhook serĂĄ enviado sempre que ocorrer um ou mais eventos cadastrados, evitando que haja um trabalho de pesquisa a cada minuto em busca de uma resposta e, por consequĂȘncia, que ocorra uma sobrecarga do sistema e a perda de dados sempre que houver alguma situação.
ApĂłs receber uma notificação na sua plataforma, o Mercado Pago aguardarĂĄ uma resposta para validar se vocĂȘ a recebeu corretamente.
Pré-requisitos
Antes de configurar as notificaçÔes Webhooks para Wallet Connect considere os requisitos listados abaixo.
Requisito | Descrição |
Certificado SSL | Protocolo que permite estabelecer comunicaçÔes seguras na Internet para atividades como navegação, e-mail, e outras transferĂȘncias de dados. |
Resposta à requisição | O endpoint deve retornar um código de resposta 2XX para confirmar o recebimento da requisição. Todos os códigos de resposta fora do 2XX acionarão novas tentativas exponenciais do Mercado Pago. |
Timeout | Para evitar problemas de timeout, a aplicação deve retornar uma resposta antes de acionar uma lógica complexa. |
Solicitação de permissĂŁo | Para que seja possĂvel colocar as solicitaçÔes na lista de permissĂ”es pelo DNS, as requisiçÔes virĂŁo atravĂ©s do endpoint api.mercadopago.com. O integrador deve desabilitar o CSRF (Cross-site request forgery) para api.mercadopago.com, o que permitirĂĄ solicitaçÔes do Mercado Pago. |
Tipos de eventos
Existem trĂȘs tipos diferentes de eventos que permitem o recebimento de notificaçÔes. Esses eventos referem-se Ă atualização e/ou cancelamento de uma vinculação.
Confirmação da vinculação pelo usuårio
A partir deste evento, o integrador é notificado quando um usuårio confirma a vinculação.
Para isso, envie um GET ao endpoint /v2/wallet_connect/agreements/{agreement_id} para obter o agreement_code
e external_flow_id
. Isso permitirå seguir com a criação do token de pagamento para a criação dos pagamentos.
Veja abaixo um exemplo de código com as informaçÔes enviadas no momento da requisição.
curl -X POST 'https://api.integrator.com/wallet_connect/events' \
-H 'Content-Type: application/json' \
-d '{
"id": "22abcd1235ed497f945f755fcaba3c6c",
"type": "wallet_connect",
"entity": "agreement",
"action": "status.updated",
"date": "2021-09-30T23:24:44Z",
"model_version": 1,
"version": 0,
"data": {
"id": "22abcd1235ed497f945f755fcaba3c6c",
"status": "confirmed_by_user"
}
}'
Cancelamento de vinculação entre integrador e Mercado Pago
Neste evento, o usuårio tem a possibilidade de se descadastrar de uma vinculação, o que faz com que a vinculação existente seja cancelada. Quando isso acontece, o payer_token
é invalidado e nenhuma outra cobrança é feita ao usuårio.
Veja abaixo um exemplo de código com as informaçÔes enviadas no momento da requisição.
curl -X POST 'https://api.integrator.com/wallet_connect/events' \
-H 'Content-Type: application/json' \
-d '{
"id": "22abcd1235ed497f945f755fcaba3c6c",
"type": "wallet_connect",
"entity": "agreement",
"action": "status.updated",
"date": "2021-09-30T23:24:44Z",
"model_version": 1,
"version": 0,
"data": {
"id": "22abcd1235ed497f945f755fcaba3c6c",
"status": "cancelled"
}
}'
Atualização do meio de pagamento de uma vinculação
Neste caso, o usuĂĄrio pode adicionar ou atualizar uma forma de pagamento secundĂĄria (por padrĂŁo, dinheiro em conta Mercado Pago Ă© a primeira forma de pagamento).
Com base nos status de pagamento, Ă© possĂvel detectar pagamentos rejeitados e notificar o usuĂĄrio para que ele possa realizar a atualização ou adicionar uma forma de pagamento secundĂĄria.
Veja abaixo um exemplo de código com as informaçÔes enviadas no momento da requisição.
curl -X POST 'https://api.integrator.com/wallet_connect/events' \
-H 'Content-Type: application/json' \
-d '{
"id": "22abcd1235ed497f945f755fcaba3c6c",
"type": "wallet_connect",
"entity": "agreement",
"action": "payment_method.updated",
"date": "2021-09-30T23:24:44Z",
"model_version": 1,
"version": 0,
"data": {
"id": "22abcd1235ed497f945f755fcaba3c6c"
}
}'
Na tabela abaixo mostramos com mais detalhes os possĂveis valores que sĂŁo enviados no corpo da requisição do cancelamento e atualização do meio de pagamento de uma vinculação.
Campo | Valor | Tipo | Descrição |
id | UUID/Number | String | ID exclusivo do evento. Este ID evita mensagens duplicadas do lado do integrador. |
type | wallet_connect | String | Representa eventos sobre a vinculação entre o integrador e o usuårio do Mercado Pago. Este valor sempre serå wallet_connect |
entity | agreement | String | Entidade relacionada ao evento. O valor serĂĄ sempre agreement . |
action | payment_method.updated | String | - Indica que a forma de pagamento secundåria associada à vinculação foi atualizada. - Pode ser utilizado pelo vendedor como forma de saber se uma nova cobrança deve ser realizada. |
action | status.updated | String | - Indica que a vinculação foi cancelado ou confirmado pelo usuårio. - Pode ser usado pelo integrador para saber se o usuårio confirmou a vinculação ou se esta foi cancelada e novas cobranças não deverão ser realizadas. |
date | {{action_date}} | Date | Uma data aproximada (em formato Zulu) associada ao evento. |
data | { id: {{agreement_id}}, status: {{agreement_status}} } | id: String status: String | Este campo pode trazer detalhes extras sobre o evento baseado no tipo e na ação. |
model_version | 1 | Integer | VersĂŁo do modelo de corpo do Webhooks. SerĂĄ sempre 1 . |
version | 0 | Integer | VersĂŁo para identificar duplicatas dentro do mesmo ID. |
Configuração
A configuração das Webhooks é feita através do Painel do desenvolvedor. Abaixo explicaremos como indicar as URLs que serão notificadas e como configurar os eventos dos quais se receberå a notificação.
- Se ainda não tiver uma aplicação criada, acesse seu Painel do desenvolvedor e clique em Entrar para fazer seu login caso ainda não esteja logado.
- Com a aplicação criada, acesse a aba NotificaçÔes Webhooks em seu Painel do desenvolvedor e configure as URLs de produção e teste da qual serão recebidas as notificaçÔes.
- VocĂȘ tambĂ©m poderĂĄ experimentar e testar se a URL indicada estĂĄ recebendo as notificaçÔes corretamente, podendo verificar a solicitação, a resposta dada pelo servidor e a descrição do evento.
- Caso seja necessĂĄrio identificar mĂșltiplas contas, no final do URL indicada vocĂȘ poderĂĄ indicar o parĂąmetro
?customer=(sellername) endpoint
para identificar os vendedores. - Em seguida, selecione o evento Wallet Connect do qual vocĂȘ receberĂĄ notificaçÔes em formato
json
através de umHTTP POST
para a URL especificada anteriormente. Um evento é qualquer tipo de atualização no objeto relatado, incluindo alteraçÔes de status ou atributo. Veja na tabela abaixo os eventos que poderão ser configurados.
Tipo de notificação | Ação | Descrição |
Confirmação de vinculação | status.updated | O usuårio realizou a confirmação de uma vinculação. |
Cancelamento de vinculação | status.updated | Vinculação entre o integrador e o usuårio do Mercado Pago foi cancelado pelo usuårio. |
Atualização do meio de pagamento | payment_method.updated | O usuårio atualizou o meio de pagamento de uma vinculação. |