Create Customer

POST /api/v1/customers

Required: first_name, last_name, email (must be unique). Optional: password (bcrypt-hashed automatically), phone, type.

Returns 409 Conflict if the email already exists.

curl -X POST -H "Authorization: Bearer KEY:SECRET" 
     -H "Content-Type: application/json" 
     -d '{"first_name": "Jane", "last_name": "Doe", "email": "[email protected]", "password": "securePass123"}' 
     https://example.com/api/v1/customers

Update Customer

PUT /api/v1/customers/{id}

Delete Customer (GDPR)

DELETE /api/v1/customers/{id}

Anonymizes the record rather than deleting — GDPR compliant. Personal data is replaced with placeholders, the account is disabled, and addresses are deleted.