Set up your matching endpoint

You'll need an endpoint on your backend to match hashed identifiers from California for the sandbox environment.

1

We forward you requests from California

Each day, we download the latest deletion requests from DROP and send them to your endpoint in batches. We recommend 500 records per request. Every record keeps the same identifier packaging as today: one populated identifier field, the rest null.

{
  "batch_id": "c2e4a6fa-8d44-4f6f-9ef9-7d4f1f1d8e6a",
  "sync_record_id": "c2e4a6fa-8d44-4f6f-9ef9-7d4f1f1d8e6a",
  "environment": "sandbox",
  "list_type": "EMAIL",
  "request_count": 500,
  "requests": [
    {
      "id": "7a3d9c73-39d8-40a5-bfcb-31d123456789",
      "drop_id": 679,
      "ndz": null,
      "email": "KA18MT/ph6IHYjzT9zwETySDQyvSh87YuoSBpOQtkhE=",
      "phone": null,
      "maid": null,
      "nvin": null,
      "ctvid": null
    }
  ]
}

Parse requests[], useid as Superset's canonical record ID in your response, and treatdrop_id as California's work item ID.

environment tells you which pipeline a batch came from — sandbox identifiers are synthetic test data, production identifiers are real consumer requests. You can also use{{environment}} in your endpoint URL or headers to route the two apart.

2

You match using California's hashing algorithm

Hash your records using SHA-256 (Base64) with California's normalization rules, then compare against the hash we send you. See full normalization specs for details on each list type.

3

Respond with the DROP outcome code

Return JSON with one update per request. Each update only needs the Superset request ID and the DROP outcome code:

Not found

5No match was found after completing the matching process; return response_status_code 5

Deleted

3A match was found and non-exempt personal information was deleted; return response_status_code 3

Opted out

4Multiple consumers are linked to the same identifier and all were opted out of sale or sharing; return response_status_code 4

Exempted

2A match was found and the personal information is exempt; return response_status_code 2

Response format

{
  "updates": [
    {
      "id": "7a3d9c73-39d8-40a5-bfcb-31d123456789",
      "response_status_code": 3
    },
    {
      "id": "16d9225f-b0c9-4a14-89ce-5b31abcdef12",
      "response_status_code": 5
    },
    {
      "id": "d3f1f996-cd1e-4e4e-a3c6-82cdabcdef34",
      "response_status_code": 4
    }
  ]
}

California's official result codes are 2, 3, 4, and 5.