Integrar outros meios de pagamento - Checkout API - Mercado Pago Developers
Developers
Referência API
Suporte
Entrar

    Inicio

    Começando

    Pagamentos online

    Checkout Pro

    Checkout API

    Link de pagamento

    Assinaturas

    Marketplace

    Mobile Checkout

    Web Tokenize Checkout

    Pagamentos presenciais

    Código QR

    Mercado Pago Point

    Plugins e plataformas

    WooCommerce

    Prestashop

    Magento 2

    Shopify

    Tiendanube

    VTEX

    SDKs

    Notificações

    Webhooks

    IPN

    Gerenciamento de conta

    Requisitos para ir à produção

    Obter pagamentos

    Relatórios

    Devoluções e cancelamentos

    Gestão de estornos

    Melhora a aprovação

    Recursos

    Localização

    Changelog

    Status

NESTA PÁGINA

Sugerir alterações
Ajude-nos a melhorar a documentação
Você viu informações equivocadas, gostaria que explicássemos algo a mais ou que melhorássemos nossos manuais? Deixe suas sugestões no GitHub.

Integre outros meios de pagamento

Com o Checkout API do Mercado Pago você pode oferecer outras alternativas de meios de pagamento para seus clientes.

Como funciona?

Para receber outros meios de pagamento, é importante ter em conta duas instâncias:

  1. Primeiro, é preciso um frontend para coletar o e-mail e documento do seu cliente e a método de pagamento e detalhe do valor.
  2. Segundo, um backend que tome os dados do pagamento e pode confirmar e fazer o pagamento.

Tanto para o frontend como para o backend, recomendamos utilizar nossos SDKs para poder coletar os dados sensíveis dos seus usuários de maneira segura.

Consulta os meios de pagamento disponíveis

      Meios de pagamento

Além de cartões, também existem outras opções de pagamento que podem ser oferecidas no seu site.

Tipo de meio de pagamentoMeio de pagamento
ticketRapipago
ticketPago Fácil
ticketProvincia NET Pagos
ticketCarga Virtual
ticketCobro Express
atmRed Link

      Obtenha os meios de pagamento disponíveis

Consulte os meios de pagamento disponíveis sempre que necessite.

  • 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' \

        

O resultado será uma lista com os meios de pagamento e suas propriedades. Por exemplo, os meios de pagamento do payment_type_id que tenham como valor ticket se referem aos meios de pagamento em dinheiro.

Tenha em conta que essa resposta devolverá todos os meios de pagamento. Por isso você precisa filtrar as formas de pagamento que queira oferecer de acordo com a lista de pagamentos disponíveis.

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": []
    },
    {
        "...": "..."
    }
]
Obtenha mais informação nas Referências de API.

Capture os dados para pagamento

Client-Side

      1. Usa a biblioteca MercadoPago.js

Lembre-se usar nossa biblioteca oficial para acessar a API de Mercado Pago no seu frontend e coletar os dados de forma segura.

html

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

      2. Adicione o formulário de pagamento

Para realizar a captura dos dados sensíveis dos seus clientes, é muito importante que utilize nosso formulário com os atributos correspondentes para garantir a segurança da informação.

Você pode adicionar tudo o que necessite e adicionar o estilo que queira sem problemas.

Use a lista que você consultou em Obtenha os meios de pagamento disponíveis para criar as opções de pagamento que deseja oferecer.

html

<form action="/process_payment" method="post" id="paymentForm">
    <h3>Forma de Pagamento</h3>
    <div>
      <select class="form-control" id="paymentMethod" name="paymentMethod">
        <option>Selecione uma forma de pagamento</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>Detalhe do comprador</h3>
    <div>
    <div>
        <label for="payerFirstName">Nome</label>
        <input id="payerFirstName" name="payerFirstName" type="text" value="Nome"></select>
      </div>
      <div>
        <label for="payerLastName">Sobrenome</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 do 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="Nome do Produto" />
        <br>
        <button type="submit">Pagar</button>
        <br>
      </div>
  </div>
</form>

      3. Configure sua chave pública

Configure sua chave pública da seguinte forma:

javascript

window.Mercadopago.setPublishableKey("YOUR_PUBLIC_KEY");
Se ainda não possui conta para ver suas credenciais, regístre-se.

      4. Obtenha os dados para seu formulário

        Obtenha os tipos de documento

Um dos campos obrigatórios é o tipo de documento. Utilize a lista de documentos no momento de completar os dados.

Incluindo o elemento de tipo select com id = docType que se encontra no formulário, MercadoPago.js completará automaticamente as opções disponíveis quando a seguinte função for chamada:

javascript

window.Mercadopago.getIdentificationTypes();
Encontre mais detalhes na seção de Tipos de documentos.

Envie o pagamento ao Mercado Pago

Server-Side

Para receber pagamentos em dinheiro envie o e-mail e documento do seu cliente e a método de pagamento e detalhe do valor.

Já estando no seu backend com toda a informação coletada, é o momento de enviar a solicitação ao Mercado Pago através das nossas APIs.

Tenha em conta que para que esse passo funcione é necessário que configure sua chave 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 do produto";
  $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 do produto',
  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 do produto')
      .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 do produto'
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 do produto",
    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 do produto",
  payment_method_id: "rapipago",
  payer: { email: "test_user_19653727@testuser.com" }
}'

        

A resposta mostrará o estado pendente até que o comprador realize o pagamento. O ID do cupom de pagamento é igual ao ID da transação no 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"
    }
 }
]

No campo external_resource_url você encontrará um endereço que contêm as instruções para que o comprador possa pagar. Você pode redirecioná-lo ao link para que acesse.

Nota
O cliente tem entre 3 e 5 días para pagar, dependendo do meio de pagamento. Após esse tempo, deve cancelá-lo.

Data de expiração de meios de pagamento em dinheiro

Opcionalmente é possível alterar a data de vencimento por padrão para pagamentos em dinheiro enviando o campo date_of_expiration na requisição de criação do pagamento. A data configurada deve estar entre 1 e 30 dias a partir da data de emissão.

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

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

A data usa o formato ISO 8601: yyyy-MM-dd'T'HH:mm:ssz

          

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

        

O prazo de creditação está entre 1 e 2 dias úteis de acordo com o meio de pagamento. Por isso recomendamos que você defina a data de expiração com no mínimo 3 dias para garantir que o pagamento seja feito.

Revise os tempos de creditação por meio de pagamento para executar a configuração.

Importante
Caso o pagamento seja realizado depois da data de expiração, o valor será estornado na conta do Mercado Pago do pagador.

Cancelar um pagamento

É importante que possa cancelar pagamentos assim que vençam para evitar problemas de cobrança. Os pagamentos em dinheiro devem ser pagos entre 3 e 5 días úteis de acordo com o tempo de cada um.

Tenha em conta que apenas se pode cancelar os pagamentos que se encontram com estado pendente ou em processo. Se a expiração de um pagamento ocorre aos 30 días, o cancelamento é automático e o estado final será cancelado ou expirado.

Encontre toda informação na seção Devoluções e cancelamentos.

Tempos de creditação do pagamento

Cada meio de pagamento possui sua própria data de creditação, em alguns casos é imediata e em outros pode demorar até 3 días úteis.

Revise os tempos de creditação por meio de pagamento sempre que necessite.


Próximos passos

RECOMENDADO

Teste sua integração

Revise que esteja tudo bem com sua integração com usuários de teste.

RECOMENDADO

Integração avançada

Otimize sua integração e melhore a gestão das suas vendas.

Essas informações foram úteis?

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.

Termos e condiçõesComo cuidamos da sua privacidade
Partners Mercado Pago

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