Booking customers
Customer records for the Advanced Booking module (hub_customers table). Distinct from CRM contacts — CRM contacts are for sales pipeline, booking customers are the direct booking parties. Scopes: bookings.customers.read / bookings.customers.write / bookings.customers.delete.
Endpoints
GET /api/workspace/v1/bookings/customers
GET /api/workspace/v1/bookings/customers/{id}
POST /api/workspace/v1/bookings/customers
PATCH /api/workspace/v1/bookings/customers/{id}
DELETE /api/workspace/v1/bookings/customers/{id}
POST /api/workspace/v1/bookings/customers/{id}/restore
POST /api/workspace/v1/bookings/customers/bulk-delete
The customer object
| Field | Type | Description |
|---|---|---|
| name* | string | Customer display name (required) |
| string | One of email OR phone is required on create | |
| phone | string | One of email OR phone is required on create |
| address | string | Street + number |
| postcode | string | NL postcode format e.g. 1011 AB |
| city | string | |
| country | string(2) | ISO 3166-1 alpha-2 (default NL) |
| language | string(5) | e.g. nl, en (default nl) |
| birthdate | date | YYYY-MM-DD |
| marketing_opt_in | boolean | Consent for marketing outreach |
| notes | string | Internal notes (<= 5000 chars) |
| total_bookings | integer | Read-only counter maintained by the platform |
Create a customer
curl "https://app.staffifyai.com/api/workspace/v1/bookings/customers" \
-X POST \
-H "Authorization: Bearer sfy_wsp_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane de Vries",
"email": "[email protected]",
"phone": "+31 6 12345678",
"postcode": "1011 AB",
"city": "Amsterdam"
}'GDPR-safe delete
The workspace-API DELETE is a pure recycle-bin soft-delete: it flips deleted_atbut leaves PII intact so a restore inside 30 days is possible. This is not the same as the workspace UI's GDPR-erasure flow, which anonymizes the PII in-place and keeps the row for the 7-year bewaarplicht. Rows erased via the GDPR flow cannot be restored via the API (returns 422 with Cannot restore a GDPR-anonymized customer).
Webhooks
booking_customer.createdbooking_customer.updatedbooking_customer.deletedbooking_customer.restored