# Guion del vídeo, para comentar o para lo que necesites.
# Es una PROYECCIÓN del nuestro: lleva el contenido —qué se dice, qué se ve, en
# qué orden y cuánto dura— y no la maquinaria que lo convierte en vídeo.
id: productos-solicitud
title: 'Solicitud de pago: cuando el pago tiene que esperar'
audience: Desarrollador que manda enlaces de pago por un canal externo y necesita que sobrevivan
objetivo: >
  Al terminar, el espectador sabe crear un lote de solicitudes, entiende que
  `due_date_reached_behavior` tiene dos desenlaces opuestos y por qué hay que enviarlo siempre, y se
  lleva la que parece un bug y no lo es: el vencimiento se aplica al consultar el estado.
cta: 'Siguiente: ''Paradas'', si quieres reunir varias solicitudes bajo una dirección.'
target_duration_s: 165
storyboard:
  - 'n': 1
    on_screen: Cuando el pago tiene que esperar
    narracion: >-
      La Solicitud es la sesión para cuando el pago tiene que esperar: el enlace sigue vivo hasta
      una fecha que pones tú, así que puedes mandarlo por WhatsApp, por correo o como un código QR y
      que lo paguen mañana.
    visual: Una factura enviada hoy y pagada días después, con el enlace todavía vivo.
    duracion_s: 15
  - 'n': 2
    on_screen: Se crean por lote
    narracion: >-
      Y se crean por lote, porque cuando mandas facturas normalmente no mandas una sola. En una
      llamada envías una lista de ítems y cada uno nace como su propia sesión, con su enlace. Puedes
      pedir que si un ítem falla, siga con los demás. La respuesta te resume el lote: cuántos
      procesó, cuántos salieron bien, cuántos fallaron, la lista de sesiones creadas con su enlace,
      y aparte los ítems que no se pudieron crear.
    visual: Una bandeja emitiendo varias solicitudes de una sola llamada, cada una con su enlace.
    duracion_s: 28
  - 'n': 3
    on_screen: La fecha, y qué pasa al llegar
    narracion: >-
      Cada solicitud lleva su fecha de vencimiento, y junto a ella un campo que decide qué pasa al
      llegar esa fecha. Con un valor, el enlace deja de funcionar. Con el otro, el enlace sigue
      activo y se le muestra a tu cliente el mensaje de aviso que tú pongas.
    visual: >-
      Una solicitud con dos finales posibles al llegar su fecha: el enlace apagado, o el enlace
      todavía activo con un aviso.
    duracion_s: 19
  - 'n': 4
    on_screen: Mándalo siempre explícito
    narracion: >-
      Y por eso, aunque sea opcional, mándalo siempre. Si envías la fecha sin el comportamiento,
      estás dejando en manos del valor por defecto algo que tiene dos desenlaces opuestos: un enlace
      que muere solo, o uno que sigue admitiendo pagos pasada la fecha. Son cuatro caracteres de más
      en el cuerpo, y te ahorran la clase de sorpresa que solo aparece cuando ya hay dinero de por
      medio.
    visual: El campo enviado explícito frente al campo omitido, con los dos desenlaces opuestos detrás.
    duracion_s: 26
  - 'n': 5
    on_screen: Lo que parece un bug y no lo es
    visual: Lámina de sección, sin voz.
    duracion_s: 3
  - 'n': 6
    on_screen: El vencimiento se aplica al consultar
    narracion: >-
      Hay un comportamiento que sorprende a todo el mundo la primera vez, y conviene saberlo antes
      de que te pase: la fecha no mata el enlace sola. Lo mata la consulta. Hasta que no consultas
      el estado de esa sesión, sigue apareciendo como pendiente. Y de ahí sale la conclusión
      práctica: si tu sistema da por válido un enlace sin consultar antes su estado, va a aceptar
      uno vencido — y va a parecer que la fecha no funciona.
    visual: Una fecha que pasa sin que nada cambie, y el estado cambiando solo cuando alguien consulta.
    duracion_s: 30
  - 'n': 7
    on_screen: Y puedes reproducirlo
    narracion: >-
      Y no hace falta que te fíes: el sandbox lo reproduce. Creas una sesión con la fecha en el
      pasado, la consultas, y la ves vencida. Con el otro comportamiento seguirá pendiente, que es
      justo la diferencia. Y fíjate en lo que no pasa: hasta que no consultas, la sesión sigue
      pendiente. Esa es la lección, no un detalle del sandbox.
    visual: En el simulador, una sesión con fecha pasada consultada y pasando a vencida.
    duracion_s: 23
  - 'n': 8
    on_screen: Confirmarlo es igual que un Botón
    narracion: >-
      Lo demás funciona como en cualquier pago: confirmas con la consulta de estado, o por el aviso
      de pagado. Y recuerda que ese pagado confirma el débito, no que el dinero ya esté en manos del
      receptor: la acreditación no cambia el status, te llega por un segundo aviso o la consultas en
      receiver_credits.
    visual: Cierre de marca; la confirmación igual que en el Botón, y el status quedándose en pagado.
    duracion_s: 21
