Saltar al contenido
Developer Docs

Flujos y operaciones

Conceptos comunes de flujos y operaciones, estructura, estados y transiciones, compartidos por todos los productos de Zertiban.

Los conceptos de flujo (flow) y operación (operation) constituyen la base funcional de todos los productos de Zertiban. Cualquier integración construida sobre la plataforma se modela sobre esta misma estructura común, independientemente del tipo de operación o caso de uso implementado.

La arquitectura está diseñada para desacoplar el contexto de negocio global del conjunto de acciones concretas que realiza el usuario final. Esto permite construir experiencias más flexibles, trazables y escalables, donde múltiples operaciones pueden agruparse y gestionarse bajo un mismo contexto transaccional.

El sistema diferencia entre:

  • Flow → contexto de negocio agregado.
  • Operation → acción individual ejecutada por el usuario final.

Ambas entidades tienen identificadores, estados, eventos webhook y ciclos de vida independientes, aunque relacionados entre sí.

¿Qué es un flujo (flow)?

Un flujo es el contenedor de negocio que agrupa una o varias operaciones relacionadas. Se crea mediante una única llamada al API (POST /flow/v1/flows/*) y recibe un identificador único denominado flowUuid.

El flujo representa el contexto global de una interacción de negocio. Por ejemplo:

  • Un proceso de cobro con múltiples operaciones.
  • Una experiencia transaccional compuesta por varias acciones del usuario.
  • Un conjunto de operaciones asociadas a un mismo proceso funcional.

El estado del flujo refleja el resultado agregado de todas las operaciones que contiene.

Características principales

  • Tiene su propio ciclo de vida independiente.
  • Puede referenciarse mediante un externalId para conciliación con sistemas externos.
  • Todas las operaciones del flujo comparten configuración visual, expiración y comportamiento funcional.
  • Genera eventos webhook flow.* cuando cambia su estado agregado.
  • Permite agrupar múltiples operaciones bajo una única experiencia de usuario.

Estructura de un flujo

Cada flujo puede contener una o múltiples operaciones configuradas individualmente.

Flujo (Flow)
  ├── Operación 1
  ├── Operación 2
  └── Operación N

Modelo síncrono y asíncrono

La API de Zertiban combina procesamiento síncrono y notificaciones asíncronas para simplificar la integración.

  • Síncrono: la llamada al API devuelve inmediatamente toda la información necesaria para operar: URLs de operación, identificadores, documentos y metadatos operativos. No es necesario realizar polling ni esperar procesamiento adicional para comenzar la interacción con el usuario final.
  • Asíncrono: los cambios de estado se notifican en tiempo real mediante webhooks. El sistema cliente recibe automáticamente eventos cuando un usuario abre una operación, una operación se completa, una operación caduca o un flujo alcanza un estado terminal. El uso de webhooks reduce la latencia de conciliación y evita integraciones basadas en polling continuo.

Estados del flujo

El flujo agrega el estado de todas las operaciones contenidas. Su estado representa el resultado global del proceso de negocio.

EstadoDescripciónTerminal
CREATEDEl flujo ha sido creado. Ninguna operación ha sido abierta aún.No
IN_PROGRESSAl menos una operación está actualmente en proceso.No
COMPLETEDTodas las operaciones han finalizado correctamente.
PARTIALLY_COMPLETEDAl menos una operación se ha completado correctamente, pero no todas.
NOT_COMPLETEDNinguna operación ha finalizado correctamente. Resultado mixto sin completados.
REJECTEDTodas las operaciones han sido rechazadas.
EXPIREDTodas las operaciones han caducado.
CANCELLEDTodas las operaciones han sido canceladas.

Transiciones de estado

DesdeHaciaDisparador
CREATEDIN_PROGRESSUna operación pasa a OPENED
IN_PROGRESSCOMPLETEDTodas las operaciones alcanzan COMPLETED
IN_PROGRESSPARTIALLY_COMPLETEDTodas las operaciones son terminales y al menos una está COMPLETED, pero no todas
IN_PROGRESSNOT_COMPLETEDTodas las operaciones son terminales, ninguna COMPLETED, con resultados mixtos
IN_PROGRESSREJECTEDTodas las operaciones quedan en REJECTED
CREATED / IN_PROGRESSEXPIREDTodas las operaciones quedan en EXPIRED
CREATED / IN_PROGRESSCANCELLEDTodas las operaciones quedan en CANCELLED

Los estados terminales son definitivos y no admiten nuevas transiciones posteriores.

¿Qué es una operación?

Una operación representa la acción concreta ejecutada por el usuario final dentro de un flujo. Dependiendo del producto de Zertiban, una operación puede corresponder a un pago individual, una autorización bancaria o cualquier interacción transaccional aislada.

Cada operación dispone de:

  • Su propio operationUuid.
  • Su URL independiente.
  • Su ciclo de vida específico.
  • Sus propios eventos webhook.

Esto permite monitorizar y reconciliar individualmente cada interacción realizada por el usuario.

Características principales

  • Puede referenciarse mediante un externalId propio.
  • Un mismo flujo puede contener operaciones de distinto tipo.
  • Genera eventos webhook operation.* cuando cambia de estado.
  • Tiene estados terminales independientes del resto de operaciones del flujo.

Estados de la operación

Cada operación evoluciona a través de distintos estados funcionales. Los estados COMPLETED, REJECTED, EXPIRED y CANCELLED son terminales: una vez alcanzados, no se producen más transiciones.

EstadoDescripciónTerminalWebhook
CREATEDLa operación ha sido creada. La URL está activa pero el usuario aún no ha accedido.NoOPERATION_CREATED
OPENEDEl usuario ha accedido y la operación está en curso.NoOPERATION_OPENED
COMPLETEDLa operación ha finalizado correctamente.OPERATION_COMPLETED
REJECTEDEl usuario o el banco han rechazado la operación.OPERATION_REJECTED
EXPIREDLa operación ha caducado antes de completarse.OPERATION_EXPIRED
CANCELLEDLa operación ha sido cancelada por API o sistema.OPERATION_CANCELLED

Transiciones de estado

DesdeHaciaDisparador
CREATEDOPENEDEl usuario abre la URL
CREATEDEXPIREDSe alcanza la fecha de expiración (expirationOffset)
CREATEDCANCELLEDPUT/flow/v1/operations/{operationUuid}/cancel
OPENEDCOMPLETEDEl usuario completa correctamente la operación
OPENEDREJECTEDEl usuario o el banco rechazan la operación
OPENEDEXPIREDSe alcanza la fecha de expiración
OPENEDCANCELLEDPUT/flow/v1/operations/{operationUuid}/cancel (solo si no existen transacciones pendientes)

Los estados terminales son definitivos y no admiten nuevas transiciones posteriores.

Recomendaciones de integración

Zertiban recomienda utilizar siempre webhooks como mecanismo principal de sincronización de estados. Aunque los estados pueden consultarse mediante API, el uso de polling introduce mayor latencia de conciliación, incremento innecesario de tráfico y procesamiento redundante.

Webhooks como mecanismo principal.

Los webhooks permiten reaccionar en tiempo real a cualquier cambio de estado tanto de operaciones como de flujos, facilitando integraciones más eficientes, consistentes y escalables.