> ## Documentation Index
> Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Erase a customer's personal data

> Carries out a GDPR right-to-erasure request (Art. 17). Personal data is
replaced across the account, its addresses, the address snapshots on
past orders, saved cards, connected identities and live sessions.

Orders, payments and tax records are kept — they carry their own
retention obligation — with the personal details removed. The country,
state and a truncated postal code survive on order addresses so the tax
jurisdiction of a past sale stays provable.

Irreversible.


**Required scope:** `write_customers` (for API-key authentication).



## OpenAPI

````yaml /api-reference/admin.yaml post /api/v3/admin/customers/{id}/anonymize
openapi: 3.0.3
info:
  title: Admin API
  contact:
    name: Spree Commerce
    url: https://spreecommerce.org
    email: hello@spreecommerce.org
  description: >
    Spree Admin API v3 - Administrative API for managing products, orders, and
    store settings.


    ## Authentication


    The Admin API requires a secret API key passed in the `x-spree-api-key`
    header.

    Secret API keys can be generated in the Spree admin dashboard.


    ## Response Format


    All responses are JSON. List endpoints return paginated responses with
    `data` and `meta` keys.

    Single resource endpoints return a flat JSON object.


    ## Resource IDs


    Every resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,

    `variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,

    request bodies, and Ransack filters all accept them directly.


    ## Error Handling


    Errors return a consistent format:

    ```json

    {
      "error": {
        "code": "validation_error",
        "message": "Validation failed",
        "details": { "name": ["can't be blank"] }
      }
    }

    ```
  version: v3
servers:
  - url: http://{defaultHost}
    variables:
      defaultHost:
        default: localhost:3000
security: []
tags:
  - name: Authentication
    description: Admin user login, logout, token refresh, and current user profile
  - name: Allowed Origins
    description: CORS allowlist for storefront and admin client origins
  - name: API Keys
    description: Secret and publishable API keys
  - name: Categories
    description: >-
      Hierarchical product categories — tree management, repositioning, and
      product assignments
  - name: Channels
    description: >-
      Sales channels, product publication across channels, and per-channel order
      routing rules
  - name: Custom Fields
    description: >-
      Custom field definitions for products, variants, customers, and other
      resources
  - name: Customer Groups
    description: >-
      Customer groups for segmenting customers (e.g. wholesale, VIP) used by
      pricing and promotions
  - name: Customers
    description: Customer profiles, addresses, credit cards, and store credits
  - name: Exports
    description: Async CSV exports of admin resources
  - name: Fulfillments
    description: Order fulfillments — shipments, fulfill, cancel, resume, split
  - name: Gift Cards
    description: Gift cards and gift card batches
  - name: Imports
    description: >-
      Async CSV imports of admin resources, with per-row status and failed-row
      retry
  - name: Markets
    description: >-
      Markets — geographic groupings of countries used for pricing, tax, and
      fulfillment rules
  - name: Option Types
    description: >-
      Option types and option values used to build product variants (e.g. Size,
      Color)
  - name: Orders
    description: Orders, order items, applied gift cards, and applied store credits
  - name: Payment Methods
    description: Configured payment providers and their available types
  - name: Payments
    description: Order payments — list, capture, void
  - name: Pricing
    description: >-
      Prices and price lists for currency-, market-, and customer-group-specific
      pricing
  - name: Products
    description: >-
      Products, taxons/categories, product custom field values, and bulk product
      operations
  - name: Policies
    description: The store's legal documents — terms of service, privacy, returns, shipping
  - name: Reasons
    description: >-
      Merchant-owned vocabularies for why a return, claim, refund or
      cancellation happened
  - name: Promotions
    description: Promotions, promotion rules, promotion actions, and coupon codes
  - name: Refunds
    description: Order refunds
  - name: Settings
    description: Store-level settings — store profile, tags, and configuration
  - name: Staff
    description: Admin users, roles, and invitations to the store
  - name: Stock Locations
    description: Warehouses and physical fulfillment locations
  - name: Store Credits
    description: Prepaid customer balances across all customers, and each balance's ledger
  - name: Variants
    description: >-
      Product variants — the individual SKUs (size/color combinations) sold
      under a product
  - name: Webhooks
    description: Webhook endpoints and webhook delivery history
paths:
  /api/v3/admin/customers/{id}/anonymize:
    post:
      tags:
        - Customers
      summary: Erase a customer's personal data
      description: |-
        Carries out a GDPR right-to-erasure request (Art. 17). Personal data is
        replaced across the account, its addresses, the address snapshots on
        past orders, saved cards, connected identities and live sessions.

        Orders, payments and tax records are kept — they carry their own
        retention obligation — with the personal details removed. The country,
        state and a truncated postal code survive on order addresses so the tax
        jurisdiction of a past sale stays provable.

        Irreversible.


        **Required scope:** `write_customers` (for API-key authentication).
      parameters:
        - name: x-spree-api-key
          in: header
          required: true
          schema:
            type: string
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: customer anonymized
          content:
            application/json:
              example:
                id: cust_UkLWZg9DAJ
                email: anonymized-87c6bfa6-4803-420c-a5e2-b1c962f0f40a@invalid
                first_name: Redacted
                last_name: Redacted
                phone: null
                accepts_email_marketing: false
                email_marketing_consent_updated_at: '2026-01-15T12:00:00Z'
                full_name: Redacted Redacted
                available_store_credit_total: '0'
                display_available_store_credit_total: $0.00
                failed_attempts: 0
                metadata: {}
                email_marketing_consent_source: anonymization
                created_at: '2026-01-15T12:00:00.000Z'
                updated_at: '2026-01-15T12:00:00.000Z'
                anonymized_at: '2026-01-15T12:00:00Z'
                anonymized: true
                tags: []
                internal_note: null
                internal_note_html: null
                default_billing_address_id: null
                default_shipping_address_id: null
                orders_count: 0
                total_spent: '0.0'
                display_total_spent: $0.00
                last_order_completed_at: null
                customer_group_ids: []
              schema:
                type: object
                properties:
                  id:
                    type: string
                  email:
                    type: string
                  anonymized:
                    type: boolean
                  anonymized_at:
                    type: string
                    nullable: true
      security:
        - api_key: []
          bearer_auth: []
components:
  securitySchemes:
    api_key:
      type: apiKey
      name: x-spree-api-key
      in: header
      description: Secret API key for admin access
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token for admin user authentication

````