Abitab y Redpagos
Con Checkout API de Mercado Pago, también puedes ofrecer pagos con Abitab y Redpagos para compradores en Uruguay. Con estos medios de pago, el comprador realiza un pago diferido en efectivo en cualquier punto de la red Abitab o Redpagos, dentro del plazo de vencimiento definido por el integrador. La compra se considera completada solo tras la confirmación del pago.
Si ya tienes el entorno de desarrollo configurado y quieres ofrecer Abitab y Redpagos como medios de pago, sigue los pasos a continuación.
processing_mode. Para más información, accede a la sección Modelo de integración.Para recibir pagos con Abitab o Redpagos, es necesario agregar al frontend un formulario que capture los datos del pagador de forma segura.
Si ya tienes un formulario de pago, asegúrate de incluir los medios de pago deseados entre las opciones disponibles como se indica a continuación y continúa con el paso Enviar pago.
| Medio de pago | 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>
El envío del pago se realiza creando una order que contenga la transacción de pago asociada.
Para eso, envía una solicitud con tu Access Token de pruebaClave privada de la aplicación creada en Mercado Pago, que es utilizada en el backend. Puedes acceder a ella a través de Tus integraciones > Datos de integración > Pruebas > Credenciales de prueba. El Access Token de prueba comienza con el prefijo `APP_USR`. y los parámetros requeridos enumerados a continuación al endpoint /v1/ordersPOST y ejecutes la requisición.
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, espera el tiempo indicado en el header Retry-After de la respuesta antes de intentar nuevamente. Consulta Posibles errores para más detalles.| Parámetro | Tipo | Descripción | Obligatoriedad |
Authorization | Header | Hace referencia a tu clave privada, el Access Token de pruebaClave privada de la aplicación creada en Mercado Pago, utilizada en el backend. Accede a ella en Tus integraciones > Datos de integración > Pruebas > Credenciales de prueba. El Access Token de prueba comienza con el prefijo `APP_USR`.. | Obligatorio |
X-Idempotency-Key | Header | Clave de idempotencia. Garantiza que cada solicitud sea procesada solo una vez. Usa un valor exclusivo en el header de la solicitud, como un UUID V4 o una string aleatoria. | Obligatorio |
processing_mode | Body. String | Modo de procesamiento de la order: automatic para crear y procesar automáticamente, o manual para procesar en una etapa separada. Para más información, accede a Modelo de integración. | Obligatorio |
total_amount | Body. String | Monto total de la transacción. | Obligatorio |
payer.email | Body. String | E-mail del comprador. | Obligatorio |
payer.entity_type | Body. String | Tipo de entidad del comprador. En el ejemplo, el valor es individual. | Opcional |
payer.first_name | Body. String | Nombre del comprador. | Opcional |
payer.last_name | Body. String | Apellido del comprador. | Opcional |
payer.identification.type | Body. String | Tipo de documento del comprador. Para Uruguay: CI (Cédula de Identidad). | Obligatorio |
payer.identification.number | Body. String | Número de documento del comprador. | Obligatorio |
payer.phone.area_code | Body. String | Código de área del teléfono del comprador. | Opcional |
payer.phone.number | Body. String | Número de teléfono del comprador. | Opcional |
payer.address.street_name | Body. String | Nombre de la calle del domicilio del comprador. | Opcional |
payer.address.street_number | Body. String | Número de la calle del domicilio del comprador. | Opcional |
payer.address.zip_code | Body. String | Código postal del domicilio del comprador. | Opcional |
payer.address.neighborhood | Body. String | Barrio del domicilio del comprador. | Opcional |
payer.address.city | Body. String | Ciudad del domicilio del comprador. | Opcional |
transactions.payments.payment_method.id | Body. String | Identificador del medio de pago. En este caso, el valor debe ser abitab o redpagos. | Obligatorio |
transactions.payments.payment_method.type | Body. String | Tipo del medio de pago. En este caso, el valor debe ser ticket. | Obligatorio |
transactions.payments.expiration_time | Body. String | Plazo de vencimiento del comprobante en formato de duración ISO 8601. Si bien puedes configurarlo entre 1 y 30 días luego de la creación del pago (P1D a P30D), recomendamos definir un plazo que permita al comprador realizar el pago entre 3 y 5 días hábiles. Como expiration_time utiliza una duración en días (PnD), considera fines de semana y feriados al definir el valor. El plazo de acreditación del pago puede demorar hasta 2 horas hábiles desde su realización. En caso de que el pago se efectúe luego de la fecha de vencimiento establecida, el valor será devuelto a la cuenta de Mercado Pago del pagador. | Opcional |
La creación del pago ocurre de forma asíncrona en la order. Mientras se procesa, la order se devuelve con el estado processing y sin información.
Una vez finalizado el procesamiento, y al tratarse de un medio de pago offline, la order pasa al estado action_required con el detalle waiting_payment, indicando que el comprador aún debe completar el pago, tal como se muestra en el siguiente ejemplo de respuesta. Te recomendamos configurar las notificaciones del tópico Order para recibir actualizaciones sobre el cambio de estado, incluyendo los datos actualizados de la order. Alternativamente, puedes optar por enviar una solicitud al endpoint /v1/orders/{id}GET para consultar el estado actualizado.
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" } } ] } }
Tras crear la order, muestra al comprador la información necesaria para completar el pago en un punto Abitab o Redpagos. Estos datos están disponibles en los campos payment_method de la respuesta.
| Campo | Descripción |
ticket_url | URL con las instrucciones completas de pago. Redirige o muestra este enlace al comprador. |
reference | Código de referencia del pago. |
verification_code | Código de verificación del pago. |
El comprador debe utilizar el ticket_url, o el reference y verification_code en un punto Abitab o Redpagos, para completar el pago dentro del plazo de vencimiento definido en date_of_expiration.
Una vez que el comprador realice el pago, la order pasa a status: processed. Si configuraste tus notificaciones, esto te será notificado vía webhook.
Si lo deseas, puedes cancelar un pago creado, siempre y cuando se encuentre pendiente o en proceso; es decir, con status=action_required.
Adicionalmente, recomendamos cancelar los pagos que no fueron realizados dentro de la fecha de vencimiento establecida, para evitar problemas de facturación y conciliación.
Para obtener más información, consulta la sección Reembolsos y cancelaciones.