# Pasar a producción (/docs/go-live)

<Steps>
<Step>
### Pide tu clave live [#pide-tu-clave-live]
Caibo emite tu clave `psp_live_…` cuando tu cuenta de producción está lista. Guárdala en un gestor de secretos. Si una clave se expone, pide a Caibo que la revoque y emita otra.
</Step>
<Step>
### Cambia host y clave [#cambia-host-y-clave]
Usa `https://api.caibopay.app` y tu `psp_live_…`. El resto de tu integración no cambia.
</Step>
<Step>
### Registra tu webhook en live [#registra-tu-webhook-en-live]
Los webhooks son de cada entorno: registra tu URL de nuevo en live y guarda el nuevo `secret`.
</Step>
<Step>
### Lee capabilities en live [#lee-capabilities-en-live]
Lo disponible depende del entorno y de tu cuenta. Arma tus formularios con el `GET /v1/capabilities` de live, no con lo que viste en sandbox.
</Step>
</Steps>

## Comprueba tu integración [#comprueba-tu-integración]

- [ ] Cada `POST` que mueve dinero envía un `Idempotency-Key` propio de la operación, y cada reintento usa **el mismo**. Ver [Idempotencia](/docs/idempotency).
- [ ] Verificas la firma `Psp-Signature` de cada webhook sobre el cuerpo **sin modificar**. Ver [Firmas](/docs/webhook-signatures).
- [ ] Respondes `2xx` en menos de 10 segundos y procesas después.
- [ ] Descartas eventos repetidos por su `id`.
- [ ] Tratas `processing` y `verification_pending` como "todavía no", sin crear otro pago para lo mismo.
- [ ] Decides por `error.type` y `error.code`, nunca por `message`.
- [ ] Guardas el `X-Request-Id` de las respuestas con error, para soporte.
- [ ] Aceptas valores nuevos en estados y códigos sin romperte.
- [ ] Respetas `Retry-After` cuando recibes `429`.
- [ ] Manejas los montos como texto decimal, nunca como número de punto flotante.
