Pay Bills
Opera facturas y pagos desde cuatro colas basadas en entidades reales.
Pay Bills tiene exactamente cuatro vistas. Cada una consulta una entidad diferente y abre su detalle mediante una URL navegable.
| Vista | Entidad | Condición |
|---|---|---|
| Inbox | Bill | La factura todavía no tiene PaymentOrder. |
| Needs Approval | PaymentApprovalRequest | La solicitud está pendiente. |
| Scheduled | PaymentSchedule | El pago autorizado espera su fecha de ejecución. |
| Paid | Transaction | La transacción terminó en estado completado. |
Los estados fallidos, devueltos o reintegrados no se muestran en Paid.
Recibir una factura
Puedes subir un PDF, JPG o PNG, o recibirlo en la dirección privada disponible en Pay Bills → Settings.
La carga y el email crean únicamente el Bill, adjuntan el documento e inician su extracción. No crean una instrucción de pago, una aprobación, una programación ni una transacción. Mientras no exista un PaymentOrder, la factura permanece en Inbox y el sheet actualiza el estado de extracción.
Si subes la factura desde Send money, Pharos muestra una pantalla de procesamiento y continúa automáticamente cuando la extracción termina. Si la subes desde Pay Bills, permanece en Inbox hasta que selecciones Review bill.
Continuar al pago
Desde el sheet de Inbox, selecciona Review bill. El asistente solicita:
- Coincidencia entre el proveedor detectado y un destinatario existente.
- Destinatario y cuenta de destino.
- Importe y cuenta financiera de origen.
- Categorización contable y datos de factura.
- Fecha y propósito.
- Revisión final.
El progreso se guarda en sessionStorage, aislado por empresa y por factura o pago manual. Actualizar la página conserva el progreso, pero los pasos intermedios no escriben registros de dominio.
Al confirmar, Pharos guarda la revisión final del Bill, crea la PaymentOrder y evalúa la política de aprobación dentro de una operación atómica e idempotente:
- Si requiere aprobación, crea una
PaymentApprovalRequesty aparece en Needs Approval. - Si queda autorizada para una fecha futura, crea una
PaymentScheduley aparece en Scheduled. - Si queda autorizada para ejecutarse ahora, crea una
Transactionpendiente.
Ejecución
Cuando vence una programación, se crea una única transacción pendiente. Cada intento técnico contra el proveedor se registra como ProviderSubmissionAttempt; un reintento no duplica la transacción.
Una transacción aparece en Paid sólo después de completarse. El detalle permite volver a la misma pestaña y recurso mediante transactionId.
Navegación y enlaces directos
Pay Bills conserva la pestaña y el detalle en la URL:
?tab=inbox&billId=
?tab=needs-approval&requestId=
?tab=scheduled&paymentId=
?tab=paid&transactionId=Esto permite compartir enlaces y usar atrás/adelante sin perder el contexto.