Security

    You're trusting us with your books. Here's why you can.

    A bureau's ledger is the business. CediSync is built so the record can't quietly change — not by a teller, not by a supervisor, and not by us.

    The controls

    Enforced in the database, not promised in the interface.

    Interface rules can be bypassed; database rules can't. Every control below lives at the data layer.

    Sealed transaction records

    Once a trade posts, its line items cannot be edited or deleted — by anyone, including administrators. Corrections create a new record that supersedes the original, with both sides kept and linked. The rule is enforced inside the database itself, not just in the app.

    A close the server re-checks

    When a branch closes its book, the database independently recomputes the day's figures from the ledger and rejects a close that doesn't match. A wrong figure cannot be saved — by mistake or on purpose.

    Audit trail written by the database

    Sensitive tables carry trigger-level audit: every create, update, approval, sign-in, close, and reopen is recorded with the actor, timestamp, and old and new values. No client — including ours — can skip it.

    Role-scoped access, enforced at the data layer

    Tellers see their branch, supervisors their branch's operations, owners everything. The scoping is enforced with row-level security in the database, so a modified or malicious client still cannot read another branch's — or another bureau's — data.

    Approvals signed with a supervisor PIN

    High-value trades and off-board rates pause for supervisor approval, confirmed with a bcrypt-hashed PIN and protected by an attempt lockout. Offline-captured trades queue and require the same ratification before they post.

    Verifiable receipts

    Every receipt carries a QR code that checks the trade against the bureau's ledger — so a customer, an auditor, or you can confirm a printed receipt reflects a real recorded trade.

    The platform

    Boring infrastructure, on purpose.

    Encryption

    Traffic is encrypted in transit (TLS, with HSTS enforced at the edge) and data is encrypted at rest on managed infrastructure.

    Managed Postgres

    Data lives in a managed PostgreSQL database with row-level security policies as the primary authorization layer — the same mechanism banks' auditors know how to reason about.

    Sessions

    Idle sessions are logged out automatically after a warning. Authentication tokens are revalidated when a device returns to the app.

    Testing

    We run regular internal security audits and adversarial testing against our own releases, and track every finding to closure. The changelog records the hardening work — including the findings.

    Responsible disclosure

    Found something? Tell us.

    No system is finished. If you believe you've found a security issue in CediSync, email support@cedisync.com with the details. We read every report, respond directly, and fix confirmed issues as a priority.