Overview
Partners with PCI DSS compliance can retrieve sensitive card data (PAN, CVV, expiry) via a direct API call. The response is RSA-encrypted with your public key - Contro never exposes card data in plaintext.If your organization is not PCI DSS compliant, use the embedded widget method instead - no certification needed.
Prerequisites
- Your organization must be PCI DSS compliant
- An RSA-4096 (or larger) key pair
- Your public key uploaded via the partner dashboard https://partner.contro.me/settings
Step 1: Generate an RSA key pair
Step 2: Upload your public key
Upload your PEM-encoded public key from the partner dashboard:- Open https://partner.contro.me/settings
- Find the RSA Public Key section
- Paste the contents of
public_key.peminto PEM-encoded RSA Public Key and save. Example:-----BEGIN PUBLIC KEY-----\nMIICIjAN...\n-----END PUBLIC KEY-----
Step 3: Call the reveal endpoint
Step 4: Decrypt the response
Thedata field is a Base64-encoded RSA-OAEP-SHA256 ciphertext. Decrypt with your private key:
Sandbox testing
In sandbox mode (sk_test_ keys), the endpoint returns encrypted test data:
If you haven’t uploaded an RSA key, sandbox mode uses a built-in sandbox key pair automatically. You can use the corresponding sandbox private key to verify your decryption logic.
In live mode, you must have an RSA public key configured. The endpoint returns a
400 error if no key is set.Security considerations
- Card data is encrypted end-to-end - Contro’s API response is encrypted with your key before leaving the server
- Key rotation: Replacing your public key takes effect immediately. Coordinate rotation to avoid decryption failures during the swap window