Probar la integración
Para probar la integración de Mercado Pago Point con tu sistema, simula distintos estados de transacción mediante nuestra API. Así podrás validar su funcionamiento en diferentes escenarios antes de salir a producción. No es posible procesar pagos reales en una terminal física utilizando cuentas de prueba; para realizar transacciones reales en el dispositivo Point, es necesario utilizar una cuenta productiva con medios de pago reales.
En estas pruebas, debes utilizar credenciales de pruebaClaves de acceso vinculadas a una aplicación que se utilizan para probar la integración en un entorno seguro. Puedes consultarlas en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permiten procesar pagos reales.Acceder a las credenciales de prueba. Si vas a usar una terminal física, te recomendamos vincularla previamente con esas credenciales. Para más información sobre cómo realizar esta asociación, accede a Configurar terminal.
Usar dispositivo virtual estándar
Si no cuentas con un dispositivo físico, utiliza el dispositivo virtual estándar, identificado por el serial SBX0000001. Para construir su ID, combina un poi_type válido para el país con ese serial, por ejemplo: NEWLAND_N950__SBX0000001.
Con el ID del dispositivo virtual, puedes ejecutar cualquiera de los escenarios descritos a continuación.
Simular los escenarios de prueba
Selecciona y ejecuta los escenarios deseados para validar tu integración. Para simular los diferentes escenarios de prueba a continuación, debes utilizar el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
El cambio de estado puede demorar hasta 10 segundos en procesarse (o hasta 40 segundos para simular el estado action_required) y, durante ese proceso, la order cambiará automáticamente al estado at_terminal antes de alcanzar el estado final solicitado, excepto en el caso del estado refunded, que transiciona directamente. Para más información sobre los posibles estados, consulta la documentación Estado de una order y de una transacción.
Para probar la correcta creación de una order y el procesamiento del pago asociado, sigue los pasos a continuación.
- Envía una solicitud al endpoint Crear orderPOST utilizando el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
- Almacena el identificador de la order, devuelto en la respuesta a su creación bajo el parámetro
id. - Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el
{order_id}en el path de la solicitud por el ID de la order (order_id) creada en el paso 1. En el body de la solicitud, informa el campostatuscon el valorprocessed, como muestra el ejemplo debajo.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "processed",
"payment_method_type": "credit_card",
"installments": 1,
"payment_method_id": "visa",
"status_detail": "accredited"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. | processed | Obligatorio |
payment_method_type | Body.String | Tipo de medio de pago a utilizar en la simulación. | debit_card, credit_card, qr | Opcional |
installments | Body.Integer | Número de cuotas del pago. | 1 | Condicional. Envía este campo solo cuando payment_method_type sea credit_card. |
payment_method_id | Body.String | Bandera del medio de pago. | amex, master, visa, debmaster, debvisa, argencard, cabal, cencosud, cmr, diners, naranja, debcabal | Condicional. Envía este campo cuando payment_method_type sea debit_card o credit_card. |
status_detail | Body.String | Detalle específico del estado que deseas simular. | accredited | Opcional |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.processed. En el nodo transactions.payments, será posible consultar el status del pago, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.processed", "api_version": "v1", "application_id": "2644473656269379", "data": { "external_reference": "ext-ref", "id": "ORD01JY0PGGPZ4DBV73E2PXRBCQ84", "status": "processed", "status_detail": "accredited", "total_paid_amount": "120", "transactions": { "payments": [ { "amount": "120", "id": "PAY01JY0PGGPZ4DBV73E2Q0DQZQCJ", "paid_amount": "120", "payment_method": { "id": "visa", "installments": 1, "type": "credit_card" }, "reference": { "id": "115019989861" }, "status": "processed", "status_detail": "accredited" } ] }, "type": "point", "version": 3 }, "date_created": "2025-06-18T05:00:19.274162018Z", "live_mode": false, "type": "order", "user_id": "123456" }
Para validar que tu integración maneja correctamente los pagos fallidos, puedes simular el estado failed de una order.
- Envía una nueva solicitud al endpoint Crear orderPOST utilizando el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
- Almacena el identificador de la order, devuelto en la respuesta a su creación bajo el parámetro
id. - Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el
{order_id}en el path de la solicitud por el ID de la order (order_id) creada en el paso 1. En el body de la solicitud, informa el campostatuscon el valorfailed.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "failed",
"payment_method_type": "credit_card",
"installments": 1,
"payment_method_id": "visa",
"status_detail": "insufficient_amount"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. | failed | Obligatorio |
payment_method_type | Body.String | Tipo de medio de pago a ser utilizado en la simulación. | debit_card, credit_card, qr | Opcional |
installments | Body.Integer | Número de cuotas del pago. | 1 | Condicional. Envía este campo solo cuando payment_method_type sea credit_card. |
payment_method_id | Body.String | Bandera del medio de pago. | amex, master, visa, debmaster, debvisa, argencard, cabal, cencosud, cmr, diners, naranja, debcabal | Condicional. Envía este campo cuando payment_method_type sea debit_card o credit_card. |
status_detail | Body.String | Detalle específico del estado que deseas simular. | bad_filled_card_data, required_call_for_authorize, card_disabled, high_risk, insufficient_amount, invalid_installments, max_attempts_exceeded, rejected_other_reason, processing_error | Opcional |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.failed. En el nodo transactions.payments, será posible consultar el status del pago, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.failed", "api_version": "v1", "application_id": "123456", "data": { "external_reference": "ext_ref_1234", "id": "ORD01K23219YK26BC6GK0HASE8VT6", "status": "failed", "status_detail": "failed", "transactions": { "payments": [ { "amount": "120", "id": "PAY01K22Y503EJ8JHGF64KGY1PZ2B", "payment_method": { "id": "debvisa", "installments": 1, "type": "debit_card" }, "reference": { "id": "123456789980" }, "status": "failed", "status_detail": "bad_filled_card_data" } ] }, "type": "point", "version": 3 }, "date_created": "2025-08-07T20:03:04.897928692Z", "live_mode": false, "type": "order", "user_id": "123456" }
Para confirmar que el flujo de reembolso está funcionando correctamente, es necesario simular el estado refunded en una order previamente procesada. La simulación de este estado solo puede realizarse en orders que ya estén con el estado processed. Por lo tanto, ejecuta primero el escenario "Crear una order y procesar el pago".
Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el {order_id} en el path de la solicitud por el ID de la order procesada anteriormente. En el body de la solicitud, informa el campo status con el valor refunded.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "refunded"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. Importante: Para simular este estado, la order debe haber sido procesada previamente. | refunded | Obligatorio |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.refunded, indicando que la order fue reembolsada, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.refunded", "api_version": "v1", "application_id": "2644473656269379", "data": { "external_reference": "ext-ref", "id": "ORD01JY0PGGPZ4DBV73E2PXRBCQ84", "status": "refunded", "status_detail": "refunded", "total_paid_amount": "120", "type": "point", "version": 4 }, "date_created": "2025-06-18T05:05:08.255803326Z", "live_mode": false, "type": "order", "user_id": "123456" }
Para validar que el flujo de cancelación de pagos funciona correctamente, puedes simular el estado canceled de una order.
- Envía una solicitud al endpoint Crear orderPOST utilizando el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
- Almacena el identificador de la order, devuelto en la respuesta a su creación bajo el parámetro
id. - Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el
{order_id}en el path de la solicitud por el ID de la order creada en el paso 1. En el body de la solicitud, informa el campostatuscon el valorcanceled.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "canceled"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. | canceled | Obligatorio |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.canceled. En el nodo transactions.payments, será posible consultar el status del pago, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.canceled", "api_version": "v1", "application_id": "123456", "data": { "external_reference": "ext_ref_1234", "id": "ORD01JYH1Z1YJN4HZ8J3Q0RB3YP6D", "status": "canceled", "status_detail": "canceled", "transactions": { "payments": [ { "amount": "120", "id": "PAY01K22Y503EJ8JHGF64KGY1PZ2B", "status": "canceled", "status_detail": "canceled_on_terminal" } ] }, "type": "point", "version": 3 }, "date_created": "2025-08-07T19:30:44.741479284Z", "live_mode": false, "type": "order", "user_id": "123456" }
Para validar que tu integración maneja correctamente las orders expiradas, puedes simular el estado expired.
- Envía una solicitud al endpoint Crear orderPOST utilizando el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
- Almacena el identificador de la order, devuelto en la respuesta a su creación bajo el parámetro
id. - Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el
{order_id}en el path de la solicitud por el ID de la order (order_id) creada previamente. En el body de la solicitud, informa el campostatuscon el valorexpired.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "expired"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. | expired | Obligatorio |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.expired. En el nodo transactions.payments, será posible consultar el status del pago, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.expired", "api_version": "v1", "application_id": "123456", "data": { "external_reference": "ext_ref_1234", "id": "ORD01JYH1Z1YJN4HZ8J3Q0RB3YP6D", "status": "expired", "status_detail": "expired", "transactions": { "payments": [ { "amount": "120", "id": "PAY01K22Y503EJ8JHGF64KGY1PZ2B", "status": "expired", "status_detail": "expired" } ] }, "type": "point", "version": 3 }, "date_created": "2025-08-07T19:50:29.172256789Z", "live_mode": false, "type": "order", "user_id": "123456" }
En algunos casos, es necesario confirmar en la terminal si el pago fue aprobado o rechazado. Para validar que tu integración maneja correctamente este escenario, puedes simular el estado action_required de una order. La order cambiará automáticamente al estado at_terminal antes de alcanzar action_required, y esta transición puede demorar hasta 40 segundos.
El estado action_required está disponible únicamente en modo PDV.
- Envía una solicitud al endpoint Crear orderPOST utilizando el Access Token de pruebaClave privada vinculada a una aplicación, utilizada en el backend para autenticar operaciones en el entorno de prueba. Puedes consultarla en la sección Credenciales de la aplicación, dentro del entorno de prueba. No permite procesar pagos reales, nunca debe exponerse en el frontend y comienza con el prefijo `APP_USR`.Acceder a las credenciales de prueba.
- Almacena el identificador de la order, devuelto en la respuesta a su creación bajo el parámetro
id. - Envía una solicitud al endpoint Simular estado de la orderPOST, reemplazando el
{order_id}en el path de la solicitud por el ID de la order (order_id) creada en el paso 1. En el body de la solicitud, informa el campostatuscon el valoraction_required.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/events' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TEST-232********97488-12********26f67454********f4c8b49c********9526408' \
-d '{
"status": "action_required"
}'
Consulta en la tabla a continuación las descripciones de los parámetros que se pueden enviar en esta solicitud.
| Atributo | Tipo | Descripción | Valores posibles | Obligatoriedad |
status | Body.String | Estado final que deseas simular para la order. | action_required | Obligatorio |
Si la solicitud es exitosa, la respuesta devolverá el estado 204 No Content, sin body.
Recibirás una notificación Webhook de Mercado Pago con el campo action definido como order.action_required, indicando que se requiere una acción en la terminal, según se ejemplifica a continuación.
Además, podrás consultar el endpoint Obtener order por IDGET para verificar el estado de la order.
json{ "action": "order.action_required", "api_version": "v1", "application_id": "123456", "data": { "external_reference": "ext_ref_1234", "id": "ORD01JYH1Z1YJN4HZ8J3Q0RB3YP6D", "status": "action_required", "status_detail": "check_on_terminal", "type": "point", "version": 3 }, "date_created": "2025-06-24T13:28:36.44747706Z", "live_mode": false, "type": "order", "user_id": "123456" }
Después de probar todos los escenarios y verificar el correcto funcionamiento de tu integración con Mercado Pago Point, podrás Salir a producción.