# Novedades

## 16 de octubre de 2026

- **Conecta QuickPay a tu IA, sin copiar llaves.** Agrega `https://mcp.pagaconquickpay.com/mcp` en Claude, ChatGPT, Claude Code o Cursor, entra con el correo de tu comercio (el del portal) y autoriza. Empiezas en modo prueba; producción se elige al autorizar si tu cuenta está aprobada. Tu IA puede crear, listar, ver y cancelar enlaces de cobro, consultar una transacción y ver tus liquidaciones y los bancos; no puede enviar, devolver ni sacar dinero. Quien ya usaba el MCP con su llave en el header `x-switch-key` no tiene que cambiar nada. → [Conectar por MCP](/developers/mcp) · [Guía del MCP en PDF](/developers/mcp.pdf)
- **Menú «IA y MCP»** en la documentación, con el MCP, la documentación para tu IA, las guías en PDF y `llms.txt`.
- **Respuestas sin datos internos.** Con tu llave, `POST /switch/v1/cobrar`, `/cobrar/token`, `/pagar`, `/consultar` y `/reverso` ya no traen `banco_usado` ni `raw`. Para saber qué pasó sigue `estado`, y si fue rechazada, `motivo_rechazo`, que es igual para todos los bancos. El listado y la exportación de `GET /switch/v1/transacciones` ya no traen la columna `banco`, `GET /switch/v1/config` ya no trae `rieles` y los avisos `transaccion.*` ya no traen `banco`. Si leías alguno de esos campos, deja de hacerlo; lo demás no cambia. → [API directa](/developers/api-directa)
- **`GET /switch/v1/bancos` y `GET /switch/v1/politica-dinero` pasan a uso interno:** responden `403` `solo_uso_interno` a las llaves de comercio. Para comprobar que tu llave funciona usa `GET /switch/v1/transacciones?limit=1`. La referencia interactiva (`/docs`, `/openapi.json`) ya no lista rutas de uso interno.
- **Toda la documentación en un archivo.** Descarga la [guía esencial en PDF](/developers/quickpay-docs.pdf) (portada, índice y lo necesario para empezar), lee todo [en una sola página](/developers/todo) o baja el [.md para tu IA](/developers/quickpay-docs.md) (Claude, ChatGPT, Cursor). También publicamos `llms.txt` y `llms-full.txt`. → [Con tu IA o en PDF](/developers/con-tu-ia)

## 14 de octubre de 2026

- **Página de pago con `success_url`: llegada y vuelta más claras.** Al abrir el enlace, una pantalla de 2,5 segundos muestra tu comercio, el concepto y el monto, y avisa que el pago lo procesa QuickPay (se salta con **Continuar**). Al pagar, en vez de un aviso pequeño al final del comprobante, aparece arriba "Volviendo a <tu comercio> en 3 s" con la cuenta regresiva y el botón **Volver ahora**. Los datos que llegan a tu `success_url` no cambian. Quien paga con **tarjeta** (piloto) ahora también vuelve a tu `success_url`: Credicard lo regresa a la página de pago y de ahí a tu web, con la operación QuickPay como `referencia`. → [Volver a tu web](/developers/volver-a-tu-web)
- **Avisos `transaccion.*`: campo nuevo `operacion`.** Dice de qué es la transacción: `cobro`, `pago`, `reverso`, `devolucion_debito`, `devolucion` o `devolucion_retorno`. Así un envío de dinero (la transferencia del neto a tu cuenta, un reintegro o una devolución) ya no llega con la misma forma que un pago que recibiste. Los demás campos no cambian; si entregas con `transaccion.liquidada`, entrega sólo cuando `operacion` sea `cobro`. → [Webhooks](/developers/webhooks-referencia)
- **Aviso nuevo `link.devuelto` (piloto).** Devoluciones de cobros desde el portal: llega cuando una devolución llegó a tu cliente, con `monto` (esta devolución) y `monto_devuelto` (el total devuelto de ese cobro). Las devoluciones están en piloto con algunas cuentas; si no están activas para la tuya, este aviso no llega. → [Webhooks](/developers/webhooks-referencia)
- **Reintegro con llave en vivo.** `POST /switch/v1/reintegro` con una llave de comercio en vivo (`sk_live`) responde **403 `reintegro_no_habilitado`**: el reintegro sale de la cuenta de QuickPay, no de la tuya. Con tu llave de prueba (`sk_test`) sigue funcionando igual.
- **Página de pago, «Pedir otra clave»:** después de pedir una clave nueva, la página le dice a tu cliente que escriba sólo la última que le llegó, porque las anteriores pueden no servir.

## 13 de octubre de 2026

- **Cuentas nuevas con aprobación automática nacen con tope.** Mientras una persona de QuickPay no revisa el alta, la cuenta puede recibir hasta US$ 300 por día y US$ 1.000 en total (en bolívares, con la tasa oficial del BCV en el momento de cada cobro). Cuando la revisamos, subimos o quitamos el tope. Las cuentas que ya tenían topes, o que aprobó una persona, no cambian. → [Límites](/developers/limites-y-reglas)
- **Máximo diario por cuenta:** cuenta sólo lo que recibes en cobros (antes sumaba también los pagos que te hacemos a tu cuenta, así que el tope se llenaba a la mitad) y el día va de medianoche a medianoche hora de Venezuela (antes cortaba a las 8:00 p. m.). → [Límites](/developers/limites-y-reglas)
- **Monto máximo por cobro y por día, también en dólares.** El monto mínimo y máximo por cobro y el máximo por día que QuickPay le fija a una cuenta pueden estar en dólares; en ese caso se convierten a bolívares con la tasa oficial del BCV en el momento de cada operación. Los que están en bolívares no cambian, y el error sigue siendo `EXCEDE_LIMITE` (o `MONTO_INVALIDO` por debajo del mínimo). → [Límites](/developers/limites-y-reglas)
- **Topes en dólares.** El tope de lo que recibes por día y en total también puede estar en dólares. En ese caso se convierte a bolívares con la tasa oficial del BCV en el momento de cada cobro, así que no pierde valor cuando sube el dólar. Los errores y mensajes son los mismos; con tu llave, el `409` de `POST /cobrar/token` sigue trayendo `tope` y `usado` en Bs y agrega `topes_moneda`, `tope_usd` y `tasa_bcv`. Los topes en bolívares no cambian. → [Límites](/developers/limites-y-reglas)
- **Tope de lo que recibes, por día y en total.** QuickPay puede fijarle a una cuenta un tope de lo que recibe por día (hora de Venezuela) y otro en total. Si no tienes, nada cambia. Con el tope lleno, tu cliente no puede pedir la clave de pago: la página de pago y el WhatsApp Flow le muestran el mensaje, y `POST /cobrar/token` responde `409` `tope_diario_excedido` o `tope_acumulado_excedido`. Quien ya tenía su clave termina su pago. → [Límites](/developers/limites-y-reglas)
- **`link.pagado` sólo con el pago confirmado por el banco.** Antes, un cobro pasaba a `pagado` y te llegaba `link.pagado` apenas el banco recibía la orden de débito, aunque todavía no confirmara que el dinero se movió. Ahora espera la confirmación: según el banco de tu cliente, puede llegar en el mismo momento del pago, como antes, o el cobro queda en `procesando` y `link.pagado` llega cuando el banco confirma (suele tardar menos de un minuto, pero a veces bastante más). Si el banco termina rechazándolo, el cobro vuelve a `pendiente` y no llega aviso. Sigue llegando una sola vez por cobro y con los mismos campos. Si tu sistema entrega con `link.pagado` o con el estado `pagado`, no tienes que cambiar nada; no entregues con `procesando`. Los cobros de prueba no cambian. → [Estados de un cobro](/developers/ciclo-de-vida)
- **Página de pago:** quien paga desde otro banco ve "Procesando tu pago" hasta que el banco confirma, y luego el comprobante con la referencia bancaria.
- **`transaccion.aprobada` sólo con la operación confirmada por el banco.** Antes llegaba con `ACEPTADA`, cuando el banco recibía la orden de débito ("enviada a BCV") y todavía no confirmaba que el dinero se movió. Ahora llega cuando la operación queda `LIQUIDADA`, una sola vez, junto con `transaccion.liquidada`, y su `data.estado` es `"LIQUIDADA"` (antes `"ACEPTADA"`). Si entregabas con `transaccion.aprobada`, ahora entregas con la confirmación del banco; si comparabas `data.estado` con `"ACEPTADA"`, compáralo con `"LIQUIDADA"`. Con llave de prueba no cambia: el cobro simulado avisa en el acto. → [Webhooks](/developers/webhooks-referencia)
- **WhatsApp Flow del switch:** el mismo cambio. El Flow ya no muestra el pago como hecho apenas el banco recibe la orden: según el banco de quien paga, se confirma en ese momento o ve "Tu pago se está procesando" y el pago se confirma cuando el banco lo liquida. Los Flows de prueba no cambian.
- **API directa:** la guía decía que un cobro `ACEPTADA` ya era exitoso. No lo es: `ACEPTADA` es "enviada a BCV"; el cobro está confirmado con `LIQUIDADA`. → [API directa](/developers/api-directa)

## 12 de octubre de 2026

- **Portal y página de pago:** un cobro pagado dice siempre **Pagado** (antes, si ya se había acreditado, decía «En tu banco»); el detalle del pago sigue indicando si está acreditado o por acreditar. Abrir el enlace de un cobro ya pagado muestra el comprobante con el mismo diseño de cuando se paga, sin datos de quien pagó.
- **Pago con tarjeta, «No completé el pago»:** si la tarjeta fue rechazada o la persona cerró la página de Credicard, en la pantalla «Estamos confirmando tu pago con tarjeta» puede tocar **No completé el pago: pagar de otra forma**. QuickPay le pregunta a Credicard: si no cobró, el enlace vuelve a estar disponible al instante (antes había que esperar unos minutos); si sí cobró, el enlace queda pagado.
- **La página de pago recuerda a quien paga:** después del primer pago, el teléfono, la cédula y el nombre quedan guardados sólo en el navegador de esa persona, y la próxima vez vienen llenos. Si ya marcó «Quiero ser cliente» de ese comercio, en vez de la casilla ve «Ya eres cliente». «No soy yo» borra los datos guardados (por si el teléfono es compartido). Nada de esto se busca en el servidor.
- **Pagar con tarjeta (piloto, apagado):** la página de pago de un enlace puede ofrecer, además del débito inmediato, **Pagar con tarjeta** de débito o crédito por Credicard, con la lista de bancos de débito aceptados y el total con el recargo por pago con tarjeta (lo paga tu cliente) antes del botón. Se enciende por comercio; si no está activo para tu cuenta, nada cambia. El enlace sigue pagándose una sola vez y queda `pagado` sólo cuando Credicard confirma el cobro. El aviso `link.pagado` de esos pagos trae `"metodo": "tarjeta"` y `recargo_tarjeta`; se te liquida lo mismo que con débito inmediato, cuando Credicard abona el pago. → [Pagar con tarjeta](/developers/enlaces-de-pago#pagar-con-tarjeta-piloto)
- **Cuenta aprobada al registrarte:** al terminar el registro y la verificación con Bs 1, la cuenta queda lista para cobrar dinero real, sin esperar revisión. El equipo de QuickPay revisa cada alta después.
- **Portal:** aviso de mantenimiento de los bancos en el encabezado (desde las 11:30 p. m.); en Estadísticas, tu mejor día y bloque pico en porcentaje y el ticket promedio por horario según tu tipo de negocio.
- **Bancos en mantenimiento en la página de pago:** de 11:45 p. m. a 1:30 a. m. (hora de Venezuela) la página muestra arriba **Bancos en mantenimiento** y no deja pedir la clave de pago, en vez de dejar que tu cliente llene todo y falle al final. Desde 15 minutos antes avisa, sin bloquear, cuántos minutos faltan. La página se actualiza sola cada 30 segundos. Pedir la clave dentro de la franja responde `503` con `{ "error": "cierre_bancario", "motivo": "…", "reintentar_en": <segundos> }`. Lo que ya estaba en curso termina normalmente y los enlaces de prueba no se afectan. → [Cierre diario](/developers/enlaces-de-pago#cierre-diario-de-los-bancos)
- **Cobro por WhatsApp Flow:** en esa misma franja, pedir la clave desde tu Flow de producción vuelve a la pantalla de datos con el mismo mensaje y no le pide nada al banco. Confirmar un pago con una clave ya pedida sigue igual.

## 11 de octubre de 2026

- **Nombre comercial en la página de pago:** si escribes un nombre comercial en el portal (**Ajustes › Tu cuenta**), quien te paga lo ve en la página de pago y en el comprobante en lugar de la razón social. La razón social sigue siendo la que usan el banco y la verificación. → [Portal](/developers/portal)
- **Webhooks, Probar:** el aviso de prueba del portal (`webhook.test`) ahora va firmado igual que los reales: `x-quicklink-event`, `x-quicklink-timestamp` y `x-quicklink-signature-v2`. Antes llevaba sólo la firma anterior, así que un servidor que verifica la v2 como indica esta guía lo rechazaba y el portal decía que no llegó. → [Webhooks](/developers/webhooks-referencia)
- **Webhooks, Eliminar:** el portal permite borrar un webhook (**Integraciones › Webhooks › Eliminar**) sin llave de producción. → [Webhooks](/developers/webhooks-referencia)
- **Pago dividido:** un enlace puede repartir el neto de su pago entre hasta 5 cuentas además de la tuya, por porcentaje o monto fijo; el resto es tuyo. Se configura con `split` al crear el enlace, corre con la liquidación inmediata y sólo reparte cuando el banco confirma que el pago entró. Está en piloto detrás de una bandera: si no está activo para tu cuenta, `split` responde `400` `split_no_disponible`. → [Pago dividido](/developers/pago-dividido)
- **`GET /links/:id`** de un enlace con reparto trae `split` y `reparto`; el aviso `link.acreditado` trae `reparto` y llega cuando todo el reparto terminó. Los enlaces sin `split` no cambian.
- **Reintegro:** si el reparto de un pago ya le pagó a algún beneficiario, responde **409 `cobro_con_split_repartido`**.
- **Pago dividido, cuentas aprobadas:** sólo se reparte a cuentas que apruebas en el portal (**Ajustes → Cuentas para pago dividido**); las cuentas aprobadas no se cambian con tu llave. Una cuenta sin aprobar responde `400` `split_cuenta_no_preaprobada`; una que un control de seguridad frena o que pasa el tope diario por beneficiario, `400` `split_beneficiario_bloqueado`. Antes de pagarle a cada cuenta se revisa otra vez: si ya no pasa, esa parte queda en revisión y no se paga sola. `reparto.estado` suma `cerrado` y cada beneficiario puede quedar `descartado` (se cerró sin pagarle, con una nota). → [Pago dividido](/developers/pago-dividido)
- **Modo prueba: más desenlaces forzados.** Además de `11111111` (rechazo) y `22222222` (pendiente y luego aprueba), ahora `11111112` rechaza por fondos insuficientes, `11111113` por clave inválida, `11111114` simula banco no disponible y `33333333` tarda unos 8 segundos en confirmar y luego aprueba. Los rechazos no envían webhook y las aprobaciones envían `link.pagado` con `"mode": "test"`, igual que en producción. Sólo existen con una llave `sk_test_`; en producción no hacen nada especial. → [Modo prueba](/developers/datos-de-prueba)
- **Botón de pago en una línea:** `<script src="https://pay.pagaconquickpay.com/boton.js" data-link="ID_O_SLUG"></script>` pinta el botón **Pagar con QuickPay** y abre el pago en una pestaña (o en una ventana con `data-abrir="ventana"`). No usa llaves ni ejecuta nada de lo que escribas en los atributos. → [Botón para tu web](/developers/boton-de-pago)
- **Página de estado de los cobros:** [/estado](/estado) y [/estado.json](/estado.json) ahora muestran el estado de los cobros con débito inmediato (operativo, degradado, caído o sin datos recientes), con la hora de actualización, y los incidentes de los últimos 7 días. No se nombra a los bancos. Sin llave.
- **`failure_url`:** la guía [Volver a tu web](/developers/volver-a-tu-web) ya describe exactamente los tres casos (`expirado`, `cancelado` y `rechazado`), también cuando el cobro vence o se cancela mientras tu cliente está pagando.

## 10 de octubre de 2026 (segunda auditoría de seguridad)

- **Un cobro `ACEPTADA` se confirma con el banco antes de devolverlo.** `POST /switch/v1/reintegro` sobre un cobro en `ACEPTADA` consulta al banco en ese momento y sólo devuelve si queda `LIQUIDADA`. Si el banco todavía no lo confirma, responde **409 `cobro_no_confirmado_banco`**: no es definitivo, vuelve a intentarlo más tarde.
- **Un reintento a la vez por cobro:** si llega un `retry_nonce` mientras otro intento de reintegro del mismo cobro está en curso, responde **409 `reintegro_en_curso`** y no emite otro pago.
- **Liquidación en revisión:** si el pago de ese cobro a tu cuenta quedó en revisión después de enviarse, el reintegro también responde **409 `cobro_ya_liquidado_al_comercio`**.
- **Pedir la clave de pago:** las solicitudes que el banco rechaza (cédula o teléfono mal escritos) ya no cuentan para los topes, y el tope por pagador se aplica al par cédula + teléfono (antes, a cualquiera de los dos). En producción se suma un tope de 10 solicitudes cada 10 minutos por conexión. El conteo es atómico: varias solicitudes simultáneas no se saltan el tope. → [Límites](/developers/limites-y-reglas)
- **Enviar dos veces el pago:** el segundo envío espera al primero durante todo el plazo de respuesta del banco (antes, 90 s fijos) y responde `procesando` sin mandar el cobro a revisión.
- **Webhooks:** `POST`, `PATCH` y `DELETE /switch/v1/webhooks` exigen una `sk_live_` (con `sk_test_`, `403` `requiere_llave_live`): el webhook recibe también los avisos de producción. Listar y ver los webhooks sigue funcionando con cualquier llave, y el portal permite registrar la URL sin llave de producción. → [Webhooks](/developers/webhooks-referencia)
- **Historial de entregas con `sk_test_`:** `GET /switch/v1/webhooks/:id/deliveries` sólo lista las entregas de avisos de prueba (`data.mode: "test"`). Las de producción, y los avisos `transaccion.*`, sólo se ven con una `sk_live_`. → [Webhooks](/developers/webhooks-referencia)
- **Flows:** `POST /switch/v1/flow/config` y `PUT /switch/v1/flows/definicion` exigen siempre `sk_live_` (antes sólo si ya tenías un Flow de producción). → [Llaves y entornos](/developers/llaves-y-entornos)
- **Lotes de dispersión:** `GET /switch/v1/dispersiones/:id` y `POST /switch/v1/dispersiones/:id/cancelar` responden **404** si el lote es de otro modo que tu llave.
- **Llaves:** al crear una llave por API, el `label` no puede empezar por `service-key:` ni `partner:`; responde `400` con `label_reservado`. → [Llaves y entornos](/developers/llaves-y-entornos)
- **Cobro por WhatsApp Flow:** un binding con `monto_fijo` ya no cobra si el Flow manda otro monto (antes cobraba el fijo sin avisar). Nuevo modo opcional `exigir_monto_firmado`: tu bot firma el monto de cada orden en el `flow_token` con un `monto_secret` que sólo vive en tu servidor. Sin estas opciones nada cambia.

## 10 de octubre de 2026 (operaciones sobre una transacción)

- **El modo de la llave manda:** `POST /switch/v1/consultar` y `POST /switch/v1/reintegro` responden **404** si el `id` es de otro modo que tu llave (una llave de prueba no consulta ni devuelve un cobro real, y al revés).
- **`retry_nonce` del reintegro sólo reintenta lo que el banco rechazó sin mover dinero.** Si un intento anterior quedó sin respuesta clara (`DESCONOCIDA`, `PENDIENTE`, `ERROR` o un código técnico), responde **409 `reintegro_intento_ambiguo`** y no se emite otro pago hasta conciliarlo. Si ningún intento anterior existe, **409 `reintegro_sin_intento_previo`**: el primer intento va sin `retry_nonce`. Si alguno ya pagó, sigue siendo **409 `reintegro_ya_pagado`**.
- **No se reintegra un cobro que ya se te liquidó:** con liquidación inmediata, si el pago de ese cobro a tu cuenta está en curso o hecho, el reintegro responde **409 `cobro_ya_liquidado_al_comercio`**.

## 10 de octubre de 2026 (seguridad)

- **`POST /switch/v1/pagar` y `POST /switch/v1/dispersiones`** debitan una cuenta de QuickPay: con una llave de comercio sin habilitación responden `403` con `{ "error": "pagar_no_habilitado" }`. → [API directa](/developers/api-directa)
- **`GET /switch/v1/saldo` y `GET /switch/v1/movimientos` pasan a uso interno**: responden `403` `cuenta_no_permitida` a las llaves de comercio. Lo tuyo lo ves en Transacciones y Cartera.
- **Verificar un comprobante** trae `concepto`, `referencia_externa` y cuántas veces se ha verificado el código (`verificaciones`, `primera_verificacion`). Lo que ya leías no cambia. → [Verificar un comprobante](/developers/enlaces-de-pago#verificar-un-comprobante)
- **Límite de peticiones:** las peticiones sin llave, o con una llave que no es válida, se cuentan por la IP de quien llama, y nunca contra el cupo de un comercio.
- **Errores `500`** responden `{ "error": "error_interno" }`, sin el detalle interno.

## 10 de octubre de 2026 (seguridad de llaves y webhooks)

- **Llaves:** una llave de prueba (`sk_test_`) sólo crea y revoca llaves de prueba. Crear o revocar una de producción exige una `sk_live_`; si no, `403` con `requiere_llave_live`. → [Llaves y entornos](/developers/llaves-y-entornos)
- **Webhooks:** la URL tiene que llegar a una dirección pública (una de red interna responde `422` con `destino_bloqueado`), no seguimos redirecciones (una `3xx` cuenta como no entregada) y hay un máximo de 10 webhooks por comercio (`409` con `limite_webhooks`). El historial de entregas trae el campo `error`. → [Webhooks](/developers/webhooks-referencia)

## 10 de octubre de 2026 (prueba y producción separadas)

- **Cada llave sólo ve y toca lo de su modo.** Con `sk_test_` ya no se consultan, listan, editan ni cancelan enlaces, lotes, órdenes, suscripciones, productos, propinas ni miembros del equipo creados con `sk_live_` (responde `404`), y al revés. `GET /links` sin `mode` trae sólo los del modo de tu llave. → [Llaves y entornos](/developers/llaves-y-entornos)
- **`idempotency_key` por modo:** la misma llave en prueba y en producción crea dos objetos distintos; con `sk_live_` nunca recibes un enlace, lote u orden de prueba. Nuevo `409 idempotency_key_en_uso` si la llave choca con una usada en el otro modo. → [No duplicar cobros](/developers/enlaces-de-pago)
- **Página de pago:** pedir la clave de pago tiene tope (5 por hora por cobro; en producción, con los mismos datos, 3 cada 10 minutos y una por minuto). Si tu cliente envía dos veces el pago, el segundo envío espera al primero en vez de dejar el cobro en revisión; y un cobro en `revision` que el banco termina de confirmar o rechazar se cierra solo. → [Límites](/developers/limites-y-reglas)

## 9 de octubre de 2026 (conciliación de pagos entrantes)

- **`POST /switch/v1/conciliar`, `/conciliar/saliente` y `/conciliar/multiple` pasan a uso interno**: responden 403 a las llaves de comercio. Para saber si te pagaron, usa el estado del enlace o el aviso `link.pagado`.
- **`ya_conciliado: true` ya no cuenta como pagado**: el banco la responde aunque el monto no coincida. Sólo `conciliado: true` autoriza entregar, y exige el monto exacto y una referencia que no se haya usado antes. Nuevo campo `revision` para los casos que revisa una persona.

## 9 de octubre de 2026 (cuentas demo)

- **Inicio y Transacciones en las cuentas de demostración:** lo cobrado (hoy, en el mes y en lo filtrado) suma los pagos simulados, que son los únicos que tiene una demo. En las demás cuentas sigue igual: sólo pagos reales, con «Sin contar N de prueba». → [Portal](/developers/portal#cuentas-personales)

## 9 de octubre de 2026 (Clientes y Suscripciones a escala)

- **Clientes y Suscripciones se cargan de 50 en 50** con el total exacto de lo filtrado y **Ver más**. Antes mostraban sólo los primeros 1.000 clientes y 2.000 suscriptores y el resto no aparecía; ahora nada se queda fuera. → [Clientes y cobranza](/developers/clientes-y-cobranza#buscar-filtrar-y-descargar)
- **Filtros de Clientes** en la dirección de la página, con etiquetas que se quitan con la **x**: etiqueta, suscripción y plan, estado de pago, último pago, total pagado (en Bs o en tu divisa), cómo llegó, aceptan novedades, WhatsApp, correo, fecha de alta y los de tu tipo de negocio.
- **Etiquetas de clientes** con color (se ponen a uno o a muchos) y **segmentos automáticos**: morosos, nuevos (30 días), frecuentes, aceptan novedades y sin pagar hace 60 días. Se pueden usar para filtrar Clientes, Suscripciones y Transacciones, y para enviar una cobranza **a una etiqueta**. El Cobrador las ve y filtra; no las administra. → [Etiquetas](/developers/clientes-y-cobranza#etiquetas)
- **Estado de pago, último pago y total pagado** por cliente y por suscriptor, a partir de los pagos confirmados. Cuentan los pagos que se pueden ligar a la persona; un cobro suelto no. → [Estado de pago](/developers/clientes-y-cobranza#estado-de-pago-ultimo-pago-y-total-pagado)
- **Acciones en grupo** sobre lo elegido o sobre **todo lo filtrado** (máximo 5.000 por acción; con más, se pide afinar en vez de dejar a alguien fuera): etiquetar, quitar etiqueta, enviar cobranza y suscribir; en Suscripciones, también pausar, reanudar y cambiar de plan. **Descargar** en Excel o CSV lo filtrado.
- **Suscripciones:** resumen arriba, pestaña **Métricas** (ingreso mensual recurrente, morosidad, altas y bajas, cobrado vs esperado), **historial de cobros** por suscriptor y **Editar suscriptor**: cambiar de plan **desde el próximo cobro y sin prorrateo**, y **precio especial o descuento** (en %, fijo o precio fijo) con motivo, aplicado a cada cobro que se genere. → [Suscripciones](/developers/suscripciones#editar-a-un-suscriptor)
- **Agregar suscriptores:** quien ya está en el plan sale deshabilitado ("Ya suscrito"), quien está en otro lleva su plan como etiqueta y "Elegir todos" respeta eso. Ya no se le pisa el canal a quien ya estaba suscrito.
- **Enlace para suscribirse solo:** cada plan puede tener un enlace público donde la persona elige el plan, deja sus datos y paga el primer cobro; **queda suscrita sólo cuando el pago se confirma**. → [Enlace para que se suscriban solos](/developers/suscripciones#enlace-para-que-se-suscriban-solos)

## 9 de octubre de 2026 (cuentas personales)

- **Cuentas personales:** quien abre su cuenta con **Para mí** ve un portal más corto: Inicio, Cobrar, Movimientos, Contactos y Ajustes, sin Cobranza masiva, Suscripciones, Productos, Sucursales, Integraciones ni Equipo. → [Cuentas personales](/developers/portal#cuentas-personales)
- **Página de pago:** si quien cobra es una persona, la casilla dice «Guardar mis datos para pagarle más rápido a *su nombre*.» y no exige el nombre. En los negocios queda igual. → [Quiero ser cliente](/developers/enlaces-de-pago#quiero-ser-cliente)
- **Estado de la cuenta:** Inicio, Cobrar y Ajustes dicen lo mismo: cuenta de demostración, en revisión o, si puedes cobrar, sin aviso.
- **Inicio:** las tarjetas dicen «Sin contar N de prueba» cuando hay pagos de prueba. En el detalle de un movimiento, una comisión menor a un centavo se muestra como «< US$ 0,01 (Bs 3,00)».
- **Dirección de tu página de pago:** es la misma en todas las pantallas, incluido el registro.
## 9 de octubre de 2026 (comisión general)

- **Comisión por cobro:** la comisión general por omisión es **1 %** (antes 2 %). Las cuentas que no tienen una comisión acordada usan la general; las que tienen una acordada la conservan. Tu comisión vigente se ve en **Ajustes › Comisión**.

## 9 de octubre de 2026 (revisión de QA)

- **Comisión real:** **Ajustes › Comisión** muestra la comisión que el switch aplica a tu cuenta; si no se puede leer, te pide consultarla con soporte en lugar de mostrar una cifra. En el switch, la comisión acordada por debajo del piso ya no se vuelve a subir al piso (2 %) al verificar o aprobar la cuenta.
- **Clientes › Aceptan novedades** en una cuenta de prueba incluye a quienes marcaron la casilla con un enlace de prueba (etiqueta «Aceptó novedades (prueba)»); nunca entran a envíos reales. → [Clientes y cobranza](/developers/clientes-y-cobranza)
- **Dividir cuenta:** el total muestra «Total ≈ Bs …» y cada persona su equivalente en bolívares. En tu página de pago, con US$ o €, el pagador ve «Pagarás ≈ Bs … a tasa BCV del …».
- **Transacciones:** los pagos de prueba dicen «Pago de prueba» (no «En tu banco») también en Inicio; el detalle muestra el nombre del banco del cliente y el código de verificación; el filtro de monto acepta Bs o tu divisa (se convierte con la tasa de hoy). Propinas › Recibidas sigue el mismo criterio que Transacciones con los pagos de prueba.
- **Página de pago:** la lista «Otro banco» muestra el código junto al nombre y la pantalla «Procesando» ya no parpadea cuando el pago se resuelve en menos de un segundo.
## 9 de octubre de 2026 (planes de WhatsApp)

- **Tu plan se paga desde el portal:** en **Ajustes › Tu plan**, **Cambiar a …** muestra el precio en US$ y en bolívares a la tasa BCV, abre el pago de QuickPay y el plan se activa solo cuando el pago se confirma. Cada pago da 30 días; al subir de plan los días que te quedaban se suman convertidos al precio del nuevo; bajar de plan se aplica al terminar el período; si no renuevas hay 3 días de gracia antes de volver a Gratis. Te avisamos 3 días antes, el día del vencimiento y el día siguiente. → [Tu plan](/developers/portal#tu-plan)

## 9 de octubre de 2026 (noche, propinas en euros)

- **Propinas en euros:** en **Propinas › Ajustes** cada botón puede ser en **€**, además de US$, Bs o %. Tu cliente lo ve como **€ 1 · Bs 39,80**, convertido a la tasa BCV del euro. Si en ese momento no hay una tasa del euro confiable, los botones en € no aparecen; los demás sí. → [Propinas](/developers/propinas)
- **Transacciones › Filtros › Pagos rechazados:** muestra los cobros con al menos un intento de pago rechazado (o los que no tienen ninguno), y el detalle del cobro dice cuántos intentos se rechazaron. Un rechazo deja el cobro pendiente para que tu cliente lo intente de nuevo. → [Filtrar tus transacciones](/developers/portal#filtrar-tus-transacciones)

## 9 de octubre de 2026 (tarde)

- **Transacciones en dólares o euros:** los filtros y los totales cuentan todos tus cobros, no sólo los últimos 5.000. Cada pago se sigue convirtiendo con la tasa BCV de su día de pago (con «≈» si la tasa es aproximada) y un cobro creado en esa misma divisa cuenta con su monto exacto. → [Filtrar tus transacciones](/developers/portal#filtrar-tus-transacciones)

## 9 de octubre de 2026 (mediodía)

- **Divisa del panel:** en **Ajustes › Divisa del panel** eliges ver tus montos en **dólares (por omisión), euros o bolívares**. Inicio (cobrado hoy, este mes, ya en tu banco), Transacciones, Propinas, los lotes de Cobranza y el aviso de pago salen en esa divisa con **los bolívares debajo, en pequeño**. Cada pago se convierte con la tasa BCV de **su día de pago**, no la de hoy; si la tasa es aproximada (euros de días anteriores) se muestra con «≈». El monto que escribes al cobrar arranca en tu divisa. → [Divisa del panel](/developers/portal#divisa-del-panel)
- **Descarga de transacciones:** conserva las columnas en bolívares y agrega las de tu divisa con la **tasa usada** de cada pago.
- **Inicio:** «Cobrado este mes» y «Ya en tu banco» ahora suman todos los cobros del mes; antes podían quedarse cortos con más de 200 cobros.

## 9 de octubre de 2026

- **Listar enlaces con filtros:** `GET /links` ahora acepta varios estados separados por coma (`estado=pagado,procesando`), `desde` y `hasta` (fecha del pago o, si no se pagó, de creación), `q` (concepto, nombre de quien pagó, referencia, `id` o código de verificación), `min` y `max` en Bs, `con_propina`, `mode` y `origen`. Sigue devolviendo una lista y lo que ya usabas no cambia. Un valor que no se entiende en uno de los filtros nuevos responde `400` con `parametro`. → [Listar tus enlaces](/developers/enlaces-de-pago#6-listar-tus-enlaces)
- **`codigo_verificacion` también al listar** (antes sólo al consultar un enlace). Es `null` si el enlace no está pagado. El SDK trae `listarEnlaces`.
- **Pago confirmado más rápido:** cuando el banco nos notifica que un pago en `procesando` se completó, el enlace pasa a `pagado` y sale `link.pagado` en ese mismo momento (antes esperaba la siguiente revisión, hasta 15 segundos después).
- **Transacciones en el portal:** con la divisa del panel en bolívares, los filtros se aplican sobre todos tus cobros (ya no sólo sobre los últimos 5.000); en dólares o euros siguen contando tus últimos 5.000. **Cómo se creó** incluye **Suscripción**. → [Filtrar tus transacciones](/developers/portal#filtrar-tus-transacciones)

## 9 de octubre de 2026 (mañana)

- **Página de pago en Bs, US$ o €:** quien paga escoge la moneda en que escribe el monto y ve la equivalencia en bolívares a la tasa BCV. El cobro se hace en bolívares con la tasa del momento. → [Tu página de pago](/developers/pagina-de-pago)
- **Referencia en €:** si el cobro se hizo con precio en euros, la página de pago muestra el monto en € y la tasa BCV, igual que con US$.

## 9 de octubre de 2026 (madrugada)

- **Transacciones con filtros:** por **fecha** (Hoy, Ayer, Últimos 7 días, Este mes, Mes pasado o un rango, en días de Venezuela), **estado**, **búsqueda** (concepto, cliente o referencia), sucursal, cuenta donde cae el dinero, **monto** mínimo y máximo, propina, cómo se creó el cobro y cobros de prueba. Los filtros quedan en la dirección de la página, se quitan con la **x** y muestran cuántos cobros salieron y cuánto suman. **Descargar** baja exactamente lo filtrado. → [Filtrar tus transacciones](/developers/portal#filtrar-tus-transacciones)
- Un cobro que el banco está revisando se muestra como **En revisión** (antes decía Procesando).
- **Restaurantes sin Suscripciones:** el portal de un restaurante ya no trae planes ni suscripciones, porque no tiene cobros recurrentes. Los demás tipos de negocio no cambian.

## 9 de octubre de 2026 (noche)

- **Página de pago, elegir banco:** cinco bancos a la vista (Venezuela, Banesco, Mercantil, Plaza y Bancaribe) y un botón **Otro banco** que abre la lista con el resto, ordenada por código.
- **Euros en el portal:** donde pones un monto (Cobrar, Dividir cuenta, Nueva cobranza, planes y productos) ahora eliges **Bs, US$ o €** y ves la equivalencia en bolívares a la tasa BCV. Tu cliente sigue pagando en bolívares. Si no hay una tasa del euro confiable en ese momento, la opción € se deshabilita. → [Cobrar desde el portal](/developers/cobrar-desde-el-portal)
- **Dividir cuenta** ahora acepta el total en Bs, US$ o € (antes sólo bolívares).
- **Nueva cobranza** en dos pasos: qué cobras y a quién, con resumen antes de enviar. → [Clientes y cobranza](/developers/clientes-y-cobranza)
- **"Quiero ser cliente" en la página de pago:** tu cliente puede escribir su nombre y marcar "Quiero ser cliente de *tu comercio* y recibir sus novedades" (desmarcada por omisión). Cuando el pago queda confirmado aparece en **Clientes** con **Se registró al pagar** y **Acepta novedades**, sin duplicar a quien ya tenías. Nuevo filtro **Aceptan novedades** en Clientes. → [Quiero ser cliente](/developers/enlaces-de-pago#quiero-ser-cliente)
- **Campo nuevo `pagador.alta_cliente`** (sí/no) al consultar o listar un enlace y en `data` del aviso `link.pagado`. No trae cédula, teléfono ni nombre. Lo que ya leías no cambia.
- **Procesando tu pago:** mientras el banco confirma, la página de pago muestra una pantalla de carga en lugar del formulario, no deja reenviar el pago y pregunta antes de salir. Si se recarga, vuelve a esa pantalla.
- Si tu cliente escribe su nombre al pagar, lo ves en **Transacciones** y en el correo "Recibiste un pago".

## 9 de octubre de 2026 (tarde)

- **Propinas** (restaurantes): tu cliente puede agregar propina al pagar, en la página de pago y en WhatsApp, con tus botones (por omisión US$ 1, 2 y 5 a tasa BCV), **Otro** y **Sin propina**. Se debita junto con el pago en un solo débito. Nueva sección **Propinas** en el portal. → [Propinas](/developers/propinas)
- **Campos nuevos `propina` y `total`** al consultar o listar un enlace y en `data` del aviso `link.pagado`. `monto` no cambia: es el del cobro. Sin propina, `propina` es `0` y `total` es igual a `monto`. Lo que ya leías no cambia.
- **Una cuenta por sucursal:** cada sucursal puede tener su cuenta; al cobrar con esa sucursal el pago cae ahí (y se puede cambiar en cada cobro). También en cobranza masiva, suscripciones, el botón web y el enlace de tu página (`?sucursal=` y `?cuenta=`). → [Equipo y cuentas](/developers/equipo-y-cuentas)
- **Descarga de transacciones:** columna nueva **Propina (Bs)**.

## 9 de octubre de 2026 (mañana)

- **Código de verificación en cada comprobante:** el comprobante de un pago exitoso trae un código (`QP-XXXXX-XXXXX`) y la línea "Verifícalo en pagaconquickpay.com/verificar". Cualquiera puede comprobar ahí que el comprobante es auténtico: así una captura editada no pasa. Para ti es un campo nuevo, `codigo_verificacion`, al consultar un enlace `pagado` y en `data` del aviso `link.pagado`; lo que ya leías no cambia. Nuevo `GET /verificar/:codigo` (público, 20 consultas por minuto por IP). Los pagos de prueba también tienen código y la verificación los marca como "Pago de prueba (no movió dinero)".
- **Registro de negocios:** ahora pregunta a qué se dedica el negocio (o "Otro").
- **Portal por tipo de negocio:** menú con importación por IA en restaurantes, sucursales, urbanizaciones y complejos en condominios, y filtros por cada uno en Transacciones.
- **Suscripciones:** fecha de fin o cantidad de cobros, y pestañas Suscriptores y Planes.
- **Carga masiva:** plantilla de Excel para descargar.

## 8 de octubre de 2026 (noche)

- **Comercio suspendido:** crear enlaces o lotes responde `403` con `comercio_suspendido`, y un enlace `pendiente` muestra "Este comercio no está recibiendo pagos" sin cobrarle nada a tu cliente. Lo que ya se estaba pagando termina normalmente y lo ya pagado se te sigue liquidando. Detalle en [Errores](/developers/errores).

## 8 de octubre de 2026 (tarde)

- **Aviso "Recibiste un pago" por correo** al Propietario y a los Administradores, uno por cobro. Se apaga en **Ajustes › Avisos**.
- **Descargar transacciones** en Excel o CSV desde Transacciones, con el filtro que estás viendo.
- **Recordatorios de suscripción** por plan: 3 días antes, a las 24 horas y un último aviso; por correo, y por WhatsApp si lo activas.
- **Ajustes › Tu plan:** tu plan, tu uso de WhatsApp y los planes disponibles.
- **Equipo:** desactivar a alguien o cambiarle el rol cierra su sesión en su siguiente acción.
- **Liquidación inmediata activada por etapas:** hoy se aplica a pagos pequeños mientras terminamos las pruebas con dinero real.
- **Modo prueba con simulador:** en un cobro de prueba, la clave `11111111` simula un rechazo del banco y `22222222` un pago `procesando` que se aprueba solo a los 30 segundos. Cualquier otra clave de 8 dígitos sigue aprobando.
- **Nuevo `POST /links/:id/simular`** (sólo llave `sk_test_`): fuerza `pagado`, `rechazado` o `expirado` sin abrir la página de pago. En producción responde `403`.
- **Los avisos `link.pagado` y `link.acreditado` traen `data.mode`** (`test` o `live`), para que tu servidor distinga un pago simulado de uno real. Es un campo nuevo: lo que ya leías no cambia.
- **`failure_url` ya funciona:** tu cliente vuelve a esa dirección, con `?estado=expirado`, `cancelado` o `rechazado`, cuando el cobro venció, lo cancelaste o él elige **Cancelar y volver** después de un rechazo del banco.
- **Nuevo `POST /links/:id/cancelar`** con tu llave: cancela un enlace sólo si sigue `pendiente` (si alguien ya está pagando, `409`). El SDK trae `cancelarEnlace` y `simularEnlace`.
- **Página de estado pública:** [/estado](/estado) muestra en vivo la API, la base de datos, la página de pago, las operaciones con el banco de la última hora y la liquidación inmediata.

## 8 de octubre de 2026 (mañana)

- **Portal de comercios renovado:** cobro con monto, página de pago, cobranza masiva, suscripciones, productos, equipo con roles.
- **Llaves de API y webhooks desde el portal** (Integraciones): la llave y el secreto se muestran una sola vez.
- **Liquidación inmediata (construida, todavía sin activar):** el neto de cada pago irá a tu cuenta y te avisaremos con `link.acreditado`.
- **Firma v2 de los webhooks** con marca de tiempo (`x-quicklink-signature-v2` y `x-quicklink-timestamp`) para rechazar avisos reenviados. La firma anterior sigue llegando.
- **Enlaces:** `success_url` (con `estado` y `referencia` al volver), `metadata` e `idempotency_key`.
- **Documentación verificada contra el código:** se corrigieron "Enlaces de pago" y "Cobrar desde tu bot" (la idempotencia va en el cuerpo, el aviso trae `link_id` y no tus `metadata`, el listado devuelve una lista) y el glosario ahora explica todos los campos.
- **Página de pago nueva:** iconos de los bancos, teléfono por prefijo, clave de 8 dígitos y comprobante para guardar o compartir.
- **Documentación nueva** con este esquema y el SDK renombrado a `QuickPay` (el nombre `QuickLink` sigue funcionando).

## 16 de septiembre de 2026

- Dominio propio: `pay.pagaconquickpay.com` y `docs.pagaconquickpay.com`.

## 6 de septiembre de 2026

- **Cobro por lote:** hasta 500 enlaces en una llamada, con estado por ítem y cancelación de los pendientes.
