Action guide

Evidence that erasure actually happened

POST/v1/events · user.account.deleted

Emit a `user.account.deleted` event when you process a deletion request. Pair it with a call to `DELETE /v1/actors/:id` to anonymize the rest of the trail.

When to emit

After the user row is marked deleted and before your async workers purge derived data.

Example payload
await recalled.events.create({
  action: "user.account.deleted",
  actor: { id: user.id, email: user.email },
  organization: user.organizationId,
  metadata: {
    reason: "value",
    retainUntil: "value"
  },
});
Metadata to include

Keep metadata flat and consistent across your service so it plays well with search and CSV exports.

KeyPurpose
reasonuser_requested, gdpr_erasure, admin_manual, inactivity
retainUntilEarliest date data may be permanently purged
Suggested retention

Keep for the full statutory retention period of your jurisdiction, typically 3 to 5 years.

Related actions