Corsa-managed keys protect sensitive fields from anyone who can read Corsa’s storage, backups or logs. They don’t hide plaintext from Corsa: Corsa operates the key and decrypts on its servers. If you need to own the key and revoke Corsa’s access, see BYOK. If stored sensitive fields must stay unreadable to Corsa, see HYOK.
How it works
- When a protected field is written through any path (API, SDK, KYC integration or the app), Corsa’s isolated encryption service asks the Corsa-managed KMS key for a data key. It encrypts the field with AES-256-GCM.
- Every KMS call carries the encryption context
platformId = <your workspace ID>, so a data key created for your workspace can’t be used for another workspace. - Each encrypted value is bound to its workspace, entity type and field. Corsa rejects a value that was copied to a different field or workspace.
- Corsa stores the encrypted value and a keyed search index, computed with a secret that’s unique to your workspace. It never stores the plaintext of protected fields.
- When a signed-in user or an API caller with access reads the field, the encryption service decrypts it and returns the plaintext.
Corsa-managed keys compared with BYOK and HYOK
See encryption tiers for the full comparison.
Turn on Corsa-managed keys
1
Open the encryption settings
A workspace Owner opens Settings → Developers → Encryption.
2
Choose the tier
Under Encryption tier, select Corsa-managed key. No key, stack or verification step is needed.
3
Choose the fields to protect
Select the sensitive fields to encrypt, such as names, government ID numbers and contact details, and save. See fields you can encrypt.
You choose one tier per workspace. Once Corsa-managed keys are active, you can’t switch to BYOK or HYOK, or remove encrypted fields, yourself. Contact your Corsa representative to plan a change. If you don’t see the Encryption page, ask your Corsa representative to enable it for your workspace.
Search and screening on protected fields
- Search. Exact-match search, such as finding a client by email address or ID number, uses the keyed search index. It works without decrypting stored values.
- Screening and rules. Sanctions and PEP screening, rules and workflows read the decrypted values on Corsa’s servers. Fuzzy name matching keeps working.
- AI features and exports. These read decrypted values, like any other Corsa feature.
Check your configuration
UseGET /v1/platforms/encryption-config to read your workspace’s encryption configuration. With Corsa-managed keys, deploymentModel is saas and encryptionFieldsList lists the protected fields.
A 204 No Content response means you haven’t set up field-level encryption. Your data is still encrypted at rest and in transit.
If decryption is unavailable
If the encryption service can’t decrypt a value, for example during a KMS outage, Corsa fails closed. It never returns ciphertext as if it were plaintext:- Reads return the field as
[encrypted:DECRYPT_UNAVAILABLE]instead of the value. Other fields in the response are unaffected. - Writes of protected fields fail with a retryable error, so no plaintext is stored by mistake. Retry the request.
Learn more about Corsa’s security approach, or schedule a demo to discuss your encryption requirements.