Abitab e Redpagos
Com o Checkout API do Mercado Pago, também é possível oferecer pagamentos com Abitab e Redpagos para compradores no Uruguai. Com esses meios de pagamento, o comprador realiza um pagamento diferido em dinheiro em qualquer ponto da rede Abitab ou Redpagos, dentro do prazo de vencimento definido pelo integrador. A compra é considerada concluída somente após a confirmação do pagamento.
Se você já tem o ambiente de desenvolvimento configurado e deseja oferecer Abitab e Redpagos como meios de pagamento, siga os passos abaixo.
processing_mode. Para mais informações, acesse a seção Modelo de integração.Para receber pagamentos com Abitab ou Redpagos, é necessário adicionar ao frontend um formulário que capture os dados do pagador de forma segura.
Se você já tem um formulário de pagamento, certifique-se de incluir os meios de pagamento desejados entre as opções disponíveis conforme indicado abaixo e continue para a etapa de Enviar pagamento.
| Meio de pagamento | payment_method_id |
| Abitab | abitab |
| Redpagos | redpagos |
html<form id="form-checkout" action="/process_payment" method="post"> <div> <label for="payerFirstName">Nombre</label> <input id="form-checkout__payerFirstName" name="payerFirstName" type="text"> </div> <div> <label for="payerLastName">Apellido</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"> <option value="CI">CI</option> </select> </div> <div> <label for="identificationNumber">Número del documento</label> <input id="form-checkout__identificationNumber" name="identificationNumber" type="text"> </div> <div> <input type="hidden" name="transactionAmount" id="transactionAmount" value="1000"> <button type="submit">Pagar</button> </div> </form>
O envio do pagamento é realizado criando uma order que contenha a transação de pagamento associada.
Para isso, envie uma requisição com o seu Access Token de testeChave privada da aplicação criada no Mercado Pago, utilizada no backend. Acesse-a em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`. e os parâmetros indicados abaixo para o endpoint /v1/ordersPOST e execute a requisição.
O exemplo abaixo demonstra a criação de uma order com Abitab. Para Redpagos, utilize a mesma estrutura de requisição substituindo payment_method.id por redpagos.
curlcurl --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": "1000.00", "payer": { "email": "test_user_uy@testuser.com", "entity_type": "individual", "first_name": "John", "last_name": "Doe", "identification": { "type": "CI", "number": "12345678" }, "phone": { "area_code": "598", "number": "3001234567" }, "address": { "street_name": "18 de Julio", "street_number": "100", "zip_code": "11100", "neighborhood": "Centro", "city": "Montevideo" } }, "transactions": { "payments": [ { "amount": "1000.00", "expiration_time": "P3D", "payment_method": { "id": "abitab", "type": "ticket" } } ] } }'
429 Too Many Requests, aguarde o tempo indicado no header Retry-After da resposta antes de tentar novamente. Consulte Possíveis erros para mais detalhes.| Parâmetro | Tipo | Descrição | Obrigatoriedade |
Authorization | Header | Faz referência à sua chave privada, o Access Token de testeChave privada da aplicação criada no Mercado Pago, utilizada no backend. Acesse-a em Suas integrações > Dados da integração > Testes > Credenciais de teste. O Access Token de teste começa com o prefixo `APP_USR`.. | Obrigatório |
X-Idempotency-Key | Header | Chave de idempotência. Garante que cada solicitação seja processada apenas uma vez. 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: automatic para criar e processar automaticamente, ou manual para processar em etapa separada. Para mais informações, acesse Modelo de integração. | Obrigatório |
total_amount | Body. String | Valor total da transação. | Obrigatório |
payer.email | Body. String | E-mail do comprador. | Obrigatório |
payer.entity_type | Body. String | Tipo de entidade do comprador. No exemplo, o valor é individual. | Opcional |
payer.first_name | Body. String | Nome do comprador. | Opcional |
payer.last_name | Body. String | Sobrenome do comprador. | Opcional |
payer.identification.type | Body. String | Tipo de documento do comprador. Para Uruguai: CI (Cédula de Identidad). | Obrigatório |
payer.identification.number | Body. String | Número de documento do comprador. | Obrigatório |
payer.phone.area_code | Body. String | Código de área do telefone do comprador. | Opcional |
payer.phone.number | Body. String | Número de telefone do comprador. | Opcional |
payer.address.street_name | Body. String | Nome da rua do endereço do comprador. | Opcional |
payer.address.street_number | Body. String | Número da rua do endereço do comprador. | Opcional |
payer.address.zip_code | Body. String | Código postal do endereço do comprador. | Opcional |
payer.address.neighborhood | Body. String | Bairro do endereço do comprador. | Opcional |
payer.address.city | Body. String | Cidade do endereço do comprador. | Opcional |
transactions.payments.payment_method.id | Body. String | Identificador do meio de pagamento. Neste caso, o valor deve ser abitab ou redpagos. | Obrigatório |
transactions.payments.payment_method.type | Body. String | Tipo do meio de pagamento. Neste caso, o valor deve ser ticket. | Obrigatório |
transactions.payments.expiration_time | Body. String | Prazo de vencimento do voucher em formato de duração ISO 8601. Embora seja possível configurá-lo entre 1 e 30 dias após a criação do pagamento (P1D a P30D), recomendamos definir um prazo que permita ao comprador realizar o pagamento entre 3 e 5 dias úteis. Como expiration_time usa uma duração em dias (PnD), considere fins de semana e feriados ao definir o valor. O prazo de acreditação do pagamento pode demorar até 2 horas úteis a partir de sua realização. Caso o pagamento seja realizado após a data de vencimento estabelecida, o valor será devolvido à conta do Mercado Pago do pagador. | Opcional |
A criação do pagamento ocorre de forma assíncrona na order. Enquanto está sendo processada, a order é devolvida com o status de processing e sem informações.
Após a conclusão do processamento, e por se tratar de um meio de pagamento offline, a order passa para o status action_required com o detalhe waiting_payment, indicando que o comprador ainda precisa concluir o pagamento, como mostrado no exemplo de resposta a seguir. Recomendamos configurar as notificações do tópico Order para receber atualizações sobre a mudança de status, incluindo os dados atualizados da order. Alternativamente, você pode optar por enviar uma requisição ao endpoint /v1/orders/{id}GET para consultar o status atualizado.
json{ "id": "ORDBTA01M0TKHHARTFR1ZWDCJ1CNEPKC", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "total_amount": "1000.00", "total_paid_amount": "0.00", "country_code": "URY", "user_id": "1234567890", "status": "action_required", "status_detail": "waiting_payment", "capture_mode": "automatic_async", "currency": "UYU", "created_date": "2026-08-25T16:10:27.396Z", "last_updated_date": "2026-08-25T16:10:28.407Z", "transactions": { "payments": [ { "id": "PAY01M0TKHHBD6V3MDQX3JQ4J6AXR", "amount": "1000.00", "expiration_time": "P3D", "date_of_expiration": "2026-08-28T16:10:27.396+00:00", "reference_id": "123456789012", "status": "action_required", "status_detail": "waiting_payment", "payment_method": { "id": "abitab", "type": "ticket", "ticket_url": "https://www.mercadopago.com.uy/payments/123456789012/ticket?caller_id=1234567890&payment_method_id=abitab&payment_id=123456789012&payment_method_reference_id=1234567890&hash=00000000-0000-0000-0000-000000000000", "reference": "1234567890", "verification_code": "1234567890" } } ] } }
Após criar a order, exiba ao comprador as informações necessárias para concluir o pagamento em um ponto Abitab ou Redpagos. Esses dados estão disponíveis nos campos payment_method da resposta.
| Campo | Descrição |
ticket_url | URL com as instruções completas de pagamento. Redirecione ou exiba esse link ao comprador. |
reference | Código de referência do pagamento. |
verification_code | Código de verificação do pagamento. |
O comprador deve utilizar o ticket_url, ou o reference e o verification_code, em um ponto Abitab ou Redpagos para concluir o pagamento dentro do prazo de vencimento definido em date_of_expiration.
Depois que o comprador realizar o pagamento, a order passa para status: processed. Se você configurou suas notificações, isso será notificado via webhook.
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.