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.

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.