Compliance

The regulatory framework we build against.

Compliance isn't a checkbox. It's enforced by the architecture — period locks, trust segregation, hash chains, signed audit trails. Here's what the platform aligns with and how.

IATA / ARC / BSP

BSP billing cycles, ARC weekly settlement, ADM/ACM tracking, void window enforcement, exchange/reissue audit trails, coupon status, EMD accounting, ticket stock reconciliation, GDS queue sync (Sabre, Amadeus, Travelport, NDC).

Trust accounting

Jurisdiction-aware trust release rules — ATOL (UK), TCF (AU), CARF (US). Daily reconciliation cron raises breach alerts. Cash restriction logic prevents agency-funded premature refunds.

TOMS / VAT / GST

UK/EU TOMS margin VAT with in-EU vs out-of-EU split. Reverse-charge VAT, GST/HST, withholding tax, state and city tourism taxes, airline tax parsing. Multi-jurisdiction tax engines per supplier country.

PCI-DSS v4.0

Zero raw PAN storage. Tokenised payment methods via vaulted gateways. Encrypted PII at rest and in transit. Comprehensive audit logs, RBAC, MFA, SSO, IP restrictions, device audit trails.

GDPR / CCPA

Right-to-erasure workflow with cascaded redaction. Consent management, data retention policies, PII masking, audit history, traveller document encryption.

IFRS 15 / ASC 606

Agent: revenue on ticket issuance or final payment. Principal: revenue on travel departure date. Deferred revenue aging, accrual accounting, contractual performance obligations.

What "compliance by architecture" actually means

A lot of products talk about compliance. Here is how it lives in the codebase.

Period locks

Once a fiscal period is closed, no journal can post into it — at the database constraint layer. Re-opening a period is an audited, role-restricted operation. Reversals into closed periods cascade to the current open period.

Hash-chained journals

Every posted journal carries SHA-256 of the previous journal's hash + its own canonicalised content. A tampered row breaks the chain at the next nightly verify. Per-tenant chains never cross.

Trust segregation

Trust bank accounts are flagged at the schema level. Trust-flagged payments cannot be allocated to non-trust liabilities. Releases require either: (a) supplier remittance, (b) confirmed travel completion, or (c) explicit jurisdiction-rule exception with audit.

Three-way match

Supplier invoice line items match against (1) the booking item's quoted cost, (2) the supplier invoice received, (3) the booking item supplier. Variance > tolerance routes to approval, never auto-passes.

Right to erasure

A traveller deletion request triggers field-level redaction of encrypted PII while preserving aggregate accounting integrity. Audit log entries reference user IDs, not personal data, so erasure does not orphan the chain.

Need a regulator-facing summary or a compliance matrix for a specific jurisdiction? Reach out.