Delete Quote (Decline)
Quotes are never hard-deleted โ decided quotes stay on record. DELETE declines the quote on the customer's behalf: any held dates come free immediately and the supplier is notified. It behaves identically to Decline Quote.
DELETE /v1/quotes/{id}
Authenticationโ
Requires a valid API key with quotes:write scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Quote ID |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | No | Decline reason (max 1000 chars) |
Request Exampleโ
curl -X DELETE "https://app.equipdash.com/api/v1/quotes/123" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "reason": "Went with different dates" }'
Responseโ
Returns 200 OK with the updated quote (not 204) โ state is declined, decided_at is stamped, and reserves_dates is false (any hold has been released).
{
"data": {
"id": 123,
"quote_number": "Q-123",
"state": "declined",
"reserves_dates": false,
"decided_at": "2026-02-05T14:00:00+00:00",
"decline_reason": "Went with different dates",
"...": "..."
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-05T14:00:00+00:00"
}
}
Error Responsesโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | Missing or invalid API key |
| 403 | insufficient_scope | API key lacks quotes:write scope |
| 404 | not_found | Quote not found (or belongs to another account) |
| 409 | conflict | The quote has already been decided |
| 422 | validation_error | reason exceeds 1000 characters |