Saltar al contenido principal

Sandbox

Una aplicación SANDBOX (API keys pay_sb_…) usa los mismos endpoints que producción, pero sus cobros nunca mueven dinero real. Los datos de sandbox y de producción están separados.

Según cómo esté configurado tu comercio de prueba, el checkout lo atiende:

Modo del proveedorQuién atiende el checkoutPara qué
MOCKel simulador de proveedoresdesarrollo y pruebas automáticas, con resultados a elección
SANDBOXel ambiente de pruebas real de Transbank o Mercado Pagovalidar la integración con el proveedor antes de salir a producción

El simulador​

Con el modo MOCK, checkout.url apunta a una página del simulador que imita al proveedor. Ahí eliges el resultado del pago:

ResultadoWebpay PlusMercado PagoQué produce
Aprobar✓✓AUTHORIZED + payment.authorized
Rechazar✓✓FAILED + payment.failed
Cancelar✓✓CANCELLED + payment.cancelled
Simular timeout✓✓el checkout vence: EXPIRED + payment.expired
Demorar el aviso del proveedor✓el resultado llega después del retorno del comprador
Duplicar el aviso del proveedor✓el aviso llega dos veces; el efecto ocurre una sola vez

Los dos últimos sirven para comprobar que tu sistema no depende del orden ni de la unicidad de los avisos: tu return_url puede recibir al comprador antes del resultado final, y aun así recibes un solo payment.authorized.

Para pruebas automáticas, el simulador también acepta completar el checkout sin navegador. La URL exacta para hacerlo viene con el acceso a tu ambiente de pruebas.

X-Sandbox-Scenario​

El header X-Sandbox-Scenario está reservado para aplicaciones sandbox. Enviarlo con una API key de producción responde 400 SANDBOX_SCENARIO_NOT_ALLOWED, así una configuración de pruebas nunca llega a producción por error. Para elegir el resultado de un pago de prueba, usa la página del simulador.

De sandbox a producción​

  1. Pide una aplicación PRODUCTION y sus API keys (pay_live_…).
  2. Registra tus webhook endpoints de producción: solo https, puerto 443, con dominio público.
  3. Cambia la URL base, la API key, el secreto del webhook y el merchant_account_id en tu configuración. El código no cambia.