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 = "Mediocre Steel Lamp";
  $item->quantity = 2;
  $item->currency_id = "PEN";
  $item->unit_price = 32.56;
  # Create a payer object
  $payer = new MercadoPago\Payer();
  $payer->email = "emmanuelle_jaskolski@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("Mediocre Steel Lamp")
    .setQuantity(2)
    .setCurrencyId("PEN")
    .setUnitPrice((float) 32.56);
// Create a payer object
Payer payer = new Payer();
payer.setEmail("emmanuelle_jaskolski@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: 'Mediocre Steel Lamp',
      quantity: 2,
      currency_id: 'PEN',
      unit_price: 32.56
    }
  ],
  payer: {
    email: 'emmanuelle_jaskolski@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:        "Mediocre Steel Lamp",
  quantity:     2,
  currency_id:  "PEN",
  unit_price:   32.56
})
# Create a payer object
payer = MercadoPago::Payer.new({
  email: "emmanuelle_jaskolski@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 = "Mediocre Steel Lamp",
    Quantity = 2,
    CurrencyId = "PEN",
    UnitPrice = (float)32.56
  }
);
// Setting a payer object as value for Payer property
preference.Payer = new Payer(){
  Email = "emmanuelle_jaskolski@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 = "Fuentes";
  $payer->email = "charles@yahoo.com";
  $payer->date_created = "2018-06-02T12:58:41.425-04:00";
  $payer->phone = array(
    "area_code" => "",
    "number" => "989209188"
  );
  $payer->identification = array(
    "type" => "DNI",
    "number" => "12345678"
  );
  $payer->address = array(
    "street_name" => "Ronda Ramona",
    "street_number" => 1402,
    "zip_code" => "15168"
  );
  // ...
?>
// ...
Payer payer = new Payer();
payer.setName("Charles")
     .setSurname("Fuentes")
     .setEmail("charles@yahoo.com")
     .setDateCreated("2018-06-02T12:58:41.425-04:00")
     .setPhone(new Phone()
        .setAreaCode("")
        .setPhoneNumber("989209188"))
     .setIdentification(new Identification()
        .setType("DNI")
        .setNumber("12345678"))
     .setAddress(new Address()
        .setStreetName("Ronda Ramona")
        .setBuildingNumber("1402")
        .setZipCode("15168"));
// ...
// ...
var payer = {
  name: "Charles",
  surname: "Fuentes",
  email: "charles@yahoo.com",
  date_created: "2015-06-02T12:58:41.425-04:00",
  phone: {
    area_code: "",
    number: "989209188"
  },
  identification: {
    type: "DNI",
    number: "12345678"
  },
  address: {
    street_name: "Ronda Ramona",
    street_number: "1402",
    zip_code: "15168"
  }
}
// ...
# ...
payer = MercadoPago::Payer.new({
  name: "Charles"
  surname: "Fuentes"
  email: "charles@yahoo.com"
  date_created: Time.now
  phone: MercadoPago::Phone.new({
    area_code: "",
    number: "989209188"
  })
  identification: MercadoPago::Identification.new({
    type: "DNI",
    number: "12345678"
  })
  address: MercadoPago::Address.new ({
    street_name: "Ronda Ramona",
    street_number: "1402",
    zip_code: "15168"
  })
})
# ...
using MercadoPago;
using MercadoPago.Resources;
using MercadoPago.DataStructures.Preference;
// ...
Payer payer = new Payer()
{
    Name = "Charles",
    Surname = "Fuentes",
    Email = "charles@yahoo.com",
    Phone = new Phone()
    {
        AreaCode = "",
        Number = "989209188"
    },
    Identification = new Identification()
    {
        Type = "DNI",
        Number = "12345678"
    },
    Address = new Address()
    {
        StreetName = "Ronda Ramona",
        StreetNumber = int.Parse("1402"),
        ZipCode = "15168"
    }
};
// ...

Shipments

<?php
  // ...
  $shipments = new MercadoPago\Shipments();
  $shipments->receiver_address = array(
        "zip_code" => "15168",
        "street_number" => 1402,
        "street_name" => "Ronda Ramona",
        "floor" => 12,
        "apartment" => "C"
  );
  // ...
?>
// ...
Shipments shipments = new Shipments();
shipments.setReceiverAddress(new ReceiverAddress()
  .setZipCode("15168")
  .setBuildingNumber("1402")
  .setStreetName("Ronda Ramona")
  .setFloor("12")
  .setApartment("C"));
// ...
// ...
var shipments = {
    receiver_address: {
        zip_code: 15168",
        street_number: 1402,
        street_name: "Ronda Ramona",
        floor: 12,
        apartment: "C"
    }
};
// ...
# ...
shipment = MercadoPago::Shipment.new(
  receiver_address: new MercadoPago::ReceiverAddress.new({
    zip_code: "15168",
    street_number: 1402,
    street_name: "Ronda Ramona",
    floor: 12,
    apartment: "C"
  })
})
# ...
using MercadoPago;
using MercadoPago.Resources;
using MercadoPago.DataStructures.Preference;
// ...
Shipment shipment = new Shipment()
{
    ReceiverAddress = new ReceiverAddress()
    {
        ZipCode = "15168",
        StreetName = "Ronda Ramona",
        StreetNumber = int.Parse("1402"),
        Floor = "16",
        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.