BigBossBuildsCIT OPS · LEDGER SPIKE
Cash-in-transit operations platform · engineering spike

A custody ledger you can't edit, running today.

Before writing a line of UI for your fleet, we built the part of a CIT system that has to be right: the cash custody ledger, the maker/checker rule, and the SAMA crew rule — live, on our infrastructure.
Open the live demo Browse the REST API ledger chain verified · 62 custody events · head 7566d47a4e6bd4ec
What is live on this page

Not a slide deck — a running system with rules enforced in the database

Append-only custody ledger

Every bag event (collected, delivered, counted) is a new row. The database refuses UPDATE and DELETE on the ledger outright — try it on the audit page. Corrections are new, linked entries.

Tamper-evident hash chain

Each ledger row carries a SHA-256 over its content plus the previous row's hash. Anyone — you, your auditor, a bank — can recompute the chain via /api/ledger/verify. That makes application-level edits detectable; in production the chain head is also anchored daily to an external store so a database administrator can't quietly re-hash.

Maker ≠ checker, server-side

A cashier's count that differs from the declared amount opens a discrepancy. Only a supervisor can decide it, and never the person who made the entry — checked against the acting user ID, not a hidden button.

SAMA three-role crew

A trip cannot be dispatched without a driver, a guard and a companion — three distinct, security-cleared people — per SAMA circular 53506/198.

Fleet eligibility, not a checkbox

A vehicle is dispatchable only if registration, insurance and inspection are valid and it is inside SAMA's five-year service life. Expiry alerts fire at 30 days, on 53 vehicles.

Ops board and REST API

Today's trips, delayed stops, open discrepancies, dispatchable vehicles. Everything on the screen is also on a read API with OpenAPI docs — the same surface an Odoo sync would read. Webhooks and SLA monitoring are Phase 1 scope, not in this spike.

Today: 12 trips · 3 in progress · 3 completed · 1 open discrepancy · 39/53 vehicles available. Demo data regenerates on request.

Target architecture · Option C

Odoo for finance and people, a purpose-built service for cash and trips

Odoo Enterprise

  • GL, AR/AP, cost centres, profitability
  • ZATCA Phase 2 e-invoicing (Saudi localisation)
  • HR, GOSI, WPS/Mudad payroll file
  • Customer master, sales agreements, Fleet records
  • Hosted in-Kingdom (Odoo.sh Dammam or KSA cloud)

CIT Ops (this service, grown up)

  • Trip lifecycle, three-role crew and vehicle assignment
  • Append-only custody ledger, reconciliation, maker/checker
  • Real-time GPS, geofences, route deviation
  • Offline-first field app with conflict-safe sync
  • Ops boards, SLA monitoring, audit trail
Regulatory fit

What SAMA's cash-transport circular requires, and where it lives in the system

SAMA circular 53506/198 (2018)Where it is encodedStatus here
Crew of exactly three: driver, guard, companion — armed guard and companion, security-screenedAssignment validation; clearance-expiry alerts per crew memberlive
Armoured to VPAM 6; maximum five-year service life; periodic preventive maintenanceVehicle record with in-service date; service-life alert; eligibility check on dispatchlive
Licence renewal submitted three months before expiryT-90 alert on operator licence (Odoo document tracking)phase 1
Dual supervision on ATM cassette work; reconciliation against machine meter readingsTwo-actor custody events; counted-vs-declared with discrepancy workflowlive / ATM meters phase 2
Encrypted communication devices; security containers with tracking and ink-stainingDevice and container registry linked to trips; GPS feed integrationphase 2
Security authorities informed of daily replenishment routesDaily route manifest export from the ops boardphase 1
Next

From spike to pilot

This spike is item 4 of our delivery roadmap: prove the ledger before committing dates. What follows is a two-week scoping workshop (GPS vendor, ZATCA issuer of record, hosting shape, custody chain, SLA numbers), then a four-month MVP that pilots on three to five of your vehicles before any full-fleet cutover. The proposal with three priced options has been shared with your team privately.

Built by BigBossBuilds. Demo users and data are fictional; amounts are illustrative.