Desde tu sistema · Llaves y entornos
Docs · Desde tu sistema Descargar .md

Llaves y entornos

Toda llamada lleva la cabecera:

x-switch-key: <tu-comercio>:<llave>

Dos tipos de llave

LlaveEmpieza conQué hace
Pruebask_test_Simula todo de punta a punta. Nunca mueve dinero
Producciónsk_live_Cobra de verdad

El modo lo decide la llave, no tu código. No hay ningún campo test=true: la misma petición con sk_test_ es de prueba y con sk_live_ es real. Un cobro creado en prueba queda de prueba para siempre, aunque lo abra alguien de verdad.

Cada llave sólo ve y toca lo de su modo. Con sk_test_ no se consulta, lista, edita ni cancela nada creado con sk_live_ (enlaces, lotes, órdenes, suscripciones, productos, propinas y equipo): responde 404 como si no existiera. Y una idempotency_key usada en prueba no se cruza con producción.

Hay dos cosas del comercio que no tienen modo y por eso exigen sk_live_: los webhooks (POST, PATCH y DELETE /switch/v1/webhooks, porque reciben también los avisos de producción) y la configuración de tus Flows de WhatsApp (POST /switch/v1/flow/config, PUT /switch/v1/flows/definicion). Con sk_test_ responden 403 con { "error": "requiere_llave_live" }; listar y ver webhooks sí funciona con cualquier llave. Si aún no tienes llave de producción, registra tu URL desde el portal (Integraciones › Webhooks).

Dónde se sacan

En tu portal, Integraciones › Llaves de API:

  • La de prueba la creas cuando quieras.
  • La de producción se activa cuando tu cuenta está aprobada.
  • La llave se muestra una sola vez. Si la pierdes, revócala y crea otra.
  • Puedes tener varias (una por sistema) y revocar cada una por separado: lo que use una llave revocada recibe 401 de inmediato.
  • Por API (POST /switch/v1/api-keys y POST /switch/v1/api-keys/:id/revoke), una llave de prueba sólo crea y revoca llaves de prueba. Para crear o revocar una de producción, llama con una sk_live_; con una sk_test_ responde 403 con { "error": "requiere_llave_live" }.
  • El label de una llave nueva (1 a 120 caracteres) es libre, salvo que no puede empezar por service-key: ni partner: (son de uso interno): responde 400 con { "error": "label_reservado" }.

Dónde se guardan

Sólo en tu servidor, en una variable de entorno o un gestor de secretos. Nunca en el código del navegador, en una app móvil ni en un repositorio.

URL base

URL
APIhttps://pay.pagaconquickpay.com/switch/v1
Página de pagohttps://pay.pagaconquickpay.com/l/<id>

Es la misma para prueba y producción: cambia sólo la llave.