# Volver a tu web y verificar

Al crear el enlace puedes indicar a dónde vuelve tu cliente cuando termina de pagar:

```json
{ "monto": 150, "concepto": "Pedido #1024", "success_url": "https://tu-tienda.com/gracias?pedido=1024" }
```

`success_url` debe empezar con `https://`. Cuando el enlace tiene `success_url`, la página de pago se abre con una pantalla de 2,5 segundos que muestra el nombre de tu comercio, el concepto y el monto, y avisa que el pago lo procesa QuickPay. Tu cliente puede saltarla con **Continuar**; si recarga la página, no se repite.

Al confirmarse el pago, la página muestra arriba "Volviendo a <tu comercio> en 3 s" con la cuenta regresiva y el botón **Volver ahora**, y abre tu dirección con dos datos agregados:

```
https://tu-tienda.com/gracias?pedido=1024&estado=pagado&referencia=10242808
```

Si tu cliente pagó con [tarjeta](/developers/enlaces-de-pago#pagar-con-tarjeta-piloto) (piloto), vuelve igual: `referencia` es la operación QuickPay (8 caracteres) en lugar de la referencia bancaria.

## Cuando el pago no puede continuar: `failure_url`

```json
{ "monto": 150, "concepto": "Pedido #1024", "success_url": "https://tu-tienda.com/gracias?pedido=1024", "failure_url": "https://tu-tienda.com/pago-fallido?pedido=1024" }
```

También debe empezar con `https://`. Tu cliente vuelve a esa dirección, con `estado` agregado, en estos casos:

| `estado` | Cuándo |
|---|---|
| `expirado` | Abre el enlace cuando ya venció, o vence mientras tu cliente está pagando |
| `cancelado` | Abre el enlace cuando ya lo cancelaste, o lo cancelas mientras tu cliente está pagando |
| `rechazado` | El banco rechazó el pago y tu cliente elige **Cancelar y volver** |

```
https://tu-tienda.com/pago-fallido?pedido=1024&estado=rechazado
```

Si el banco rechaza, tu cliente **no** vuelve solo: se queda en la página de pago para intentarlo otra vez, y ahí aparece el botón **Cancelar y volver**. Si no pones `failure_url`, el botón no aparece y un enlace vencido o cancelado sólo muestra su aviso.

> **`failure_url` tampoco es prueba de nada.** Que tu cliente llegue ahí no significa que no haya pagado (por ejemplo, pudo pagar en otra pestaña). Antes de cancelar un pedido, consulta el cobro.

> **Volver a tu web no prueba el pago.** Cualquiera puede escribir esa dirección en su navegador. Antes de entregar, confirma que el cobro está `pagado`: con el webhook `link.pagado` o con una consulta.

## Verificar desde tu página de "gracias"

Cuando el cliente llega a tu `success_url`, tu servidor consulta el cobro:

```bash
curl -s https://pay.pagaconquickpay.com/switch/v1/links/<id> -H "x-switch-key: $QP_KEY"
```

| `estado` | Qué muestras |
|---|---|
| `pagado` | "¡Gracias! Tu pago fue confirmado." |
| `procesando` o `revision` | "Tu banco está confirmando el pago. Te avisaremos." (no le pidas pagar otra vez) |
| `pendiente` | "Todavía no recibimos tu pago." con un enlace para intentarlo |

Guarda el `id` del cobro junto a tu pedido al crearlo: así sabes cuál consultar.
