GET
/v1/quotes
Permesso richiesto quotes.read
Elenca i preventivi
I preventivi dell'officina, dal più recente. Filtra per stato con
status, per cliente con customer_id, per veicolo con vehicle_id
e per periodo con from / to. La paginazione usa un cursore opaco:
passa next_starting_after invariato in starting_after e fermati
quando has_more è false.
Risposte
- 200
- Una pagina di preventivi.
- 401
- Chiave API mancante, non valida, revocata o scaduta.
- 415
- Il Content-Type deve essere application/json e Accept deve accettare JSON.
- 422
- Un campo della richiesta manca o non è valido: «param» indica quale.
- 500
- Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/quotes \ -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \ -H "X-API-Version: 2026-07-20"
Risposta
{
"object": "list",
"data": [
{
"object": "quote",
"id": "b93f7c25-4a18-4e60-9d37-8c1b5f2a6e04",
"seq_number": 87,
"status": "waiting",
"title": "Preventivo tagliando",
"customer_id": "4c911f08-7713-4e83-bdf6-a0692a1b43fd",
"customer_name": "Mario Rossi",
"vehicle_id": "8821f0ac-5d2b-41e7-9a10-6c3f2b7d4e55",
"vehicle_name": "Fiat Panda",
"vehicle_license": "AB123CD",
"work_category_id": null,
"work_category_name": null,
"km": 61240,
"worksheet_id": null,
"worksheet_seq_number": null,
"total_before_tax": 70.0,
"total_tax": 15.4,
"total_after_tax": 85.4,
"total_discount": 0,
"hide_discounts": false,
"created_at": "2026-07-10T09:14:00Z",
"updated_at": "2026-07-10T09:20:00Z"
}
],
"has_more": true,
"next_starting_after": "eyJvIjoyMH0",
"url": "/v1/quotes",
"date_filter": {
"object": "date_filter",
"preset": "year",
"from": "2026-01-01",
"to": "2026-12-31"
}
}