Skip to main content
El SDK del navegador no crea payment intents y nunca habla con ZoPay directamente. Tu servidor crea el intent contra Connect API; el navegador monta el widget con el envelope recibido, y el widget polea estado vía un callback que tú implementas (checkStatus) que proxea la lectura a tu backend.

Flujo en tres pasos

  1. Servidor llama a POST /connect/v1/payment-intents con la clave Connect.
  2. Servidor devuelve el envelope PaymentIntent al frontend (nunca la clave).
  3. Frontend monta el widget con mountPaymentWidget(target, { intent, checkStatus, … }).

1. Crear el intent (servidor)

Devuelve el envelope completo PaymentIntent ({ id, amount, currency, addresses, … }). Referencia: Crear Payment Intent.

2. Devolver el envelope al cliente

Tu propio endpoint debe devolver el envelope al navegador. No expongas sk_live_… al navegador.

3. Endpoint de lectura de estado (servidor)

El widget no lee estado directo de ZoPay — proxea por tu backend:

4. Montar el widget

Probar en sandbox

Con una clave sk_test_…, el intent se crea con livemode: false. Para simular el cobro sin esperar un depósito on-chain real, llama desde tu backend a POST /test/payment-intents/{id}/simulate-deposit — el widget detectará el cambio de estado en el siguiente poll y disparará onSuccess.

Siguiente paso