Lifecycle invariants
Each financial operation moves through a controlled lifecycle. Within the runtime, state transitions are deterministic: the same inputs and recorded state lead to the same next state.
Trust · Financial Integrity
Financial state is only trustworthy if the system can tell a failed attempt from an unknown one, record value movement in one authoritative place, and notice when the outside world disagrees.
Problem
Providers time out, answer late, change their answer, or settle differently from what they reported. A system that treats every response at face value will eventually retry a payment that already went through, or show a balance the provider does not recognise.
How the runtime handles it
Each financial operation moves through a controlled lifecycle. Within the runtime, state transitions are deterministic: the same inputs and recorded state lead to the same next state.
Retries and duplicate requests are designed to collapse into one recorded outcome inside the runtime, so a repeated request does not create a second economic intent.
Completed operations produce ledger entries. Balances derive from those entries, so the ledger is the authoritative internal record of financial state.
Where automatic pay-in failover exists (payment requests such as Bre-B QR and key), it only retries before anything has been collected, and a provider rejection or an unknown outcome stops it. Payout failover is in development.
Provider-reported outcomes are compared with internal ledger state. Divergence is detected and surfaced rather than absorbed.
Workflows decide what should happen. Financial execution is the only path that moves value. A workflow step cannot change a balance on its own.
In practice
What we do not claim
Orangepill does not claim that every operation completes exactly once across external providers, or that settlement is guaranteed. External rails can behave ambiguously, and no runtime can change that. What the platform does is make ambiguity explicit, keep authoritative state in the ledger, and require reconciliation before remediation.
Bring one flow that needs manual reconciliation. We will map where the runtime would detect and govern the divergence.