Controls the software enforces, not policy it stores.
The server decides each control below on every request. None can be switched off from the browser.
Sealed bids
Prices, priced lines and notes are encrypted (AES-256-GCM) when submitted, with the bid as associated data. No account, including the operator’s, can read a price before the deadline passes on the server clock.
Approval limits
Approval chains are built from value tiers: manager up to SAR 100k, CFO to 500k, CEO above. Only the named approver can act on a step, and never the person who raised the item.
Segregation of duties
Whoever received the goods cannot accept the invoice, and whoever accepted it cannot pay it. The rule is checked on the record itself.
Three-way match
A payment is held unless the purchase order, the supplier, the goods receipt, the amount and VAT at 15% agree, and no bank change is pending.
Supplier-owned bank details
Suppliers change their own IBAN. The change is validated and logged from old to new, and payments to that supplier are held until the operator verifies the account.
Audit trail
Every entry is written in the same transaction as the change it records and chained with HMAC-SHA256. Verification finds the exact row that was altered.
Sign-in and sessions
Sign-in by an emailed one-time code (hashed, single use, five attempts, rate-limited) or by Google. Sessions are HttpOnly, SameSite cookies with a CSRF token on every change.
Hosting and data
The service runs on managed cloud infrastructure in the EU today; in-Kingdom hosting in Dammam is planned. Procura never holds funds: it records payment instructions and bank references only.