Payment-infrastructuur leeft en sterft bij zijn security posture. Hier is precies wat we doen, wat we niet doen, en wat we niet zullen pretenderen al te hebben.
1. Non-custodial by design
De sterkste security-garantie die we bieden is architecturaal: we houden geen merchant-funds vast. Ooit. Wanneer een klant met een kaart betaalt, converteert de on-ramp fiat naar USDC en onze on-chain splitter routet het atomisch naar je Polygon-wallet in dezelfde transactie. Onze servers zien een event, geen balans. Er is geen hot wallet, geen pooled treasury, geen omnibus-account — dus er is geen honeypot voor een aanvaller om in te breken. Als Peptide-Pay morgen verdween, zouden je eerdere betalingen nog on-chain in je wallet staan.
2. Infrastructuur
Hosting: Vercel, met global edge network en DDoS-bescherming.
State store: Upstash Redis met TLS in transit en AES-256 at rest.
Settlement: Polygon mainnet, on-chain geverifieerd — dezelfde security-aannames als de chain zelf.
DNS & CDN: gehard met HSTS preload, CAA-records die de CA pinnen, DNSSEC ingeschakeld.
Secrets: opgeslagen in Vercel's encrypted env store; geroteerd bij employee-offboarding.
3. Authenticatie
Alleen magic links — geen wachtwoorden, niets om te phishen, niets om te hergebruiken uit een breach.
Magic links zijn single-use en vervallen in 15 minuten.
Dashboard-sessies zijn kortlevend (7 dagen) en gekoppeld aan de browser waarmee is ingelogd.
Session-cookies zijn HTTP-only, Secure, SameSite=Lax.
Verdachte logins (nieuw land, nieuwe ASN) triggeren een e-mail-alert en kunnen worden ingetrokken vanuit elke actieve sessie.
4. Webhooks
Elke webhook is getekend met HMAC-SHA256 met je account-secret; verifieer voordat je de payload vertrouwt.
Signature-header bevat een timestamp; weiger alles ouder dan 5 minuten om replay te voorkomen.
Retry-queue met exponentieel backoff (30s, 2m, 10m, 30m, 1u, 3u, 12u, 24u) en dan droppen.
Gedropte webhooks blijven 30 dagen afspeelbaar vanuit het dashboard.
We publiceren de huidige IP-egress-range zodat je ons op de firewall kunt allowlisten.
5. API-keys
Keys worden één keer getoond, server-side hashed (bcrypt) opgeslagen; we kunnen ze niet voor je ophalen.
Rouleerbaar op elk moment vanuit /app/settings — oude en nieuwe keys werken 24 uur parallel zodat je kunt deployen zonder downtime.
Scoped keys zijn gepland voor Q3 2026; voorlopig zijn keys full-access.
Rate-limited per key: 100 requests/seconde soft, 1000/seconde hard.
6. Encryptie
In transit: TLS 1.3 op elk endpoint; TLS 1.2 alleen toegestaan voor legacy webhook-consumers en gemarkeerd voor deprecation.
At rest: AES-256 op Upstash Redis en Vercel blob-storage.
Klant-e-mails worden gehasht (SHA-256 met per-merchant salt) voordat ze in server logs gaan; alleen het merchant-dashboard toont ze in klare tekst.