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 proveedor | Quién atiende el checkout | Para qué |
|---|---|---|
MOCK | el simulador de proveedores | desarrollo y pruebas automáticas, con resultados a elección |
SANDBOX | el ambiente de pruebas real de Transbank o Mercado Pago | validar 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:
| Resultado | Webpay Plus | Mercado Pago | Qué 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
- Pide una aplicación
PRODUCTIONy sus API keys (pay_live_…). - Registra tus webhook endpoints de producción: solo
https, puerto 443, con dominio público. - Cambia la URL base, la API key, el secreto del webhook y el
merchant_account_iden tu configuración. El código no cambia.