Partners who are not PCI DSS compliant can display sensitive card data to end-users using a Contro-hosted HTML widget embedded in an iframe. Sensitive data never reaches your servers - reducing PCI scope to SAQ-A.
If your organization is PCI DSS compliant and you prefer full UI control, use the direct API method instead.
CSP headers: The widget sets strict Content-Security-Policy headers including frame-ancestors restricted to your configured allowed origins
Allowed origins (iframe): Configure via dashboard Settings. These control which domains can embed the card widget iframe — separate from the API allowed origins that enforce CORS. In production, unconfigured origins result in frame-ancestors 'none' (iframe blocked)
Single-use tokens: Each URL can only be loaded once - replay attacks are rejected
60-second expiry: Tokens expire quickly to minimize the attack window