Inicio
DocumentaciĆ³n
Recursos
Certificaciones
Comunidad
CĆ³mo mejorar la aprobaciĆ³n de tus pagos - Mercado Pago Developers

BĆŗsqueda inteligente powered by OpenAIĀ 

Recomendaciones para mejorar la aprobaciĆ³n de pagos

Para evitar que un pago legĆ­timo sea rechazado por no cumplir con las validaciones de seguridad, es necesario incluir el mĆ”ximo de informaciĆ³n posible a la hora de realizar la operaciĆ³n, asĆ­ como que tu checkout cuente con su interfaz optimizada.

Puedes ver en detalle nuestras recomendaciones para mejorar tu aprobaciĆ³n a continuaciĆ³n.

ObtƩn y envƭa el Device ID

El Device ID es una informaciĆ³n importante para lograr una mejor seguridad y, en consecuencia, una mejor tasa de aprobaciĆ³n de pagos. Representa un identificador Ćŗnico para el dispositivo de cada comprador en el momento de la compra.

Si un comprador frecuente hace una compra desde un dispositivo diferente al habitual, esto podrĆ­a representar un comportamiento atĆ­pico. Aunque puede no ser necesariamente un fraude, el Device ID nos ayuda a refinar la evaluaciĆ³n y evitar el rechazo de pagos legĆ­timos.

AtenciĆ³n
Si estĆ”s utilizando el JS SDK de Mercado Pago no serĆ” necesario agregar el cĆ³digo de seguridad, ya que la informaciĆ³n relativa al Device ID serĆ” obtenida por defecto.

Puedes agregar el cĆ³digo de seguridad de Mercado Pago a tu sitio reemplazando el valor de view con el nombre de la secciĆ³n de tu web en la que deseas agregarlo. Si bien lo mĆ”s importante es hacerlo en la pĆ”gina del checkout, tambiĆ©n puedes hacerlo en otras pĆ”ginas, tales como home, search o Ć­tem, ya que ayuda a enriquecer la informaciĆ³n recolectada.

html

<script src="https://www.mercadopago.com/v2/security.js" view="home"></script>
Importante
En caso de no tener un valor disponible para la secciĆ³n, puedes dejarlo vacĆ­o.

Uso del Device ID en la web

Para usar el Device ID en la web y prevenir posibles compras fraudulentas, debes seguir los siguientes pasos:

1. Agrega nuestro cĆ³digo de seguridad

Para implementar la generaciĆ³n del Device ID en tu sitio, agrega el siguiente cĆ³digo a tu pĆ”gina de Checkout:

html

<script src="https://www.mercadopago.com/v2/security.js" view="checkout"></script>

2. ObtƩn el device ID

Una vez que hayas agregado el cĆ³digo de seguridad de Mercado Pago a tu sitio, automĆ”ticamente se crea una variable JavaScript global con el nombre MP_DEVICE_SESSION_ID, cuyo valor es el ID del dispositivo.

Si prefieres asignarlo a otra variable, indica el nombre agregando el atributo output al script de seguridad, como en el siguiente ejemplo:

html

  <script src="https://www.mercadopago.com/v2/security.js" view="checkout" output="deviceId"></script>

TambiƩn puedes crear tu propia variable agregando una etiqueta HTML a tu sitio con el identificador id="deviceID", como en el siguiente ejemplo:

html

  <input type="hidden" id="deviceId">

3. Uso del device ID

Una vez que tengas el valor del Device ID, debes enviarlo a nuestros servidores al crear un pago. Para hacer esto, agrega el siguiente encabezado (header) a la solicitud:

html

X-meli-session-id: device_id
AtenciĆ³n
Recuerda reemplazar device_id con el nombre de la variable que contiene su valor de ID del dispositivo.

Implementa el Device ID en tu aplicaciĆ³n mĆ³vil nativa

Si tienes una aplicaciĆ³n nativa, puedes capturar la informaciĆ³n del dispositivo con nuestro SDK y enviarla al momento de crear el token. Sigue estos pasos:

1. Agrega la dependencia

Agrega el siguiente cĆ³digo en el archivo Podfile.

          
use_frameworks!
pod ā€˜MercadoPagoDevicesSDKā€™

        

Necesitas agregar el repositorio y la dependencia en el archivo build.gradle.

          
repositories {
    maven {
        url "https://artifacts.mercadolibre.com/repository/android-releases"
    }
}
dependencies {
   implementation 'com.mercadolibre.android.device:sdk:4.0.1'
}

        

2. Inicializa el mĆ³dulo

Te recomendamos iniciarlo en el evento didFinishLaunchingWithOptions del AppDelegate.

          
import MercadoPagoDevicesSDK
...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        ...        
        MercadoPagoDevicesSDK.shared.execute()
        ...
}

        

Te recomendamos iniciarlo en el evento didFinishLaunchingWithOptions del AppDelegate.

          
@import ā€˜MercadoPagoDevicesSDKā€™;
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    [[MercadoPagoDevicesSDK shared] execute];
    ...
}

        

Te recomendamos iniciarlo en la clase MainApplication.

          
import com.mercadolibre.android.device.sdk.DeviceSDK;
DeviceSDK.getInstance().execute(this);

        

3. Captura la informaciĆ³n

Ejecuta alguna de estas funciones para obtener la informaciĆ³n en el formato que prefieras.

          
MercadoPagoDevicesSDK.shared.getInfo() // devuelve un objeto Device que es Codable
MercadoPagoDevicesSDK.shared.getInfoAsJson() // devuelve un objeto Data de la librerĆ­a de JSON
MercadoPagoDevicesSDK.shared.getInfoAsJsonString() // devuelve el json en formato de String
MercadoPagoDevicesSDK.shared.getInfoAsDictionary() // devuelve un Dictionary<String,Any>

        
          
[[[MercadoPagoDevicesSDK] shared] getInfoAsJson] // devuelve un objeto Data de la librerĆ­a JSON
[[[MercadoPagoDevicesSDK] shared] getInfoAsJsonString] // devuelve el json en formato de String
[[[MercadoPagoDevicesSDK] shared] getInfoAsDictionary] // devuelve un Dictionary<String,Any>

        
          
Device device = DeviceSDK.getInstance().getInfo() // devuelve un objeto Device, serializable
Map deviceMap = DeviceSDK.getInstance().getInfoAsMap()  // devuelve un Map<String, Object>
String jsonString = DeviceSDK.getInstance().getInfoAsJsonString() // devuelve un String de tipo Json

        

4. EnvĆ­a la informaciĆ³n

Por Ćŗltimo, envĆ­a la informaciĆ³n en el campo device al crear el card_token.

plain

{
	...,
	 "device":{
	  "fingerprint":{
	     "os":"iOS",
	     "system_version":"8.3",
	     "ram":18446744071562067968,
	     "disk_space":498876809216,
	     "model":"MacBookPro9,2",
	     "free_disk_space":328918237184,
	     "vendor_ids":[
	        {
	           "name":"vendor_id",
	           "value":"C2508642-79CF-44E4-A205-284A4F4DE04C"
	        },
	        {
	           "name":"uuid",
	           "value":"AB28738B-8DC2-4EC2-B514-3ACF330482B6"
	        }
	     ],
	     "vendor_specific_attributes":{
	        "feature_flash":false,
	        "can_make_phone_calls":false,
	        "can_send_sms":false,
	        "video_camera_available":true,
	        "cpu_count":4,
	        "simulator":true,
	        "device_languaje":"en",
	        "device_idiom":"Phone",
	        "platform":"x86_64",
	        "device_name":"iPhone Simulator",
	        "device_family":4,
	        "retina_display_capable":true,
	        "feature_camera":false,
	        "device_model":"iPhone Simulator",
	        "feature_front_camera":false
	     },
	     "resolution":"375x667"
	  }
}

Detalla toda la informaciĆ³n sobre el pago

Para optimizar la validaciĆ³n de la seguridad de los pagos y mejorar sus aprobaciones, es valioso enviar la mayor cantidad posible de datos del comprador y del Ć­tem. Puedes ver todos los atributos disponibles al crear un pago usando el mĆ©todo Crear pago. Presta especial atenciĆ³n a los atributos del nodo adicional_inf, particularmente a:

  • Datos del comprador,
  • Datos del producto,
  • Datos del envĆ­o.

Existen tambiƩn campos extra que pueden ser enviados dependiendo del ramo de actividades o industria de tu tienda. Puedes encontrar mƔs detalles sobre cada ramo y los datos del comprador y del envƭo que recomendamos incluir en cada uno de ellos aquƭ.

Mejora la experiencia del usuario

A menudo, el comprador puede cometer un error al completar sus datos en el checkout, asƭ que vale la pena revisar cada paso, posibles interacciones, e incluso el diseƱo, para comprobar que todo estƩ tan claro como deberƭa ser.

En caso de que optes por crear tu front-end desde cero, puedes encontrar consejos para hacerlo de forma eficiente aquĆ­. Si un pago resultara rechazado, es importante tambiĆ©n que expliques a tus clientes el motivo y quĆ© medidas pueden tomar para solucionarlo. De esta forma, tendrĆ”n toda la informaciĆ³n que necesitan para pagar sin problemas. Puedes encontrar recomendaciones de mensajes para los principales motivos de rechazo aquĆ­. Si, en cambio, quieres garantizar una interfaz optimizada, puedes utilizar los componentes visuales de Checkout Bricks, asĆ­ como aprovechar el componente visual ya listo con los mejores mensajes del Status Screen Brick.

Importante
Recomendamos verificar los resultados de la mediciĆ³n de la calidad de tu integraciĆ³n antes de salir a producciĆ³n, ya sea que haya sido realizada de manera manual o automĆ”tica. La misma permitirĆ” validar si estĆ” cumpliendo con los estĆ”ndares de calidad y seguridad de Mercado Pago, y proporcionarĆ” accionables para mejorar tu tasa de aprobaciĆ³n de pagos.