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

Shipments

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