Integrar otros medios de pago - Checkout API - Mercado Pago Developers
Developers
Referencia de API
Soporte
Ingresar

    Inicio

    Empieza por aquí

    Cobros online

    Checkout Pro

    Checkout API

    Link de pago

    Suscripciones

    Marketplace

    Mobile Checkout

    Web Tokenize Checkout

    Pagos presenciales

    Código QR

    Mercado Pago Point

    Plugins y plataformas

    WooCommerce

    Prestashop

    Magento 2

    Shopify

    Tiendanube

    VTEX

    SDKs

    Notificaciones

    Webhooks

    IPN

    Gestión de cuenta

    Requisitos para ir a producción

    Obtener pagos

    Reportes

    Devoluciones y cancelaciones

    Gestión de contracargos

    Mejora la aprobación

    Recursos

    Localización

    Changelog

    Status

EN ESTA PÁGINA

Sugiere cambios
Ayúdanos a mejorar la documentación
¿Viste información errónea, te gustaría que expliquemos algo más o que mejoremos nuestras guías? Déjanos tus sugerencias en GitHub.

Integra otros medios de pago

Con el Checkout API de Mercado Pago puedes sumar otras alternativas de medios de pago para ofrecer a tus clientes a la hora de realizar el pago.

¿Cómo funciona?

Para recibir otros medios de pago, tienes que tener en cuenta dos instancias:

  1. Primero, necesitas un frontend para que recolecte el e-mail y documento de tu cliente y el método de pago y detalle del monto.
  2. Segundo, un backend que tome los datos del pago y pueda confirmar y efectuar el pago.

Tanto para el frontend como para el backend, recomendamos utilizar nuestras librerías para poder recolectar los datos sensibles de tus usuarios de manera segura.

Consulta los medios de pago disponibles

      Medios de pago

Además de tarjetas, también existen otras opciones de pago que puedes ofrecer en tu sitio.

Tipo de medio de pagoMedio de pago
ticketRapipago
ticketPago Fácil
ticketProvincia NET Pagos
ticketCarga Virtual
ticketCobro Express
atmRed Link

      Obtén los medios de pago disponibles

Puedes consultar los medios de pago disponibles siempre que lo necesites.

  • php
  • node
  • java
  • ruby
  • csharp
  • curl
          
<?php

  MercadoPago\SDK::setAccessToken("ENV_ACCESS_TOKEN");

  $payment_methods = MercadoPago::get("/v1/payment_methods");

?>

        
          
var mercadopago = require('mercadopago');
mercadopago.configurations.setAccessToken(config.access_token);

payment_methods = mercadopago.get("/v1/payment_methods");

        
          
import com.mercadopago.*;
MercadoPago.SDK.configure("ENV_ACCESS_TOKEN");

payment_methods = MercadoPago.SDK.get("/v1/payment_methods");


        
          
require 'mercadopago'
MercadoPago::SDK.configure(ACCESS_TOKEN: ENV_ACCESS_TOKEN)

payment_methods = MercadoPago::SDK.get("/v1/payment_methods")


        
          
using MercadoPago;
MercadoPago.SDK.SetAccessToken = "ENV_ACCESS_TOKEN";

payment_methods = MercadoPago.SDK.get("/v1/payment_methods");


        
          
curl -X GET \
    -H 'accept: application/json' \
    -H 'content-type: application/json' \
    -H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
    'https://api.mercadopago.com/v1/payment_methods' \

        

El resultado será un listado con los medios de pago y sus propiedades. Por ejemplo, los medios de pago del payment_type_id que tienen como valor ticket refieren a medio de pago en efectivo.

Ten en cuenta que la respuesta devolverá todos los medios de pago. Por eso, tienes que filtrar los medios que quieras ofrecer según la lista de medios de pago disponibles.

json

[
    {
        "id": "rapipago",
        "name": "Rapipago",
        "payment_type_id": "ticket",
        "status": "active",
        "secure_thumbnail": "https://www.mercadopago.com/org-img/MP3/API/logos/2002.gif",
        "thumbnail": "http://img.mlstatic.com/org-img/MP3/API/logos/2002.gif",
        "deferred_capture": "does_not_apply",
        "settings": [],
        "additional_info_needed": []
    },
    {
        "id": "redlink",
        "name": "RedLink",
        "payment_type_id": "atm",
        "status": "active",
        "secure_thumbnail": "https://www.mercadopago.com/org-img/MP3/API/logos/2003.gif",
        "thumbnail": "http://img.mlstatic.com/org-img/MP3/API/logos/2003.gif",
        "deferred_capture": "does_not_apply",
        "settings": [],
        "additional_info_needed": []
    },
    {
        "...": "..."
    }
]
Puedes obtener más información en la Referencias de API.

Captura los datos para el pago

Client-Side

      1. Usa la librería MercadoPago.js

Recuerda utilizar la librería oficial para acceder a la API de Mercado Pago desde tu aplicación y recolectar los datos de forma segura.

html

<script src="https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js"></script>

      2. Agrega el formulario de pago

Para realizar la captura de datos sensibles de tus clientes, es muy importante que utilices nuestro formulario con los atributos correspondientes para garantizar la seguridad de la información.

Puedes agregar todo lo que necesites y sumarle el estilo que quieras sin problemas.

Utiliza la lista que consultaste en Obtén los medios de pago disponibles para crear las opciones de pagos que quieres ofrecer.

html

<form action="/process_payment" method="post" id="paymentForm">
    <h3>Medio de pago</h3>
    <div>
      <select class="form-control" id="paymentMethod" name="paymentMethod">
        <option>Selecione un medio de pago</option>

        <!-- Create an option for each payment method with their name and complete the ID in the attribute 'value'. -->
        <option value="--PaymentTypeId--">--PaymentTypeName--</option>
      </select>
    </div>
    <h3>Detalles del comprador</h3>
    <div>
    <div>
        <label for="payerFirstName">Nombre</label>
        <input id="payerFirstName" name="payerFirstName" type="text" value="Nome"></select>
      </div>
      <div>
        <label for="payerLastName">Apellido</label>
        <input id="payerLastName" name="payerLastName" type="text" value="Sobrenome"></select>
      </div>
      <div>
        <label for="payerEmail">E-mail</label>
        <input id="payerEmail" name="payerEmail" type="text" value="test@test.com"></select>
      </div>
      <div>
        <label for="docType">Tipo de documento</label>
        <select id="docType" name="docType" data-checkout="docType" type="text"></select>
      </div>
      <div>
        <label for="docNumber">Número de documento</label>
        <input id="docNumber" name="docNumber" data-checkout="docNumber" type="text"/>
      </div>
    </div>

    <div>
      <div>
        <input type="hidden" name="transactionAmount" id="transactionAmount" value="100" />
        <input type="hidden" name="productDescription" id="productDescription" value="Nombre del Producto" />
        <br>
        <button type="submit">Pagar</button>
        <br>
      </div>
  </div>
</form>

      3. Configura tu clave pública

Agrega tu clave pública de la siguiente manera:

javascript

window.Mercadopago.setPublishableKey("YOUR_PUBLIC_KEY");
Si aún no tienes cuenta para ver tus credenciales, regístrate.

      4. Obtén los datos para tu formulario

        Obtener tipos de documentos

Uno de los campos obligatorios es el tipo de número de documento. Utiliza la lista de documentos al momento de completar los datos.

Incluyendo el elemento de tipo select con id = docType que se encuentra en el formulario, MercadoPago.js completará automáticamente las opciones disponibles cuando llames a la siguiente función:

javascript

window.Mercadopago.getIdentificationTypes();
Encuentra más detalle en la sección de Tipos de documentos.

Envía el pago a Mercado Pago

Server-Side

Para recibir pagos en efectivo solo tienes que enviar el e-mail y documento de tu cliente y el método de pago y detalle del monto.

Ya en tu backend con toda la información recolectada, es momento de enviar la solicitud a Mercado Pago a través de nuestras APIs.

Ten en cuenta que para que este paso funcione es necesario que configures tu clave privada.

  • php
  • node
  • java
  • ruby
  • csharp
  • curl
          
<?php

  MercadoPago\SDK::setAccessToken("ENV_ACCESS_TOKEN");

  $payment = new MercadoPago\Payment();
  $payment->transaction_amount = 100;
  $payment->description = "Título del producto";
  $payment->payment_method_id = "rapipago";
  $payment->payer = array(
    "email" => "test_user_19653727@testuser.com"
  );

  $payment->save();

?>

        
          
var mercadopago = require('mercadopago');
mercadopago.configurations.setAccessToken(config.access_token);

var payment_data = {
  transaction_amount: 100,
  description: 'Título del producto',
  payment_method_id: 'rapipago',
  payer: {
    email: 'test_user_3931694@testuser.com'
  }
};

mercadopago.payment.create(payment_data).then(function (data) {

}).catch(function (error) {

});


        
          
import com.mercadopago.*;
MercadoPago.SDK.configure("ENV_ACCESS_TOKEN");

Payment payment = new Payment();

payment.setTransactionAmount(100f)
      .setDescription('Título del producto')
      .setPaymentMethodId("rapipago")
      .setPayer(new Payer("test_user_19653727@testuser.com"));

payment.save();

        
          
require 'mercadopago'
MercadoPago::SDK.configure(ACCESS_TOKEN: ENV_ACCESS_TOKEN)

payment = MercadoPago::Payment.new()
payment.transaction_amount = 100
payment.description = 'Título del producto'
payment.payment_method_id = "rapipago"
payment.payer = {
  email: "test_user_19653727@testuser.com"
}

payment.save()


        
          
using MercadoPago;
using MercadoPago.DataStructures.Payment;
using MercadoPago.Resources;

MercadoPago.SDK.SetAccessToken("ENV_ACCESS_TOKEN");

Payment payment = new Payment()
{
    TransactionAmount = float.Parse("100"),
    Description = "Título del producto",
    PaymentMethodId = "rapipago",
    Payer = new Payer(){
        Email = "test_user_19653727@testuser.com"
  }
};

payment.Save();


        
          
curl -X POST \
  'https://api.mercadopago.com/v1/payments' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
  -d '{
  transaction_amount: 100,
  description: "Título del producto",
  payment_method_id: "rapipago",
  payer: { email: "test_user_19653727@testuser.com" }
}'

        

La respuesta va a mostrar el estado pendiente hasta que el comprador realice el pago. El ID del cupón de pago es igual al ID de la transacción de Mercado Pago.

json

[
 {
    ...,
    "id": 5466310457,
    "status": "pending",
    "status_detail": "pending_waiting_payment",
    ...,
    "transaction_details": {
        "net_received_amount": 0,
        "total_paid_amount": 100,
        "overpaid_amount": 0,
        "external_resource_url": "https://www.mercadopago.com/mla/payments/ticket/helper?payment_id=123456789&payment_method_reference_id= 123456789&caller_id=123456",
        "installment_amount": 0,
        "financial_institution": null,
        "payment_method_reference_id": "1234567890"
    }
 }
]

En el campo external_resource_url vas a encontrar una dirección que contiene las instrucciones para que tu comprador pueda pagar. Puedes redirigirlo o enviarle el enlace para que ingrese.

Nota
El cliente tiene entre 3 a 5 días para pagar según el medio de pago. Luego de este tiempo, debes cancelarlo.

Fecha de vencimiento para pagos en efectivo

Si quieres, puedes cambiarla la fecha de vencimiento por defecto de un pago en efectivo enviando el campo date_of_expiration en la solicitud de creación de pago. La fecha configurada debe ser entre 1 y 30 días a partir de la fecha de emisión.

  • php
  • node
  • java
  • ruby
  • csharp
  • curl

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

          

$payment->date_of_expiration = "2020-05-30T23:59:59.000-04:00";

        

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",

        

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

          

payment.setDateOfExpiration("2020-05-30T23:59:59.000-04:00")

        

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",

        

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

          

payment.DateOfExpiration = DateTime.Parse("2020-05-30T23:59:59.000-04:00");

        

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",

        

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.

Ten en cuenta los tiempos de acreditación por medio de pago para realizar la configuración.

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

Cancelar un pago

Es importante que puedas cancelar los pagos luego de su vencimiento para evitar problemas con el cobro. Los pagos de medios en efectivo deben ser pagados entre los 3 a 5 días hábiles según el tiempo de cada uno.

Ten en cuenta que solo puedes cancelar los pagos que se encuentren en estado pendiente o en proceso. Si la expiración de un pago se produce a los 30 días, la cancelación es automática y el estado final será de cancelado o expirado.

Puedes encontrar toda la información en la sección Devoluciones y cancelaciones.

Tiempos de acreditación del pago

Cada medio de pago tiene su propia fecha de acreditación, en algunos casos es inmediata y en otros puede demorar hasta 3 días hábiles.

Revisa los tiempos de acreditación por medio de pago siempre que lo necesites.


Próximos pasos

RECOMENDADO

Prueba tu integración

Revisa que esté todo bien en tu integración con los usuarios de prueba.

RECOMENDADO

Integración avanzada

Optimiza tu integración y mejora la gestión de tus ventas.

¿Te resultó útil esta información?

Mercado Pago ofrece servicios de pago y no está autorizado por el Banco Central a operar como entidad financiera. Los fondos acreditados en cuentas de pago no constituyen depósitos en una entidad financiera ni están garantizados conforme legislación aplicable a depósitos en entidades financieras. Copyright © 2021 MercadoLibre S.R.L.

Términos y condicionesCómo cuidamos tu privacidad
Partners Mercado Pago

Al navegar en este sitio aceptás las cookies que utilizamos para mejorar tu experiencia. Más información.