Integration workflow
Deletion request processing is an ongoing pull-process-respond cycle, not a one-time integration. The steps below summarize that cycle.
For more information on the legal requirements related to deletion request processing, including relevant timelines for ongoing processing, see California Civil Code section 1798.99.80 et seq. and California Code of Regulations (CCR), title 11, section 7600 et seq.
Step-by-step
Step 1: Set up your account (one-time)
Create an account in DROP, complete registration if applicable, pay required fees, and select the consumer deletion list(s) you will process.
Step 2: Generate your API key (if integrating via API)
Generate an API key in the portal. The key is scoped to your selected consumer deletion list(s).
Note: Integration via API is not required. You may use the manual download/upload option instead.
Step 3: Download data
Call GET/data/download to retrieve a ZIP archive containing one CSV file per selected consumer deletion list. Each CSV contains hashed consumer identifiers included in deletion requests.
Step 4: Extract and read
Unzip the archive and read each CSV file.
Step 5: Match records
Compare each hashed identifier against your own records. The hashing and standardization rules are documented in Working with the Data.
Step 6: Process records based on match outcomes
Use the following status codes when reporting match outcomes:
| Code | Label | Meaning |
|---|---|---|
| 2 | Exempted | Match found and personal information is exempt |
| 3 | Deleted | Match found and non-exempt personal information was deleted |
| 4 | Opted out | Multiple consumers are linked to the same identifier and all were opted out of sale or sharing |
| 5 | Not found | No match found after completing the matching process |
For more information on the legal requirements based on match outcomes, see California Civil Code section 1798.99.80 et seq. and CCR, title 11, section 7600 et seq.
Note: You must direct all service providers or contractors to process deletions and opt outs based on the match outcomes above.
Step 7: Upload status response
Create a CSV with Id,Status columns. When possible, use the corresponding downloaded CSV file name for each response file. If you upload multiple response files for the same downloaded list, use the same base file name with a permitted suffix. Upload it using:
POST/data/uploadto submit a new response with status for records in your current batch.POST/data/amendfor corrections to records submitted previously.
Validation
DROP validates the following for every upload:
- API key must be present and valid
- Uploads must use
multipart/form-datawith the field namefiles - Uploaded files must be CSV files
- CSV header must be
Id,Status - Status values must be
2,3,4, or5
File-level validation
Once your uploaded file(s) are accepted, you will receive email confirmation.
If file-level validation fails, the API returns an HTTP error or a file-level rejection message on screen (for manual uploads). For more information, see Error Handling in API Operations.
Record-level validation
Once your upload is processed, you will receive email confirmation. If we detect record-level errors in your submission following upload, we will send an email to the primary and secondary contact email addresses listed on your account. Carefully review the error details in the email, correct them, and resubmit.
