Cargo a Meses Sin Intereses

Acepta pagos a meses sin intereses con Tarjeta

En esta documentación explicamos cómo aceptar pagos con Tarjetas de crédito y débito a Meses Sin Intereses; utilizando la tokenización a través del Component. Podrás utilizar todo el poder de nuestra API de Pagos en un front end diseñado por ti, adaptado a las necesidades de tu negocio en línea.

Montos mínimos

🚧

IMPORTANTE

Existen montos mínimos para cada opción de meses sin intereses seleccionada, es importante considerarlos para que tu transacción no sea rechazada.

PlazoMonto Mínimo
3 Meses300.00 MXN
6 Meses600.00 MXN
9 Meses900.00 MXN
12 Meses1,200.00 MXN
18 Meses (Citibanamex)1,800.00 MXN
24 Meses (BBVA, Banorte y Afirme)2,4000.00 MXN

Crea una orden con MSI (obligatorio)

Utiliza este request para crear la orden si estás integrando Cargo Único con tarjeta. Una vez obtenido el token, puedes crear la orden con la siguiente estructura:

-H "Accept: application/vnd.conekta-v2.1.0+json" \
-H "Content-type: application/json" \
-u key_YOUR_PRIVATE_API_KEY: \
-X POST -d '{
"line_items": [{ 
     "name": "Nombre del Producto o Servicio",
     "unit_price": 23000,
     "quantity": 1
   }],
   "currency": "MXN",
   "customer_info": {
     "name": "Jorge Martínez",
     "email": "[email protected]",
     "phone": "+5218181818181"
   },
    "metadata":{
     "datos_extra": "1234"
   },
   "charges":[{
     "payment_method": {
       "type": "card",
       "token_id": "tok_2q6cyio5sDqCyvYh7",
       "monthly_installments": 3
     }
   }]
}’https://api.conekta.io/orders
{
    "livemode": false,
    "amount": 23000,
    "currency": "MXN",
    "payment_status": "paid",
    "amount_refunded": 0,
    "customer_info": {
        "email": "[email protected]",
        "phone": "+5218181818181",
        "name": "Jorge Martínez",
        "object": "customer_info"
    },
    "object": "order",
    "id": "ord_2tQAKpPrfkdyzZvfM",
    "metadata": {**
        "datos_extra": "1234"
    },
    "is_refundable": true,
    "created_at": 1676929549,
    "updated_at": 1676929551,
    "line_items": {
        "object": "list",
        "has_more": false,
        "data": [
            {
                "name": "Nombre del Producto o Servicio",
                "unit_price": 23000,
                "quantity": 1,
                "object": "line_item",
                "id": "line_item_2tQAKpPrfkdyzZvfK",
                "parent_id": "ord_2tQAKpPrfkdyzZvfM",
                "metadata": {},
                "antifraud_info": {}
            }
        ]
    },
    "charges": {
        "object": "list",
        "has_more": false,
        "data": [
            {
                "id": "63f3ea0d88dc6c0019a3fe39",
                "livemode": false,
                "created_at": 1676929549,
                "currency": "MXN",
                "device_fingerprint": "e6edc7bb5ca296c0c61acb60ad20d083",
                "payment_method": {
                    "name": "ESTEFANIA ALBARRAN",
                    "exp_month": "12",
                    "exp_year": "23",
                    "auth_code": "731650",
                    "object": "card_payment",
                    "type": "credit",
                    "last4": "4242",
                    "brand": "visa",
                    "issuer": "banamex",
                    "account_type": "BANAMEX",
                    "country": "MX",
                    "fraud_indicators": []
                },
                "object": "charge",
                "description": "Payment from order",
                "status": "paid",
                "amount": 23000,
                "paid_at": 1676929550,
                "fee": 1255,
                "customer_id": "",
                "order_id": "ord_2tQAKpPrfkdyzZvfM" 
            }
        ]
    }
}

Utiliza este request para crear la orden si estás integrando Cargo Bajo Demanda con tarjeta. Una vez asociada (guardada) la tarjeta al customer, puedes crear la orden con la siguiente estructura:

curl --location --request POST 'https://api.conekta.io/orders' \
	--header 'Accept: application/vnd.conekta-v2.1.0+json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer key_DwaOLXoX6YCGGvfNifZ3IPwi' \
  --data-raw '{
  	"currency": "MXN",
    "customer_info": {
    	"customer_id": "cus_2qUBQEkFJ7Kw4GVTJ"
     },
    "line_items": [
      {
        "name": "Vasija de Cerámica",
        "unit_price": 20015,
        "quantity": 1,
        "description": "Description",
        "sku": "SKU"
      }
  	],
    "charges":[{
    		"payment_method": {
        			"type": "default",
               "monthly_installments": 3
         }
    }]
	}'

👍

TIP:

Si al momento de crear la orden, utilizas directo el payment_source_id devuelto al asociar la tarjeta al customer, cambia la sección del "payment_method" por lo que sigue:

Utilizando el payment_source_id:

"charges":[{
    "payment_method": {
        "type": "card", 
        "payment_source_id": "src_2qUCNd5AyQqfPMBuV",
        "monthly_installments": 3
      }
  }],

Habilitar Meses Sin Intereses en Pago Directo con Component

Si estás integrando el cobro rápido a través de Component, puedes habilitar la opción de Meses sin Intereses utilizando los atributos monthly_installments_enabled y monthly_installments_options en el objeto Checkout de la orden al momento de crearla, como se muestra a continuación:

curl --location --request POST 'https://api.conekta.io/orders' \
	--header 'Accept: application/vnd.conekta-v2.1.0+json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer key_DwaOLXoX6YCGGvfNifZ3IPwi' \
  --data-raw '{
  	"currency": "MXN",
    "customer_info": {
    	"customer_id": "cus_2neG7CYEdeda9BBGU"
     },
     "line_items": [
     		{
        	"name": "Nintendo Switch OLED",
          "unit_price": 9000000,
          "quantity": 3
        }
     ],
     "checkout": {
     		"type": "Integration",
        "allowed_payment_methods": ["card"] //Habilita pago con tarjetas
        "monthly_installments_enabled": true, //Habilita meses sin intereses
        "monthly_installments_options": [3, 6, 9, 12, 18, 24] //Cantidad de cuotas
     }
	}'

Una vez creada la orden deberás obtener el Checkout ID asociado para inicializar el Component embebido en tu página de Checkout. El component deberá renderizarse en tu sitio de la siguiente manera:

📘

Recuerda:

Habilita únicamente las opciones de Meses sin Intereses disponibles, con base en el monto mínimo y el banco emisor de la tarjeta.

Por último, una vez confirmado el pago, se generará un evento onFinalizePayment en el cliente el cual te mostrará la información de la orden y el cargo. En este momento podrás tomar decisiones relacionadas con el estado de la compra como redireccionar a una página de pago exitoso o a una página con el resumen de la compra.

{
    "id": "ord_2sxz1L8TSv8RufVZV",
    "reference": "646180111812345678",
    "charge": {
        "id": "638e615afede9b001793237e",
        "currency": "MXN",
        "payment_method": {
            "type": "card"
        },
        "status": "pending_payment",
        "customer_id": "",
        "order_id": "ord_2sxz1L8TSv8RufVZV"
    },
    "metaData": {}
}

📘

NOTA FINAL:

La orden se pagará por completo, cada pago a MSI lo controlará el banco emisor correspondiente a la tarjeta con la que se haya pagado.

El negocio recibirá el depósito total correspondiente a las fechas estipuladas en los términos de uso de la plataforma por pagos con tarjeta. Sin embargo para validar que fue la orden creada a MSI, en el detalle de la orden (que puedes consultar vía API o directamente en el Panel de tu compañía) se visualizará el número de meses en que el customer decidió realizar el pago.

Capturar eventos de cada pago

Es importante recordar que el Banco Emisor es quien se encarga de Automatiza tus procesos a través de los eventos que se generan en el flujo de pago. Para recibir estos eventos y ejecutar acciones sigue la guía de webhooks

Te recomendamos capturar los siguientes eventos:

EventoDescripción
order.paidEnviado cuando el cliente completa un pago de forma exitosa
order.pending_paymentEnviado cuando una orden es creada pero está pendiente de pago
order.declinedEnviado cuando el pago de una orden es declinado.

Al capturar estos eventos podrás tomar acciones postventa como:

  • Ejecutar un flujo de logística.
  • Actualizar tus bases de datos de órdenes.
  • Actualizar tus sistemas contables.