Suggest edit
Help us improve the documentation
Did you see wrong information and would you like us to explain something else or improve our manuals? Please leave your suggestions on GitHub.

Webhooks Notifications

A webhook is a notification sent from one server to another through an HTTP POST request informing your transactions.

In order to receive notifications about the events in your platform, you have to previously configure an URL to which Mercado Pago has access.

You can also configure the notification when you do the POST of the payment, indicating the URL in the field notificaction_url:





An event is any type of update on the reported object, including status or attribute changes.

Whenever an event occurs, we will send you a notification in json format using HTTP POST to the URL that you specified.

We will notify the following events:

Notification type Action Description
payment payment.created Payment created
payment payment.updated Payment updated
mp-connect application.deauthorized Account deauthorized
mp-connect application.authorized Account authorized
plan application.authorized Account authorized
subscription application.authorized Account authorized
invoice application.authorized Account authorized

Mercado Pago will send notifications with the following schedule of retries and confirmation awaiting times. You must return an HTTP STATUS 200 (OK) or 201 (CREATED) before the corresponding time expires. If not, it will be assumed that you did not receive it correctly and you will be notified again.

If you need more information, please review the section What should I do when I receive a notification?.

Event Time after the first dispatch Confirmation waiting time
Dispatch - 22 seconds
First retry 5 minutes 5 seconds
Second retry 45 minutes 5 seconds
Third retry 6 hours 5 seconds
Fourth retry 2 days 5 seconds
Fifth retry 4 days 5 seconds

The notification sent has the following format:


    "id": 12345,
    "live_mode": true,
    "type": "payment",
    "date_created": "2015-03-25T10:04:58.396-04:00",
    "application_id": 123123123,
    "user_id": 44444,
    "version": 1,
    "api_version": "v1",
    "action": "payment.created",
    "data": {
        "id": "999999999"

This indicates that payment 999999999 was created for the user 44444 in production mode with the V1 version of the API. That event took place on 2016-03-25T10:04:58.396-04:00.

What should I do when I receive a notification?

When you receive a notification on your platform, Mercado Pago waits for a response to validate that you received it correctly. For this, you must return an HTTP STATUS 200 (OK) or 201 (CREATED).

It is recommended that you respond to the notification before executing business logic or prior to accessing external resources so as not to exceed the estimated response times.

This communication is exclusively between the servers of Mercado Pago and your server, so there will not be a physical user seeing any type of result.

After this, you must obtain the complete information of the notified resource by accessing the corresponding endpoint of the API:

Type URL Documentation
payment[ID]?access\_token=[ACCESS\_TOKEN] see documentation
plan[ID]?access_token=[ACCESS_TOKEN] -
subscription[ID]?access\_token=[ACCESS_TOKEN] -
invoice[ID]?access_token=[ACCESS_TOKEN] see documentation

With this information you can make the necessary updates on your platform, such as registering an approved payment.


Keep in mind that if the response times are exceeded, it is possible to receive duplicate notifications of an event.

Implement the receiver notification using the following code as example:




    switch($_POST["type"]) {
        case "payment":
            $payment = MercadoPago\Payment.find_by_id($_POST["id"]);
        case "plan":
            $plan = MercadoPago\Plan.find_by_id($_POST["id"]);
        case "subscription":
            $plan = MercadoPago\Subscription.find_by_id($_POST["id"]);
        case "invoice":
            $plan = MercadoPago\Invoice.find_by_id($_POST["id"]);


Receive only one type of notification

If you want to receive notifications only from Webhooks, and not from IPN, you can add in the notification_url the parameter source_news=webhooks. For example:

The change doesn't affect the parameters already included in the URL.

Your search returns no results.

Verifique a ortografia de termos de pesquisa ou teste com outras palavras-chave.