Skip to main content
Verify against final controller

This page documents the D.1โ€“D.4 lifecycle notification settings. Verify exact field names and PATCH semantics against the final SettingsController implementation before publishing.

Lifecycle Notification Settings

Read and update the customer lifecycle communication settings: pre-arrival messages, post-rental survey options, and the overdue-rental extension offer. These settings correspond to the Customer Lifecycle card in Settings โ†’ Notifications in the web UI.

Endpointsโ€‹

MethodEndpointDescriptionScope
GET/v1/settings/lifecycleGet lifecycle notification settingssettings:read
PATCH/v1/settings/lifecycleUpdate lifecycle notification settingssettings:write

GET /v1/settings/lifecycleโ€‹

Example Requestโ€‹

curl "https://app.equipdash.com/api/v1/settings/lifecycle" \
-H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)โ€‹

{
"data": {
"pre_arrival": {
"enabled": true,
"lead_hours": 24,
"directions": "We're at 12 Harbour St, Level 1. Parking under the building โ€” enter from Bay Rd. Call us if you can't find it."
},
"overdue_extension": {
"enabled": true,
"grace_minutes": 15
}
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-04-01T09:00:00Z"
}
}

Response Fieldsโ€‹

pre_arrival objectโ€‹

FieldTypeDescription
enabledbooleanWhether pre-arrival messages fire automatically
lead_hoursintegerHow many hours before pickup/start the message is sent. Range 1โ€“168. Default 24.
directionsstring|nullDirections and parking blurb included in the message. Max 1000 chars.

overdue_extension objectโ€‹

FieldTypeDescription
enabledbooleanWhether overdue notices include a one-tap extension offer
grace_minutesintegerMinutes after scheduled return before the overdue notice fires. Range 0โ€“1440. Default 15.
Dependency

overdue_extension.enabled only adds the extension link when Allow customers to extend online is also enabled in the rental settings. If online extensions are off, the link is omitted from overdue notices regardless of this flag.


PATCH /v1/settings/lifecycleโ€‹

Update any subset of lifecycle notification settings. Only the fields you include are changed.

Authenticationโ€‹

Requires settings:write scope.

Request Bodyโ€‹

All fields are optional. Omit any field you do not want to change.

{
"pre_arrival": {
"enabled": true,
"lead_hours": 48,
"directions": "Find us at the blue shed on the marina. Free parking on Slip Rd."
},
"overdue_extension": {
"enabled": true,
"grace_minutes": 30
}
}

Request Fieldsโ€‹

FieldTypeValidation
pre_arrival.enabledbooleanโ€”
pre_arrival.lead_hoursinteger1โ€“168
pre_arrival.directionsstring|nullMax 1000 chars. Pass null to clear.
overdue_extension.enabledbooleanโ€”
overdue_extension.grace_minutesinteger0โ€“1440

Example Requestโ€‹

curl -X PATCH "https://app.equipdash.com/api/v1/settings/lifecycle" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pre_arrival": {
"enabled": true,
"lead_hours": 48
}
}'

Response (200 OK)โ€‹

Returns the full updated lifecycle settings object in the same shape as GET /v1/settings/lifecycle.


Survey Clean-Return Gateโ€‹

The survey-level Only send after a clean return setting is per-survey, not a global setting. It is read and written via the surveys API:

GET  /v1/surveys/{id}
PATCH /v1/surveys/{id}

Relevant survey fields:

FieldTypeDescription
skip_if_returned_damagedbooleanWhen true, surveys triggered by "After equipment return" are skipped if any item was returned in Poor or Damaged condition. Default true for return-triggered surveys.
delivery_channelstring"email", "sms", or "email_and_sms". Controls how the survey is delivered.

See Surveys API for the full surveys endpoint reference.


Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks settings:read or settings:write
422validation_errorA field failed validation (details in error.details)

  • Get Settings โ€” full business settings including enabled modules
  • Supplier Modules โ€” check whether online extensions (online_extend_enabled) are on
  • Surveys API โ€” per-survey delivery channel and clean-return gate
  • Webhooks Events โ€” booking.damage_charge.paid and other lifecycle events