OrdoSavings Finance Platform

Security and compliance

Regulation: a boundary, not a check

We do not block forbidden actions at runtime — we never create them in the interface. A non-compliant operation is not a rejected request; it is an operation that does not exist.

Boundaries

An operation that does not exist cannot be violated

All 36 validation rules trace back to a regulation article.

Lottery

Auditable draws: a ready evidence set

Every draw closes with a five-part, cryptographically verifiable, time-stamped evidence set.

  1. 01Immutable record tapeEvery step of the draw is kept on an immutable, time-stamped record tape.
  2. 02Frozen report copyThe report at the moment of the draw is frozen; no later view can replace it.
  3. 03Segregation-of-duties matrixWho prepared, approved and announced the draw is recorded in a matrix.
  4. 04Reproduction from seed and listThe result can be reproduced independently from the seed and the locked participant list.
  5. 05Read-only auditor profileThe auditor reaches the whole evidence set through a profile that can change nothing.

Controls

Compliance is design, not configuration

Controls ledger

Fourteen controls, each bound to a mechanism

Compliance is not a list of articles but a mechanism that runs. Every row names a control, the mechanism that enforces it, the evidence an audit will see and its basis.

NoControlMechanismEvidence / codeBasis
CTL-01Append-only ledgerThe runtime database role has no UPDATE/DELETE privilege on es.events and audit.audit_log; corrections are reversal entries.(stream_type, stream_id, seq) · recorded_atBDDK IS communiqué · audit logs
CTL-02Four-eyes principleMaker and checker are separated; holding contract:approve does not let you approve a contract you established. Report preparation and submission are separate people too.MSG-S-21Segregation of duties
CTL-03AuthenticationOIDC Authorization Code + PKCE (S256), 900 s token lifespan; developer headers are refused in deployed environments.MSG-G-12Keycloak 26 · realm tfs
CTL-04Route → permission tableEvery write route is bound to a permission code (party:create, contract:approve, lottery:run, delivery:manage…); an unmatched request is refused.MSG-G-12 · realm rolesLeast privilege
CTL-05Institution isolationThe x-tenant header is validated against ^[a-z0-9][a-z0-9-]{0,31}$; one Durable Object and SQLite ledger per tenant, an isolated stack per institution on premise.MSG-G-02Data residency · isolation
CTL-06Financial-position gateWithout an approved equity / total-assets record, or with a standard ratio below 3%, no new contract is written; entering and approving are different roles.MSG-S-56 · prudential:approveMADDE 20
CTL-07Disclosure periodA contract cannot be established while the pre-contract disclosure form is less than one day old; the rule engine refuses.MSG-S-05MADDE 16/5
CTL-08Insider and risk-group limitThe ban on contracts with insiders and the limit on contracts with one person or risk group relative to equity are checked at establishment.MSG-S-57MADDE 22/A
CTL-09Allocation thresholdA contract cannot enter the period before 40% of its amount is saved and 40% of its term has elapsed; one with an overdue installment stays out.AllocationEvaluatedMADDE 21/2
CTL-10Reserve fund and capacity5% of the pool balance is held back; capacity = balance × coverage ratio, derived by the treasury, never typed in.deliveryCapacityMADDE 30/1
CTL-11Draw integritySHA-256 digest of the locked list, recorded seed and algorithm version; the period’s draw is single-use; verifyLottery reproduces and compares.LotteryDrawn · expectedSeq 0Five-part evidence set
CTL-12Seller payment deadline10 business days from allocation; tracked on the delivery file, the disbursement writes five postings in one unit of work.DeliveryDisbursedMADDE 17/9
CTL-13Rule-set publicationPublication requires a reference to the filed document version and every value must match the authoritative value in that document.MSG-S-92MADDE 15
CTL-14Documentation gateGated pages are not served without a verified key (private, no-store, noindex); only the SHA-256 of a key is stored, and suspending a tenant closes it.401 · tfs_docs_keyControl plane

Codes come from the platform’s trilingual message catalogue, articles from the Regulation on the Establishment and Operating Principles of Savings-Finance Companies; the statements describe design goals, not a certification claim.

Assurance layers

The architecture itself carries compliance

Three architectural decisions carry compliance — not process documents.

Releases

Continuously current, never surprised

The platform is updated continuously, with support from N back to N-5. You never accumulate “version debt”. Every upgrade follows a standard pipeline.

  1. 01Impact analysis
  2. 02Test
  3. 03Acceptance
  4. 04Production
  5. 05Rollback plan
Calendar exclusions
Upgrades are never scheduled in: Draw days · High-volume periods · Period-end closings

Deployment

Deployment profiles

The institution decides where it runs; central monitoring and a standard dev / test-UAT / production pipeline apply to all three.

Security documentation and audit support

Contact our team for pre-audit technical documentation, architecture diagrams and the control matrix.

destek@karyabilisim.com