Recibir pagos

Recibe pagos de manera simple y segura utilizando el Checkout de Mercado Pago.

1. Crea una preferencia de pago

Una preferencia de pago contiene toda la información del producto o servicio que se va a pagar. Por ejemplo:

  • Descripción y monto.
  • Información de tu comprador (Email, nombre, dirección, etc).
  • Medios de pago que aceptas.
  • ID de referencia de tu sistema.

Para crear una preferencia de pago debes instalar el SDK de MercadoPago y configurar tus credenciales.

<?php  
  MercadoPago\SDK::setClientId("ENV_CLIENT_ID");
  MercadoPago\SDK::setClientSecret("ENV_CLIENT_SECRET");
?>
MercadoPago.SDK.setClientId("ENV_CLIENT_ID");
MercadoPago.SDK.setClientSecret("ENV_CLIENT_SECRET");
mercadopago.configure({
  client_id: 'ENV_CLIENT_ID',
  client_secret: 'ENV_CLIENT_SECRET'
});
MercadoPago::SDK.client_id = "ENV_CLIENT_ID"
MercadoPago::SDK.client_secret = "ENV_CLIENT_SECRET"
using MercadoPago;
// ...
MercadoPago.SDK.ClientId = "ENV_CLIENT_ID";
MercadoPago.SDK.ClientSecret = "ENV_CLIENT_SECRET";
// ...

Luego, deberás agregar los atributos de tu preferencia de pago y crear una preferencia:

<?php
  # Create a preference object
  $preference = new MercadoPago\Preference();
  # Create an item object
  $item = new MercadoPago\Item();
  $item->id = "1234";
  $item->title = "Sleek Wool Chair";
  $item->quantity = 4;
  $item->currency_id = "PEN";
  $item->unit_price = 50.66;
  # Create a payer object
  $payer = new MercadoPago\Payer();
  $payer->email = "shaun@hotmail.com";
  # Setting preference properties
  $preference->items = array($item);
  $preference->payer = $payer;
  # Save and posting preference
  $preference->save();
?>
// Create a preference object
Preference preference = new Preference();
// Create an item object
Item item = new Item();
item.setId("1234")
    .setTitle("Sleek Wool Chair")
    .setQuantity(4)
    .setCurrencyId("PEN")
    .setUnitPrice((float) 50.66);
// Create a payer object
Payer payer = new Payer();
payer.setEmail("shaun@hotmail.com");
// Setting preference properties
preference.setPayer(payer);
preference.appendItem(item);
// Save and posting preference
preference.save();
// Create a preference structure
var preference = {
  items: [
    {
      id: '1234',
      title: 'Sleek Wool Chair',
      quantity: 4,
      currency_id: 'PEN',
      unit_price: 50.66
    }
  ],
  payer: {
    email: 'shaun@hotmail.com'
  }
};

mercadopago.preferences.create(preference)
  .then(function (preference) {
    // Do something if preference has been created successfully
  }).catch(function (error) {
    // If an error has occurred
  });
# Create an item object
item = MercadoPago::Item.new({
  id:           "1234",
  title:        "Sleek Wool Chair",
  quantity:     4,
  currency_id:  "PEN",
  unit_price:   50.66
})
# Create a payer object
payer = MercadoPago::Payer.new({
  email: "shaun@hotmail.com"
})
# Create a preference object
preference = MercadoPago::Preference.new({
  items: [item],
  payer: payer
})
# Save and posting preference
preference.save()
using MercadoPago;
using MercadoPago.Resources;
using MercadoPago.DataStructures.Preference;
// ...
// Create a preference object
Preference preference = new Preference();
# Adding an item object
preference.Items.Add(
  new Item()
  {
    Id = "1234",
    Title = "Sleek Wool Chair",
    Quantity = 4,
    CurrencyId = "PEN",
    UnitPrice = (float)50.66
  }
);
// Setting a payer object as value for Payer property
preference.Payer = new Payer(){
  Email = "shaun@hotmail.com"
}
// Save and posting preference
preference.Save();

Contenido de la preferencia

Mientras más información nos envíes, mejor será la aprobación de los pagos y la experiencia de tus usuarios.

Payer

Es requerido el envío del email de tu comprador. Si nos envías datos como tipo y número de identificación, estos no se le pedirán durante el proceso de pago.

<?php
  // ...
  $payer = new MercadoPago\Payer();
  $payer->name = "Charles";
  $payer->surname = "Corona";
  $payer->email = "charles@gmail.com";
  $payer->date_created = "2018-06-02T12:58:41.425-04:00";
  $payer->phone = array(
    "area_code" => "",
    "number" => "951573901"
  );
  $payer->identification = array(
    "type" => "DNI",
    "number" => "12345678"
  );
  $payer->address = array(
    "street_name" => "Rampa Santiago Domínguez",
    "street_number" => 1686,
    "zip_code" => "14133"
  );
  // ...
?>
// ...
Payer payer = new Payer();
payer.setName("Charles")
     .setSurname("Corona")
     .setEmail("charles@gmail.com")
     .setDateCreated("2018-06-02T12:58:41.425-04:00")
     .setPhone(new Phone()
        .setAreaCode("")
        .setPhoneNumber("951573901"))
     .setIdentification(new Identification()
        .setType("DNI")
        .setNumber("12345678"))
     .setAddress(new Address()
        .setStreetName("Rampa Santiago Domínguez")
        .setBuildingNumber("1686")
        .setZipCode("14133"));
// ...
// ...
var payer = {
  name: "Charles",
  surname: "Corona",
  email: "charles@gmail.com",
  date_created: "2015-06-02T12:58:41.425-04:00",
  phone: {
    area_code: "",
    number: "951573901"
  },
  identification: {
    type: "DNI",
    number: "12345678"
  },
  address: {
    street_name: "Rampa Santiago Domínguez",
    street_number: "1686",
    zip_code: "14133"
  }
}
// ...
# ...
payer = MercadoPago::Payer.new({
  name: "Charles"
  surname: "Corona"
  email: "charles@gmail.com"
  date_created: Time.now
  phone: MercadoPago::Phone.new({
    area_code: "",
    number: "951573901"
  })
  identification: MercadoPago::Identification.new({
    type: "DNI",
    number: "12345678"
  })
  address: MercadoPago::Address.new ({
    street_name: "Rampa Santiago Domínguez",
    street_number: "1686",
    zip_code: "14133"
  })
})
# ...
using MercadoPago;
using MercadoPago.Resources;
using MercadoPago.DataStructures.Preference;
// ...
Payer payer = new Payer()
{
    Name = "Charles",
    Surname = "Corona",
    Email = "charles@gmail.com",
    Phone = new Phone()
    {
        AreaCode = "",
        Number = "951573901"
    },
    Identification = new Identification()
    {
        Type = "DNI",
        Number = "12345678"
    },
    Address = new Address()
    {
        StreetName = "Rampa Santiago Domínguez",
        StreetNumber = int.Parse("1686"),
        ZipCode = "14133"
    }
};
// ...

Shipments

<?php
  // ...
  $shipments = new MercadoPago\Shipments();
  $shipments->receiver_address = array(
        "zip_code" => "14133",
        "street_number" => 1686,
        "street_name" => "Rampa Santiago Domínguez",
        "floor" => 5,
        "apartment" => "C"
  );
  // ...
?>
// ...
Shipments shipments = new Shipments();
shipments.setReceiverAddress(new ReceiverAddress()
  .setZipCode("14133")
  .setBuildingNumber("1686")
  .setStreetName("Rampa Santiago Domínguez")
  .setFloor("5")
  .setApartment("C"));
// ...
// ...
var shipments = {
    receiver_address: {
        zip_code: 14133",
        street_number: 1686,
        street_name: "Rampa Santiago Domínguez",
        floor: 5,
        apartment: "C"
    }
};
// ...
# ...
shipment = MercadoPago::Shipment.new(
  receiver_address: new MercadoPago::ReceiverAddress.new({
    zip_code: "14133",
    street_number: 1686,
    street_name: "Rampa Santiago Domínguez",
    floor: 5,
    apartment: "C"
  })
})
# ...
using MercadoPago;
using MercadoPago.Resources;
using MercadoPago.DataStructures.Preference;
// ...
Shipment shipment = new Shipment()
{
    ReceiverAddress = new ReceiverAddress()
    {
        ZipCode = "14133",
        StreetName = "Rampa Santiago Domínguez",
        StreetNumber = int.Parse("1686"),
        Floor = "7",
        Apartment = "C"
    }
};
// ...

2. Lleva a tu comprador al checkout

Una vez creada la preferencia utiliza la URL que encontrarás en el atributo init_point de la respuesta para generar un botón de pago:

Html

<!DOCTYPE html>
<html>
    <head>
        <title>Pagar</title>
    </head>
    <body>
        <a href="<?php echo $preference->init_point; ?>">Pay</a>
    </body>
</html>

Además, podés personalizar el checkout ingresando a este Link

3. Activa las notificaciones de pagos

Las notificaciones son la forma automática de enterarte de tus nuevos pagos y las actualizaciones de sus estados.

Esto te permitirá administrar tu stock y mantener tu sistema sincronizado.

Visita la sección Notificaciones para conocer más sobre esto.

4. Cancelar un pago

Los medios de pago en efectivo deben ser pagados entre los 3 a 5 días dependiendo de cada uno.

El vencimiento de estos no es automático, por lo cuál es necesario que ejecutes la cancelación del pago luego del vencimiento.

5. Prueba tu integración

Puedes probar tu integración antes de salir a producción, a fin de verificar el funcionamiento y realizar los ajustes que necesites.

Para ello debes usar usuarios y tarjetas de prueba.

Visita la sección Probando para más información.

La búsqueda no arrojó ningún resultado.

Verifica la la ortografía de los términos de búsqueda o prueba con otras palabras clave.