Bridge integrations: Purchase, Bills, and Petty Cash
Technical and operational rules governing the automated gating bridges that block Purchase Orders, Vendor Bills, and Petty Cash vouchers until approved.
This guide explains how the Approvals Suite integrates directly into standard procurement and accounting documents via dedicated bridge modules.

The Three Gating Bridges#
SmartERP includes three auto-installing bridge modules:
| Commercial Document | Bridge Addon | Gated Action | Clear Mechanism |
|---|---|---|---|
| Purchase Order | smarterp_approval_purchase | Confirm Order button is blocked. | Click Request Approval on the draft PO. An approved PURCH request must exist for the PO total. |
| Vendor Bill | smarterp_approval_account | Post button (and batch auto-posting cron) is blocked. | Click Request Approval on draft bill. An approved BILL request must exist. |
| Petty Cash Voucher | smarterp_approval_petty_cash | Approve and Pay & Post buttons are blocked. | Click Request Approval in Draft or Checked state. An approved PCV request must exist. |
Anti-Gaming & Tamper Controls#
To prevent circumvention of financial controls, SmartERP enforces three server-side validations:
- Exact Amount Matching:
- The approved request amount must equal the document's current amount.
- If a Purchase Order is approved for ETB 150,000, and a user edits an order line raising the total to ETB 155,000, the approval is automatically invalidated and the Confirm Order button re-locks.
- One Pending Request Limit:
- Only one active approval request may exist per commercial document at any time. Users cannot spam parallel requests.
- Maker-Checker Segregation:
- On Petty Cash vouchers, whoever prepared the voucher cannot validate or check it (
smarterp_approval_petty_cash). - Documents past Draft cannot be deleted from the database.
- On Petty Cash vouchers, whoever prepared the voucher cannot validate or check it (
Next Steps#
- Review reporting: Reporting and analytics.
- Technical reference: Technical architecture.
Last updated: 2026-10-16