Never your own request
The requester cannot approve what they raised. The attempt is not merely blocked — it is recorded as a critical incident, because someone trying is information in itself.
Controls that depend on everyone behaving are not controls. BINK enforces four eyes in the code: the person who raised a request can never approve it, only the roles a policy names may vote, one rejection ends it, and every decision is written to a record the business owns.
One policy per kind of decision, per business — so there is never a question about which rule applied.
An approval system is defined by what it refuses. Two of these do more than refuse — they raise a critical incident, because an attempted bypass is worth knowing about.
Each of these exists because of a specific way approvals fail in practice — one person acting alone, a rubber stamp, or a queue that quietly ages into consent.
The requester cannot approve what they raised. The attempt is not merely blocked — it is recorded as a critical incident, because someone trying is information in itself.
A policy can require up to ten independent approvals. Consensus is counted, not assumed from the first person to click.
A single rejection stops the request immediately, whatever the approval count. Objection outweighs agreement, which is the correct default for money.
A policy can require approval on everything, or only above an amount in a currency you nominate. Routine work is not made to queue behind a control designed for exceptions.
A request that nobody resolves times out rather than sitting pending indefinitely, so a stale queue cannot quietly become an approved one.
Policy changes, requests, every vote and every cancellation are written to an immutable company audit log with actor, role and address — readable and exportable without asking BINK.
The engine and its guarantees are one thing; what currently hands work to it is another, and the difference is worth being exact about.
Expense claims are what routes through the approval engine today. Policies for payouts, refunds, settlement and treasury actions can be configured, but those paths do not yet raise approval requests — so BINK does not claim they are held automatically.
Where the money sits, and what it is doing.
How money leaves, and who may move it.
What happened, and what still needs a decision.
Enforced in the code, not in a policy document — with the attempt recorded when somebody tries.