El gateway tiene un solo contrato (las mismas rutas, cuerpos y errores) en todos sus despliegues. Lo que cambia entre “probar” y “operar” es la llave con la que llamas.

URL base por entorno #

EntornoURL basePython / JS / PHP.NETGo
Producciónhttps://api.compense.co"production" (por defecto)CompenseEnvironment.Productioncompense.Production
Sandboxhttps://sandbox.dev.compense.co/gw"sandbox"CompenseEnvironment.Sandboxcompense.Sandbox
Devhttps://gateway.dev.compense.co"dev"CompenseEnvironment.Devcompense.Dev
  • Todas las rutas empiezan por /v1/gateway/..., así que la URL base nunca incluye /v1. La del sandbox conserva el prefijo /gw de la consola de sandbox: la ruta completa queda https://sandbox.dev.compense.co/gw/v1/gateway/health/.
  • Producción es la URL que declara el contrato. Aún no hay un despliegue productivo público: la URL definitiva se confirma en el onboarding. Si difiere, pásala como URL base propia (base_url, baseUrl, BaseUrl, WithBaseURL), que siempre gana sobre el entorno.
  • Dev es el gateway de desarrollo de Compense, útil para pruebas de punta a punta con webhooks reales (con una llave de producción emitida para dev).

La llave decide, no la URL #

Cada llave se emite con un environment:

LlaveQuién respondeDineroWebhooksSimuladores sandbox.*
sandboxEl motor simulado, determinista: misma petición, misma respuesta.NingunoSimulados ("simulated": true)Permitidos
prodEl motor real de tu entidad.RealEntregas HTTP firmadas reales403

Una llave de sandbox recibe respuestas simuladas en cualquier URL a la que llames, y una de producción llega al motor real. Por eso un error de configuración (apuntar a la URL de sandbox con una llave de producción) no te protege: separa las llaves por entorno en tu gestor de secretos y en tu CI.

flowchart TD
  R[Tu petición<br/>X-API-Key: cmp_...] --> G{Entorno<br/>de la llave}
  G -- sandbox --> S[Motor simulado<br/>determinista, sin dinero]
  G -- prod --> M[Motor real del tenant]
  S --> E[Mismo contrato:<br/>rutas, sobre y errores]
  M --> E

Lo que el sandbox no simula

La consulta, el cruce y la carga de afiliados leen y escriben el registro real del tenant con cualquier llave. Revisa la tabla de datos de prueba antes de diseñar tus pruebas automatizadas.

Elegir el entorno en el código #

from compense_gateway import CompenseClient

sandbox = CompenseClient(api_key=SANDBOX_KEY, environment="sandbox")
dev = CompenseClient(api_key=DEV_KEY, environment="dev")
prod = CompenseClient(api_key=PROD_KEY)  # "production" es el valor por defecto
otro = CompenseClient(api_key=PROD_KEY, base_url="https://gateway.horizonte.example")

Del sandbox a producción #

  1. Integra y automatiza tus pruebas contra el sandbox (créditos, billetera, cartera, webhooks simulados, relojes y simuladores).
  2. Prueba de punta a punta en dev con webhooks reales hacia una URL HTTPS pública de tu ambiente de pruebas.
  3. Pide la llave de producción y la URL definitiva en el onboarding; crea tus endpoints de webhooks de producción (el secreto es distinto) y despliega.
  4. Monitorea con client.system.health() y alerta sobre 401/403, 429 y 5xx.