Recursos para IA

Probar la integración

Antes de salir a producción, recomendamos probar el correcto funcionamiento de tu integración y del procesamiento de las transacciones. Esto te permitirá verificar si la integración se realizó correctamente y si las transacciones se están procesando sin errores. A continuación se detalla cómo realizar la prueba de integración.

Si lo deseas, antes de probar tu integración puedes cifrar tus datos para realizar tus transacciones de prueba. Para saber cómo crear este cifrado, accede a Cifrado de seguridad. Recuerda que este cifrado solo es obligatorio para salir a producción con tu integración, es decir, para tus transacciones reales.

La prueba de integración de Payouts consiste en la creación de transacciones con estados predefinidos. Estos estados se definirán en función del valor que envíes para el campo external_reference. Es decir, enviarás los datos para crear una transacción en función del status que quieres obtener como respuesta y, de esta manera, podrás constatar si el procesamiento está sucediendo correctamente. Por ejemplo, si el campo external_reference=new, deberías obtener un status=new.

Para probar tu integración con Payouts, crea transacciones enviando un POST, con tu Access Token de pruebaClave privada de la aplicación creada en Mercado Pago y que se utiliza en el backend. Puedes acceder a ella a través de Tus integraciones > Datos de la integración > Pruebas > Credenciales de prueba. y el header X-Test-Token:true al endpoint /v1/transaction-intents/processAPI para que la solicitud se realice en un entorno de pruebas. Modifica el campo external_reference de acuerdo al estado que quieras obtener. A continuación, encontrarás un ejemplo de curl y una tabla con detalles sobre los diferentes estados.

curl

curl --request POST \
  --url https://api.mercadopago.com/v1/transaction-intents/process \
  --header 'Authorization: Bearer {{YOUR_ACCESS_TOKEN}}' \
  --header 'Content-Type: application/json' \
  --header 'X-Enforce-Signature: false' \
  --data '{
  "external_reference": "12345",
  "point_of_interaction": {
    "type": "PSP_TRANSFER"
  },
  "seller_configuration": {
    "notification_info": {
      "notification_url": "http://example.mx/notification"
    }
  },
  "transaction": {
    "from": {
      "accounts": [
        {
          "amount": 25
        }
      ]
    },
    "to": {
      "total_amount": 25,
      "accounts": [
        {
          "amount": 25,
          "bank_id": "646",
          "number": "646180110400000007",
          "holder": "JUAN JOSE MARIA",
          "type": "savings_account",
          "description": "envio de 25"
        }
      ]
    },
    "total_amount": 25
  }
}'
Para saber cómo enviar los campos restantes para ejecutar esta solicitud, consulta Configuración de la integración.
Valor del campo external_referenceRespuesta
newSe creará una nueva transacción y la respuesta devolverá el valor new para el campo status.
failed_by_bankSe creará una nueva transacción, esta vez rechazada por el banco. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será by_bank.
failed_by_providerSe creará una nueva transacción, esta vez rechazada por el proveedor. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será by_provider.
failed_by_capsSe creará una nueva transacción, esta vez rechazada por incumplir con normativas del Banco Central. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será by_caps.
failed_other_reasonSe creará una nueva transacción, esta vez rechazada por otras razones. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será other_reason.
failed_by_high_riskSe creará una nueva transacción, esta vez rechazada por riesgo de fraude. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será by_high_risk.
failed_invalid_destination_accountSe creará una nueva transacción, esta vez rechazada por haber introducido datos incorrectos de la cuenta de destino. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será invalid_destination_account.
failed_by_complianceSe creará una nueva transacción, esta vez rechazada por incumplimiento de normativas. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será by_compliance.
failed_insufficient_fundsSe creará una nueva transacción, esta vez rechazada por no disponer de fondos en la cuenta de origen. La respuesta devolverá el valor failed para el campo status. El status_detail dentro del objeto from.accounts será insufficient_funds.
partially_processedSe creará una nueva transacción cuyo procesamiento todavía no fue completado. La respuesta devolverá el valor partially_processed para el campo status.
partially_processed_pending_bankSe creará una nueva transacción cuyo procesamiento todavía no fue completado por motivos relativos a la cuenta de destino. La respuesta devolverá el valor partially_processed para el campo status. El status_detail dentro del objeto from.accounts será pending_bank.
revertedSe creará una nueva transacción, esta vez reembolsada. La respuesta devolverá el valor reverted para el campo status. El status_detail dentro del objeto from.accounts será refunded.
partially_reverted_partially_refundedSe creará una nueva transacción, esta vez parcialmente reembolsada. La respuesta devolverá el valor partially_reverted para el campo status. El status_detail dentro del objeto from.accounts será partially_refunded.
timeoutSe creará una nueva transacción que excederá el tiempo de espera. La respuesta devolverá el valor processed para el campo status, pero llegará al cabo de 2 minutos.
internal_server_errorSe creará una nueva transacción que fallará por errores del sistema. Devolverá un Error 500.
Cualquier otro valorSe generarán nuevos recursos con status processed.

¡Listo! Una vez finalizados estos pasos, la integración estará completa y podrás salir a producción.