Cardvoy

Security

Built for card data from the first line of code

Cardvoy holds card numbers, customer IDs and the custody chain of physical cards. These are the controls that protect them, and how an auditor can test each one.

Card numbers

Tokenised with an HMAC and encrypted with AES-256-GCM on arrival, with a key per bank. Staff see a masked number. A full number is shown only when two people approve it, and every reveal is audited.

Audit trail

Each bank has its own hash-chained audit trail. Every entry includes the hash of the one before. The database refuses updates and deletes, and the chain can be verified from the screen at any time.

Maker-checker

Holds, hot-marking, destruction, re-dispatch, configuration and role changes need a second person. The server refuses a checker who is the maker, and segregation-of-duties rules stop conflicting roles.

Sign-in

Passwords hashed with PBKDF2 (210,000 iterations), authenticator-app MFA (required for administrators by policy), account lockout, idle timeout and an IP allow-list per bank.

Bank isolation

Every record carries its bank, and every request is checked against it. A session from one bank cannot read another bank’s data, which the API tests verify on every build.

Integrations

Scoped API keys stored only as hashes; IP allow-lists; courier webhooks signed with a separate secret, time-limited and protected against replay.

Transport and hosting

TLS 1.2+ everywhere, strict security headers and content security policy, a web application firewall on AWS, and database connections over verified TLS.

Logs

Structured logs with card numbers, tokens, passwords and one-time codes redacted before they are written.

Licensing

Licences are signed with ECDSA P-256. An expired licence switches the system to read-only after its grace period; data is never locked away.

Honest about limits

What comes next

An independent code review of v1.0 was completed in November 2026. Its findings were fixed or are scheduled above with interim controls in the runbook.

  • Database row-level security and a least-privilege database role (v1.1)
  • Externally anchored audit hashes on write-once storage (v1.1)
  • Single sign-on with Azure AD, Okta, ADFS and LDAP (v1.1)
  • Automated master-key rotation (v1.1)
  • Independent penetration test before the first production go-live
Signed licence: edition, modules and limits.
Signed licence: edition, modules and limits.

See Cardvoy with your own process.

Book a walkthrough: we configure your branches, CFC, couriers and country pack in a private POC and run a captured card from ATM to customer while you watch.