Payment Approval with Segregation-of-Duties Automation: The Person Who Touched It Doesn't Clear It

Why "someone has to approve it" usually means "whoever is free"
A payment approval step only means something if the person approving genuinely could have said no — and that assumption quietly breaks the moment the same person who entered the payment, settled it, or uploaded its receipt is also the one clicking approve. Without an actual rule stopping that, "requires approval" becomes a formality that happens to be true on paper while doing nothing to catch a mistake or a bad-faith entry, because the one person checking the work is the same person who did it.
How the underlying problem shows up before you fix it
- The same person who registered a payment also approves it, because nobody enforces that those have to be two different people.
- A payment above a certain size gets the same single-click approval as a five-dollar reimbursement, with no extra approver required.
- Two people click approve on the same pending payment within seconds of each other, and it is unclear afterward which decision actually stuck.
- Months later, nobody can say who approved a payment and why, because the decision lived in a chat thread rather than next to the payment.
- An approver wants to clear a payment despite a minor open issue and today that means approving with no record of the judgment call they made.
Why a checkbox on the payment record is not real segregation of duties
A single "approved" flag on a payment record cannot, by itself, express who is allowed to flip it — that requires knowing, at the moment of the decision, who created the payment, who marked it settled, who uploaded its supporting receipt, and who last touched it, and then comparing that history against the specific person clicking approve right now. Multi-approver thresholds face the same structural gap: without a server-side count of how many DISTINCT approvals have actually landed, a policy requiring two approvers is trivially satisfied by one person clicking twice, or by a race between two people that a naive read-then-write pattern would let both "win" inconsistently.
How Centriu Gauge enforces approval on the server
Every organization can activate one versioned payment policy at a time — flexible, controlled, or strict — and a new version never silently overwrites an old one; each payment approval records which policy version applied to it. The approval request itself is created after the payment is settled, from the policy in force, and whatever it leaves open goes into the period-close check rather than holding the payment back. When segregation of duties is turned on, an approval decision is checked against the payment's recorded creator, settler, receipt-uploader and last-modifier stored on the approval request — whichever of those the policy names cannot approve it through the decision routine, which reads the authenticated user on the server.
An approval request can require more than one approver before it is marked approved; the decision function locks the specific approval row before touching it, so two simultaneous decisions on the same request cannot both partially apply and leave an inconsistent state. An approver can also clear a payment "with reservation" instead of a flat approval, but only by supplying an actual written reason — a bare click is not accepted for that path. Every decision of any kind — approve, approve-with-reservation, reject, return, cancel — is written to the approval history alongside who made it, the status it moved from and to, and any reason given; users can only add entries to that history, not edit or delete them.
What is actually built today
- Versioned payment policies (flexible/controlled/strict) with only one active version per organization at a time; a new version never overwrites the prior one.
- Segregation of duties applied by the decision routine: a configured policy can keep the creator, settler, receipt-uploader, or last modifier recorded on the request from approving it.
- Multi-approver thresholds — an approval request is only marked approved once the required number of distinct approvals has landed; the payment itself is settled before the request exists.
- A row-level lock during every approval decision, preventing two simultaneous decisions on the same payment from both partially applying.
- An "approve with reservation" path that requires a genuine written reason, distinct from a flat approval.
- A decision history to which users can only add entries, recording actor, prior and new status, and reason for each decision made through the routine.
A payment the entry clerk cannot clear alone (illustrative scenario, not a real client)
A team activates a "controlled" policy requiring segregation of duties and two approvers for payments above a set threshold. An operations assistant settles a large vendor payment and uploads its receipt, and the policy raises an approval request for it. When the assistant opens the approval screen, the decision routine refuses their approval — the request records them as the one who settled the payment and uploaded the receipt — while a manager and the finance lead, neither of whom touched the original entry, each approve it independently. The request is only marked approved once both decisions have landed, each one written to the approval history with who decided and when, and until then it stays open in the period-close check.
What changes operationally
Approval stops being a formality that the same hands can both request and grant, and starts meaning that a policy-defined set of people other than the ones recorded on the request has to sign off before the approval request is closed, with anything still open carried into the period-close check. A multi-approver requirement is counted by the decision routine rather than trusted to habit, and the approval history keeps "who approved this and why" answerable later, not dependent on anyone's memory or an editable log.
When this is not the right fit
A team that has not activated any payment policy sees none of this — the mechanism is deliberately a no-op until a policy is actually turned on, so a business relying on this page's protections needs to configure and activate one first. A team wanting segregation of duties enforced against roles or departments rather than the specific creator/settler/uploader/modifier of a given payment will find the current rule scoped to those four recorded actions on that exact payment, not a broader role-based separation.
A trust-based approval click vs. a server-checked segregation rule
A single "approved" checkbox trusts whoever has access to click it, with no structural check on whether they are the same person who created or handled the payment in the first place. Centriu Gauge instead checks the payment's own recorded participants against the person deciding, inside a server routine, and counts distinct approvers before the approval request is closed — turning "requires approval" on that screen from a formality into a rule the recorded participants cannot satisfy alone.
Related systems
Main system: Centriu Gauge.
What it does NOT do
- Does not enforce segregation of duties or multi-approver thresholds unless an organization has activated a payment policy — a fresh organization experiences no behavior change from this mechanism until one is turned on.
- Does not let an already-decided approval be decided again — the status guard rejects a second decision on the same approval.
- Does not accept "approve with reservation" without an actual written reason — a blank or trivially short reason is refused.
- Does not allow a historical approval's meaning to be rewritten by a later policy update — each approval records the policy version that applied to it, and a change creates a new policy version.
- Does not offer role- or department-based segregation beyond the specific creator/settler/receipt-uploader/modifier recorded on that payment.
- Does not claim a confirmed integration with another Centriu product's dashboard or automation engine — this page describes Gauge's own approval mechanism.
Security and governance
Approval decisions made on the approval screen run through a server function that locks the approval record against simultaneous decisions and applies the segregation rule recorded on the request. Users can only add entries to the decision history, not edit or delete them. Any personal data referenced in a payment or its approval trail follows Brazil's LGPD (Law No. 13,709/2018). Full detail on access control lives at /governanca and /iso.
Pricing and contracting
Available by custom proposal, arranged directly with the team. Investment and terms are defined with the team, based on the scope of the operation — talk to Centriu. No number is hard-coded on this page.
Frequently asked questions
Can the person who entered a payment also approve it?
Not when segregation of duties is configured — the policy can block a payment's own creator, settler, receipt-uploader, or last modifier from approving it, through the decision routine that reads the participants recorded on the request.
What happens if two people try to approve the same payment at once?
The specific approval row is locked during the decision, so two simultaneous decisions on the same payment cannot both partially apply.
Can an approval decision be edited or deleted later?
Not by users — they can only add entries to the decision history, and there is no edit or delete option for it.
What is "approve with reservation"?
A way to clear a payment despite a minor open issue, but only with an actual written reason on record — a blank or trivial reason is refused.
Does changing the policy later rewrite old approval decisions?
No — each approval records which policy version applied to it at the time, and a policy change creates a new version instead of editing the old one.
What does Centriu Gauge cost?
It is offered by custom proposal rather than a published self-service plan — current terms are arranged directly with the Centriu team.
See how Centriu Gauge enforces segregation of duties on payment approval
Reach our commercial team directly, or leave your details below — we'll follow up with guidance for your case.