Fail-closed commerce
Unknown price, cost, inventory, delivery, identity, currency, discount compatibility, or attribution evidence cannot produce a binding automatic offer.
Security and trust
BuyWhen protects the path from customer request to merchant decision, private checkout, paid order, and refund evidence. Safety controls are part of the workflow, not a separate badge.
Unknown price, cost, inventory, delivery, identity, currency, discount compatibility, or attribution evidence cannot produce a binding automatic offer.
Access tokens are opaque and stored as hashes. Offers are expiring, revocable, shopper-bound, product-bound, quantity-bound where relevant, and revalidated before checkout.
Direct identifiers and protected payloads use authenticated encryption. Lookup keys use independent keyed hashing, and logs exclude tokens, contact details, and protected URLs.
Every merchant operation is scoped to the Shopify store and checked against explicit permissions. Team, organization, API, and SSO paths preserve tenant boundaries.
Shopify webhooks and app proxy requests are authenticated. Outbound webhooks use HTTPS, DNS pinning, signatures, idempotency, bounded waits, and explicit retry classification.
Decisions, domain events, consent, attribution, audit records, and fee corrections are append-only. Refunds create corrections rather than rewriting earned history.
Transactional and marketing consent are separate. Export, redaction, retention, uninstall, legal hold, channel revocation, and suppression paths are built into the data lifecycle.
Web and worker health checks cover CockroachDB and Redis. Queues use retries and dead letters, migrations are drift-checked, and backup/restore plus encryption-key rotation are rehearsed.