Security at Prysm
Prysm is payment infrastructure — security and financial correctness come before everything else. Here is how we protect merchant and cardholder data.
PCI DSS SAQ-A scope
Card data is captured and tokenized in the browser by our processor's hosted fields — raw card numbers never touch Prysm's servers. This keeps integrations in the lowest-burden PCI scope (SAQ-A).
Tokenization
Every card becomes an opaque token before it reaches us. We store and charge tokens, never PANs. Server-side raw-card endpoints are disabled in production.
Encryption
All traffic is served over TLS (HTTPS enforced, HSTS). Data at rest — including hashed credentials and API keys — is encrypted by our managed database provider.
Credentials & secrets
Merchant passwords are hashed with bcrypt; API keys and session tokens are stored only as SHA-256 hashes. Sessions are revocable. Provider secrets live in a secret manager, never in code.
Least-privilege access
Admin surfaces are session-gated and not linked publicly. Every money movement and admin action is written to an append-only audit log with IP and actor.
Webhooks
Inbound processor webhooks are signature/credential-verified before any state change, and handlers are idempotent (deduped by event) so replays can't double-apply.
Money integrity
Amounts are integer minor units (cents) end to end — never floats. Charges are idempotent, and every transaction reconciles gross = net + fee to the cent.
Security questions or to report a vulnerability, email security@prysmsolutions.io.
