Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Preferencias - Funcionalidades avanzadas - Mercado Pago Developers

BĂșsqueda inteligente powered by OpenAI 

Configuraciones de preferencia

Puedes adaptar la integraciĂłn de Wallet Brick a tu modelo de negocio configurando atributos de preferencia.

Si ofreces compras de alto valor, por ejemplo, puedes aceptar pagos con dos tarjetas de crédito o eliminar métodos de pago no deseados para tu operación.

Ejemplo de preferencia completa

json

{
    "items": [
        {
            "id": "item-ID-1234",
            "title": "Mi producto",
            "currency_id": "BRL",
            "picture_url": "https://www.mercadopago.com/org-img/MP3/home/logomp3.gif",
            "description": "DescripciĂłn del Item",
            "category_id": "art",
            "quantity": 1,
            "unit_price": 75.76
        }
    ],
    "payer": {
        "name": "Juan",
        "surname": "Lopez",
        "email": "user@email.com",
        "phone": {
            "area_code": "11",
            "number": "4444-4444"
        },
        "identification": {
            "type": "DNI",
            "number": "12345678"
        },
        "address": {
            "street_name": "Street",
            "street_number": 123,
            "zip_code": "5700"
        }
    },
    "back_urls": {
        "success": "https://www.success.com",
        "failure": "http://www.failure.com",
        "pending": "http://www.pending.com"
    },
    "auto_return": "approved",
    "payment_methods": {
        "excluded_payment_methods": [
            {
                "id": "master"
            }
        ],
        "excluded_payment_types": [
            {
                "id": "ticket"
            }
        ],
        "installments": 12
    },
    "notification_url": "https://www.your-site.com/ipn",
    "statement_descriptor": "MINEGOCIO",
    "external_reference": "Reference_1234",
    "expires": true,
    "expiration_date_from": "2016-02-01T12:00:00.000-04:00",
    "expiration_date_to": "2016-02-28T12:00:00.000-04:00"
}

FinanciaciĂłn sin tarjeta

Con Mercado Pago es posible pagar hasta en 12 cuotas sin tarjeta de crédito, esta opción de pago se llama Linha de Crédito.

Al ofrecer esta opción en tu tienda, tus clientes podrån comprar un producto hoy y pagarlo después en cuotas. Para tu negocio, la aprobación de la compra es inmediata y garantizada, abonando el importe íntegro por adelantado y pagåndonos después tus clientes.

El primer paso para configurar pagos con Linha de Crédito es crear una preferencia. Para hacerlo, envíe un POST con el paråmetro propósito y el valor onboarding_credits al endpoint /checkout/preferences y ejecute la solicitud o, si prefiere, use uno de nuestros SDK a continuación.

          
<?php
// Crea un objeto de preferencia
$preference = new MercadoPago\Preference();

// Crea un Ă­tem en la preferencia
$item = new MercadoPago\Item();
$item->title = 'Mi producto';
$item->quantity = 1;
$item->unit_price = 75;
$preference->items = array($item);
$preference->purpose = 'onboarding_credits';
$preference->save();
?>

        
          
// Crea un objeto de preferencia
let preference = {
  items: [
    {
      title: 'Mi producto',
      unit_price: 100,
      quantity: 1,
    }
  ],
  purpose: 'onboarding_credits'
};

mercadopago.preferences.create(preference)
.then(function(response){
// Este valor substituirĂĄ a la string "<%= global.id %>" en tu HTML
  global.id = response.body.id;
}).catch(function(error){
  console.log(error);
});

        
          
// Crea un objeto de preferencia
PreferenceClient client = new PreferenceClient();

// Crea un Ă­tem en la preferencia
PreferenceItemRequest item =
   PreferenceItemRequest.builder()
       .title("Mi producto")
       .quantity(1)
       .unitPrice(new BigDecimal("75"))
       .build();

List<PreferenceItemRequest> items = new ArrayList<>();
items.add(item);

PreferenceRequest request =
   PreferenceRequest.builder().items(items).purpose("onboarding_credits").build();

client.create(request);

        
          
sdk = Mercadopago::SDK.new('ENV_ACCESS_TOKEN')
# Crea un objeto de preferencia
preference_data = {
  items: [
    {
      title: 'Mi producto',
      unit_price: 100,
      quantity: 1
    }
  ],
  purpose: 'onboarding_credits'
}
preference_response = sdk.preference.create(preference_data)
preference = preference_response[:response]

# Este valor substituirĂĄ a la string "<%= @preference_id %>" en tu HTML
@preference_id = preference['id']

        
          
// Crea el objeto de request de la preferencia
var request = new PreferenceRequest
{
    Items = new List<PreferenceItemRequest>
    {
        new PreferenceItemRequest
        {
            Title = "Mi producto",
            Quantity = 1,
            CurrencyId = "BRL",
            UnitPrice = 75m,
        },
    },
    Purpose = "onboarding_credits",
};
// Crea la preferencia
var client = new PreferenceClient();
Preference preference = await client.CreateAsync(request);

        
          
preference_data = {
    "items": [
        {
            "title": "Mi producto",
            "unit_price": 100,
            "quantity": 1
        }
    ],
    "purpose": "onboarding_credits"
}

preference_response = sdk.preference().create(preference_data)
preference = preference_response["response"]

        
          
curl -X POST \
  'https://api.mercadopago.com/checkout/preferences' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -H 'Authorization: Bearer **PROD_ACCESS_TOKEN**' \
  -d '{
    "items": [
        {
            "title": "Meu produto",
            "quantity": 1,
            "unit_price": 75
        }
    ],
    "purpose": "onboarding_credits"
}'

        

Define los medios de pago

A travĂ©s de la preferencia de pago, puedes configurar un mĂ©todo de pago por defecto, eliminar los no deseados, o elegir un nĂșmero mĂĄximo de cuotas que se ofrecerĂĄn.

AtributoDescripciĂłn
payment_methodsClase que describe los métodos y atributos de medios de pago de Wallet Brick.
excluded_payment_typesMétodo que excluye tipos de medios de pago no deseados, como tarjetas de crédito o débito, ticket (boleto o o pago en agencia de lotería), entre otros.
excluded_payment_methodsMétodo que excluye marcas de tarjetas de crédito o débito, como Visa, Mastercard o American Express, entre otras.
installmentsMĂ©todo que define la cantidad de cuotas mĂĄximas a ofrecer.
purposeAl indicar el valor wallet_purchase en este método, Wallet Brick solo aceptarå pagos de usuarios registrados en Mercado Pago, con tarjeta y saldo de cuenta.

Por ejemplo:

          
<?php
$preference = new MercadoPago\Preference();
// ...
$preference->payment_methods = array(
  "excluded_payment_methods" => array(
    array("id" => "master")
  ),
  "excluded_payment_types" => array(
    array("id" => "ticket")
  ),
  "installments" => 12
);
// ...
?>

        
          
var preference = {}
preference = {
//...
"payment_methods": {
    "excluded_payment_methods": [
        {
            "id": "master"
        }
    ],
    "excluded_payment_types": [
        {
            "id": "ticket"
        }
    ],
    "installments": 12
	}
//...
}

        
          
PreferenceClient client = new PreferenceClient();
//...
List<PreferencePaymentMethodRequest> excludedPaymentMethods = new ArrayList<>();
excludedPaymentMethods.add(PreferencePaymentMethodRequest.builder().id("master").build());
excludedPaymentMethods.add(PreferencePaymentMethodRequest.builder().id("amex").build());

List<PreferencePaymentTypeRequest> excludedPaymentTypes = new ArrayList<>();
excludedPaymentTypes.add(PreferencePaymentTypeRequest.builder().id("ticket").build());

PreferencePaymentMethodsRequest paymentMethods =
   PreferencePaymentMethodsRequest.builder()
       .excludedPaymentMethods(excludedPaymentMethods)
       .excludedPaymentTypes(excludedPaymentTypes)
       .installments(12)
       .build();

PreferenceRequest request = PreferenceRequest.builder().paymentMethods(paymentMethods).build();

client.create(request);
//...

        
          
#...
preference_data = {
  # ...
  payment_methods: {
    excluded_payment_methods: [
      { id: 'master' }
    ],
    excluded_payment_types: [
      { id: 'ticket' }
    ],
    installments: 12
  }
  # ...
}
#...

        
          
var paymentMethods = new PreferencePaymentMethodsRequest
{
    ExcludedPaymentMethods = new List<PreferencePaymentMethodRequest>
    {
        new PreferencePaymentMethodRequest
        {
            Id = "master",
        },
    },
    ExcludedPaymentTypes = new List<PreferencePaymentTypeRequest>
    {
        new PreferencePaymentTypeRequest
        {
            Id = "ticket",
        },
    },
    Installments = 12,
};

var request = new PreferenceRequest
{
    // ...
    PaymentMethods = paymentMethods,
};

        
          
#...
preference_data = {
    "excluded_payment_methods": [
        { "id": "master" }
    ],
    "excluded_payment_types": [
        { "id": "ticket" }
    ],
    "installments": 12
}
#...

        

Acepta pagos con 2 tarjetas de crédito

Pago 2 tarjetas

Puedes activar la opción de ofrecer pagos con dos tarjetas de crédito desde la cuenta de Mercado Pago.

Para activar esta opción de pago, ve a tus "opciones de negocio" y elige la opción "Recibir pagos con 2 tarjetas de crédito".

Config pago 2 tarjetas

Acepta pagos Ășnicamente de usuarios registrados

Puedes aceptar pagos con la billetera de Mercado Pago exclusivamente de usuarios registrados, con tarjetas, dinero disponible y Linha de Crédito.

Esto permite que tus clientes tengan disponible la informaciĂłn de su cuenta al instante en el momento del pago, como sus tarjetas y domicilios guardados.

Importante
Ten en cuenta que agregando esta opciĂłn no podrĂĄs recibir pagos de usuarios que no tengan cuenta en Mercado Pago o Mercado Libre y tampoco podrĂĄs cobrar en efectivo ni transferencia.

Para aceptar pagos exclusivamente de usuarios registrados, agrega el siguiente atributo en tu preferencia:

json

"purpose": "wallet_purchase"

Al hacerlo, tu preferencia tendrĂ­a una estructura similar al ejemplo siguiente:

json

{
    "purpose": "wallet_purchase",
    "items": [
        {
            "title": "Mi producto",
            "quantity": 1,
            "unit_price": 75.76
        }
    ],
}

Cambia la fecha de vencimiento para pagos en efectivo

Puedes cambiar la fecha de vencimiento por defecto de un pago en efectivo enviando el campo date_of_expiration en la solicitud de creaciĂłn de la preferencia. La fecha configurada debe ser entre 1 y 30 dĂ­as a partir de la fecha de creaciĂłn de la preferencia de pago.

Por ejemplo:

La fecha usa el formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          
"date_of_expiration": "2020-05-30T23:59:59.000-04:00"

        
Nota
El perĂ­odo de acreditaciĂłn es de 1 y 2 dĂ­as hĂĄbiles, segĂșn el medio de pago. Por lo tanto, te recomendamos establecer la fecha de vencimiento con al menos 3 dĂ­as para asegurarte de que se realice el pago.

Si el pago se realiza después de la fecha de vencimiento, el monto se devolverå a la cuenta de Mercado Pago del pagador.

Activa el modo binario

Puedes activar el modo binario si el modelo de negocio requiere que la aprobaciĂłn del pago sea instantĂĄnea. De esta forma, el pago solo puede resultar aprobado o rechazado. En caso de no estar activado el modo binario, el pago puede quedar en pendiente (en caso de requerir alguna acciĂłn por parte del comprador) o en proceso (si es necesaria una revisiĂłn manual).

Para activarlo, solo debes configurar como true el atributo binary_mode de la preferencia de pago:

json

"binary_mode": true
Importante
Al activar el modo binario se simplifica la integraciĂłn con Wallet Brick, pero puede ocasionar una disminuciĂłn en la tasa de porcentaje de pagos aprobados. Esto se debe a que, para mantener el flujo instantĂĄneo, los pagos pendientes o en proceso se rechazarĂĄn automĂĄticamente de forma predeterminada.

Establece la vigencia de preferencias

Si se quiere habilitar el pago de una preferencia con un tiempo de duraciĂłn determinado, se puede activar un periodo de vigencia o concluir directamente con los atributos expires, expiration_date_from y expiration_date_to:

json

"expires": true,
"expiration_date_from": "2017-02-01T12:00:00.000-04:00",
"expiration_date_to": "2017-02-28T12:00:00.000-04:00"

Nota que la fecha usa el formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz.

EnvĂ­a una descripciĂłn en el resumen de la tarjeta

Puedes agregar una descripción para tu negocio a través del atributo statement_descriptor de las preferencias de pago, como se muestra en el siguiente ejemplo:

json

"statement_descriptor": "MINEGOCIO"

El valor del atributo aparecerĂĄ en el resumen de la tarjeta de tu comprador dependiendo de la marca de la tarjeta utilizada.

Establece una preferencia para mĂșltiples Ă­tems

Si se necesita crear una preferencia para mĂĄs de un Ă­tem, solo debes agregarlos como una lista, tal como se muestra en el siguiente ejemplo:

          
<?php
  # Crear un objeto preferencia
  $preference = new MercadoPago\Preference();
  # Crea Ă­tems en la preferencia
  $item1 = new MercadoPago\Item
  $item1->title = "Item de Prueba 1";
  $item1->quantity = 2;
  $item1->unit_price = 11.96;

  $item2= new MercadoPago\Item
  $item2->title = "Item de Prueba 2";
  $item2->quantity = 1;
  $item2->unit_price = 11.96;

  $preference->items = array($item1,$item2);
  # Guardar y postear la preferencia
  $preference->save();
?>

        
          
// Configura tu preferencia
var preference = {
  items: [
      { title: 'Mi producto',
      quantity: 1,
      currency_id: 'BRL',
      unit_price: 75.56 },
	{ title: 'Mi producto 2’,
      quantity: 2,
      currency_id: 'BRL',
      unit_price: 96.56 }
    ]
};
// Crea un botĂłn de pago en tu sitio
mercadopago.preferences.create(preference)
.then(function(preference){
  // Este valor reemplazarĂĄ el string "$init_point$" en tu HTML
  global.init_point = preference.body.init_point;
}).catch(function(error){
  console.log(error);
});

        
          
// Crea un objeto preferencia
PreferenceClient client = new PreferenceClient();
// Crea Ă­tems en la preferencia
List<PreferenceItemRequest> items = new ArrayList<>();

PreferenceItemRequest item1 =
   PreferenceItemRequest.builder()
       .id("1234")
       .title("Produto 1")
       .quantity(2)
       .currencyId("BRL")
       .unitPrice(new BigDecimal("100"))
       .build();   
PreferenceItemRequest item2 =
   PreferenceItemRequest.builder()
       .id("12")
       .title("Produto 2")
       .quantity(1)
       .currencyId("BRL")
       .unitPrice(new BigDecimal("100"))
       .build();

items.add(item1);
items.add(item2);

PreferenceRequest request = PreferenceRequest.builder().items(items).build();
// Guardar y postear la preferencia
client.create(request);

        
          
sdk = Mercadopago::SDK.new('ENV_ACCESS_TOKEN')
# Create preference data with items
preference_data = {
  items: [
    {
      title: 'Mi producto 1',
      quantity: 1,
      currency_id: 'BRL',
      unit_price: 75.56
    },
    {
      title: 'Mi producto 2',
      quantity: 2,
      currency_id: 'BRL',
      unit_price: 96.56
    }
  ]
}

preference_response = sdk.preference.create(preference_data)
preference = preference_response[:response]

        
          
// Crea el request con mĂșltiples Ă­tems
var request = new PreferenceRequest
{
    Items = new List<PreferenceItemRequest>
    {
        new PreferenceItemRequest
        {
            Title = "Mi producto 1",
            Quantity = 1,
            CurrencyId = "BRL",
            UnitPrice = 75.56m,
        },
        new PreferenceItemRequest
        {
            Title = "Mi producto 2",
            Quantity = 2,
            CurrencyId = "BRL",
            UnitPrice = 96.56m,
        },
        // ...
    },
};

// Crea un objeto client
var client = new PreferenceClient();

// Crea la preferencia
Preference preference = await client.CreateAsync(request);

        
          
# Crea Ă­tems en la preferencia
preference_data = {
    "items": [
        {
            "title": "Mi producto",
            "quantity": 1,
            "unit_price": 75.56
        },
        {
            "title": "Mi producto2",
            "quantity": 2,
            "unit_price": 96.56
        }
    ]
}

# Crea la preferencia
preference_response = sdk.preference().create(preference_data)
preference = preference_response["response"]

        
          
curl -X POST \
  'https://api.mercadopago.com/checkout/preferences' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -H 'Authorization: Bearer PROD_ACCESS_TOKEN' \
  -d '{
	"items": [
	{
		"id_product":1,
		"quantity":1,
		"unit_price": 234.33,
		"titulo":"Mi producto"
	},
	{
		"id_product":2,
		"quantity":2,
		"unit_price": 255.33,
		"titulo":"Mi producto 2"
	}
]
}'

        

Ten en cuenta que el valor total de la preferencia serĂĄ la suma del valor del precio unitario de cada Ă­tem listado.

Muestra el monto del envĂ­o

Si ya tienes estimado el envio desde tu sitio, puedes enviar el monto y mostrarlo por separado del total al ofrecer el pago.

Para configurarlo, agrega el nodo shipments con el valor del monto que quieras cobrar en el atributo cost y el valor not_specified en el atributo mode:

json

{
    "shipments":{
        "cost": 1000,
        "mode": "not_specified",
  }
}

Redirigir al comprador a tu sitio web

Al final del proceso de pago, tienes la opciĂłn de redireccionar al comprador a tu sitio web nuevamente. Para hacer esto, agrega el atributo back_urls y define, de acuerdo con el estado del pago, la pĂĄgina deseada para redireccionar a tu comprador cuando haga clic en el botĂłn regresar al sitio.

Si quieres que la redirección sea automåtica para los pagos aprobados, sin mostrar un botón de retorno, también debes agregar el atributo auto_return con el valor de approved.

autoreturn

AtributoDescripciĂłn
auto_returnRedirige automĂĄticamente a los compradores al sitio cuando el pago finaliza como aprobado. El valor predeterminado es approved.
back_urlsURL deseada para retornar al sitio. Los posibles escenarios son:

success: URL de retorno ante la aprobaciĂłn del pago.

pending: URL de retorno ante el pago pendiente.

failure: URL de retorno ante el pago rechazado.

A través de back_urls, se devolverån los siguientes paråmetros:

ParĂĄmetroDescripciĂłn
payment_idID (identificador) del pago de Mercado Pago.
statusEstado de pago. Ej .: approved para un pago aprobado o pending para un pago pendiente.
external_referenceValor que hayas enviado a la hora de crear la preferencia de pago.
comerciante_order_idID (identificador) de la orden de pago generada en Mercado Pago.
Nota
Algunos de los paråmetros mantienen la información de compra solo si el comprador ha completado el pago completo en Wallet Brick y no ha abandonado el flujo antes de regresar a tu sitio a través de la back_urls de failure.

Por ejemplo:

          
<?php
$preference = new MercadoPago\Preference();
//...
$preference->back_urls = array(
    "success" => "https://www.tu-sitio/success",
    "failure" => "http://www.tu-sitio/failure",
    "pending" => "http://www.tu-sitio/pending"
);
$preference->auto_return = "approved";
// ...
?>

        
          
var preference = {}
preference = {
  // ...
  "back_urls": {
        "success": "https://www.tu-sitio/success",
        "failure": "http://www.tu-sitio/failure",
        "pending": "http://www.tu-sitio/pending"
    },
    "auto_return": "approved",
  // ...
}

        
          
PreferenceBackUrlsRequest backUrls =
// ...
   PreferenceBackUrlsRequest.builder()
       .success("https://www.seu-site/success")
       .pending("https://www.seu-site/pending")
       .failure("https://www.seu-site/failure")
       .build();

PreferenceRequest request = PreferenceRequest.builder().backUrls(backUrls).build();
// ...

        
          
# ...
preference_data = {
  # ...
  back_urls = {
    success: 'https://www.tu-sitio/success',
    failure: 'https://www.tu-sitio/failure',
    pending: 'https://www.tu-sitio/pendings'
  },
  auto_return: 'approved'
  # ...
}
# ...

        
          
var request = new PreferenceRequest
{
    // ...
    BackUrls = new PreferenceBackUrlsRequest
    {
        Success = "https://www.tu-sitio/success",
        Failure = "http://www.tu-sitio/failure",
        Pending = "http://www.tu-sitio/pendings",
    },
    AutoReturn = "approved",
};

        
          
preference_data = {
    "back_urls": {
        "success": "https://www.tu-sitio/success",
        "failure": "https://www.tu-sitio/failure",
        "pending": "https://www.tu-sitio/pendings"
    },
    "auto_return": "approved"
}