Outros meios de pagamento
Com o Checkout API do Mercado Pago, também é possível oferecer pagamentos com OXXO, Paycash, Banamex e BBVA Bancomer.
Com esses meios de pagamento, os compradores poderão realizar um pagamento diferido em dinheiro, sempre dentro do prazo estabelecido para seu vencimento, e deverão aguardar que o mesmo seja creditado para considerar a compra concluída.
Se você deseja continuar com a sua integração após ter configurado seu ambiente e quer oferecer pagamentos com OXXO, Paycash, Citibaname e BBVA Bancomer, siga os passos abaixo.
processing_mode. Para mais informações, acesse a seção Modelo de integração.Para receber pagamentos, é necessário adicionar no frontend um formulário que permita capturar os dados do pagador de maneira segura.
Se você já tem um desenvolvimento que inclui um formulário de pagamento próprio, certifique-se de incluir OXXO, Paycash, Banamex ou BBVA Bancomer entre as opções de pagamento que deseja oferecer, conforme indicado abaixo, e continue para a etapa de Enviar pagamento.
Caso ainda não tenha um formulário de pagamento, adicione o modelo abaixo ao seu projeto e inclua o identificador do Pix como opção a ser oferecida.
| Meio de pagamento | payment_method_id |
| BBVA Bancomer | bancomer |
| Banamex | banamex |
| OXXO | oxxo |
| Paycash | paycash |
html
<form id="form-checkout" action="/process_payment" method="post"> <div> <div> <label for="payerFirstName">Nombre</label> <input id="form-checkout__payerFirstName" name="payerFirstName" type="text"> </div> <div> <label for="payerLastName">Appelido</label> <input id="form-checkout__payerLastName" name="payerLastName" type="text"> </div> <div> <label for="email">E-mail</label> <input id="form-checkout__email" name="email" type="text"> </div> <div> <label for="identificationType">Tipo de documento</label> <select id="form-checkout__identificationType" name="identificationType" type="text"></select> </div> <div> <label for="identificationNumber">Número del documento</label> <input id="form-checkout__identificationNumber" name="identificationNumber" type="text"> </div> </div> <div> <div> <input type="hidden" name="transactionAmount" id="transactionAmount" value="100"> <input type="hidden" name="description" id="description" value="Nome do Produto"> <br> <button type="submit">Pagar</button> </div> </div> </form>
O envio do pagamento deve ser realizado mediante a criação de uma order que contenha a transação de pagamento associada.
Para isso, envie um POST com seu Access Token de testeChave privada da aplicação criada no Mercado Pago e que é utilizada no backend. Você pode acessá-la através de Suas integrações > Dados da integração > Testes > Credenciais de teste. e os parâmetros requeridos listados abaixo para o endpoint /v1/ordersAPI e execute a requisição.
curl
curl --location --request POST 'https://api.mercadopago.com/v1/orders' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ --header 'X-Idempotency-Key: <SOME_UNIQUE_VALUE>' \ --data-raw '{ "type": "online", "external_reference": "ext_ref_1234", "processing_mode": "automatic", "total_amount": "200.00", "expiration_time": "P3D", "payer": { "email": "test_user_mx@testuser.com", "first_name": "John", "last_name": "Doe", "identification": { "type": "CURP", "number": "99999999999" } }, "transactions": { "payments": [ { "amount": "200.00", "payment_method": { "id": "oxxo", "type": "ticket" } } ] } }'
| Atributo | Tipo | Descrição | Obrigatoriedade |
Authorization | Header | Faz referência a sua chave privada, o Access Token de testeChave privada da aplicação criada no Mercado Pago e que é utilizada no backend. Você pode acessá-la através de Suas integrações > Dados da integração > Testes > Credenciais de teste.. | Obrigatório |
X-Idempotency-Key | Header | Chave de idempotência. Essa chave garante que cada solicitação seja processada apenas uma vez, evitando duplicidades. Use um valor exclusivo no header da requisição, como um UUID V4 ou uma string aleatória. | Obrigatório |
processing_mode | Body. String | Modo de processamento da order. Os valores possíveis são: - automatic: para criar e processar a ordem em modo automático. - manual: para criar a order e processá-la posteriormente. Para mais informações, acesse a seção Modelo de integração. | Obrigatório |
total_amount | Body. String | Valor total da transação. | Obrigatório |
expiration_time | Body. String | Permite definir a data de vencimento utilizando o formato de duração ISO 8601. Embora você possa configurá-la para ser entre 1 e 30 dias após a emissão do pagamento, recomendamos estabelecer uma duração de 3 dias (“P3D” no exemplo) para evitar conflitos entre o vencimento e a acreditação do pagamento, que pode demorar até 2 horas úteis a partir de sua realização. Em caso de que o pagamento seja realizado após a data de vencimento estabelecida, o valor será devolvido à conta do Mercado Pago do pagador. | Opcional |
payer.email | Body. String | E-mail do comprador. | Obrigatório |
transaction.payments.payment_method.id | Body. String | Identificador do meio de pagamento. Neste caso, o valor deverá ser: bancomer: para pagamentos com BBVA Bancomer. banamex: para pagamentos com Banamex. oxxo: para pagamentos com OXXO. paycash: para pagamentos com Paycash. | Obrigatório |
transaction.payments.payment_method.type | Body. String | Tipo do meio de pagamento. No caso de pagamentos com BBVA Bancomer ou Banamex, o valor deverá ser atm. No caso de pagamentos com OXXO ou Paycash, o valor deverá ser ticket. | Obrigatório |
ticket_url, que contém a URL com as instruções para que o comprador efetue o pagamento, para a qual você deve redirecioná-lo. Além disso, mostrará o status action_required até que o pagamento seja realizado.json
{ "id": "ORD01J6TC8BYRR0T4ZKY0QR39WGYE", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "marketplace": "NONE", "total_amount": "200.00", "country_code": "MEX", "user_id": "1245621468", "status": "action_required", "status_detail": "waiting_payment", "capture_mode": "automatic", "created_date": "2024-09-02T22:04:01.880469Z", "last_updated_date": "2024-09-02T22:04:04.429289Z", "integration_data": { "application_id": "4599991948843755" }, "transactions": { "payments": [ { "id": "PAY01J6TC8BYRR0T4ZKY0QRTZ0E24", "amount": "200.00", "reference_id": "22dvqmsbq8c", "status": "action_required", "status_detail": "waiting_payment", "payment_method": { "id": "oxxo", "type": "ticket", "ticket_url": "https://www.mercadopago.com.mx/sandbox/payments/00000000000/ticket?caller_id=77777777777&hash=34cb0d7c-81d9-478c-92a5-767d0kakjja", "barcode_content": "3335008800000000006004835002100020000242462010", "reference": "1234567890", "verification_code": "1234567890" } } ] } }
Dentre os parâmetros retornados, temos os indicados na tabela abaixo.
| Atributo | Tipo | Descrição |
transactions.payments.status | String | Retorna o status da transação. Neste caso, retornará action_required para indicar a necessidade de uma ação para concluir o processamento, ou seja, até que se realize o pagamento. |
transactions.payments.status_detail | String | Detalhe do status da transação. Neste caso, o valor obtido é aguardando (waiting_payment) que o comprador finalize o pagamento. |
transactions.payments.payment_method.ticket_url | String | URL com as instruções de pagamento para a qual você deverá redirecionar o comprador. |
transactions.payments.payment_method.barcode_content | String | Código de barras em formato EAN-13 para pagamento do comprovante. |
transactions.payments.payment_method.reference | String | Código de referência do pagamento. |
transactions.payments.payment_method.verification_code | String | Código de verificação do pagamento. |
É importante compartilhar com os compradores as informações sobre os diferentes locais onde eles podem realizar o pagamento. Consulte a tabela a seguir para conhecer os dados de cada um deles e inclua-os ao disponibilizar o cupom de pagamento.
| Meio de pagamento | Estabelecimentos disponíveis |
| OXXO | OXXO |
| PayCash | 7-Eleven Circle K Soriana Extra Calimax Santander |
| BBVA Bancomer | BBVA Bancomer Farmacias del Ahorro Casa Ley |
| Banamex | Banamex Chedraui Telecomm |
Caso deseje, você pode cancelar um pagamento criado, desde que esteja pendente ou em processamento. Ou seja, com status=action_required.
Além disso, recomendamos cancelar os pagamentos que não foram realizados dentro da data de vencimento estabelecida, para evitar problemas de cobrança e conciliação.
Para obter mais informações, consulte a seção Reembolsos e cancelamentos.
