Creado | ||
Revisado | ||
Actualizado |
|
Step Function states-dev-invoice
Descripción
Este flujo modela el ciclo de vida de una factura en el sistema, desde su creación hasta su pago, rechazo o expiración.
Inicio en
PendingSe espera la ejecución de la Lambda encargada de procesar la factura.
Dependiendo del resultado, la factura puede ser aprobada con financiamiento (
Approved Financed), aprobada sin financiamiento (Approved Unfinanced), rechazada (Rejected), declinada (Declined), o expirada (Expired).
Estados posteriores a la aprobación (
Approved Financed/Approved Unfinanced)La factura puede evolucionar a diferentes estados:
PaymentConfirmed→ Se confirma el pago.PaymentUnconfirmed→ Hay problemas con el pago.Expired→ La factura expira sin ser pagada.
Manejo de pagos (
PaymentUnconfirmed/PaymentReported)Si un pago no se confirma, puede pasar a
PaymentReportedsi se verifica el pago manualmente.Si no se verifica, la factura puede expirar (
Expired).
Estados finales
Si la factura es pagada correctamente (
PaymentConfirmedoPaymentReported), el proceso finaliza.Si la factura expira (
Expired), se da por terminada sin pago.
Diagrama de estados
Fragmento de código
stateDiagram-v2
[*] --> Pending
Pending --> ApprovedFinanced : "invoice-approve"
Pending --> ApprovedUnfinanced : "invoice-approve-unfinanced"
Pending --> Expired : "invoice-expires"
Pending --> Declined : "invoice-declined"
Pending --> Rejected : "invoice-reject"
ApprovedFinanced --> PaymentConfirmed : "payment-confirmed"
ApprovedFinanced --> PaymentUnconfirmed : "payment-unconfirmed"
ApprovedFinanced --> Expired : "invoice-expires"
ApprovedFinanced --> ApprovedUnfinanced : "invoice-accelerate"
ApprovedUnfinanced --> PaymentConfirmed : "invoice-paid-unfinanced"
ApprovedUnfinanced --> Expired : "invoice-expires"
PaymentUnconfirmed --> PaymentReported : "invoice-payment-verified"
PaymentUnconfirmed --> Expired : "invoice-expires"
PaymentReported --> PaymentConfirmed : "payment-confirmed"
Declined --> [*]
Rejected --> [*]
PaymentConfirmed --> [*]
Expired --> [*]
