Impostazioni

Dati azienda, aliquote IVA, listini, collaboratori.

17 endpoint Versione v1 · revisione 2026-07-20

Gli endpoint sono relativi a https://api.officina.it e richiedono l'header Authorization: Bearer con la chiave API e X-API-Version: 2026-07-20. L'header della revisione è obbligatorio: differenza fra v1 e revisione.

GET /v1/company
Permesso richiesto settings.read

Recupera i dati azienda

L'anagrafica dell'officina e le preferenze che governano i documenti: metodo di pagamento predefinito, colore, IBAN, se i prezzi sono IVA inclusa. fiscal_fields_locked indica che partita IVA e codice fiscale non sono più modificabili perché sono già stati usati su un documento fiscale.
Risposte
200
I dati dell'azienda.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/company \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "company_profile",
  "id": "1f8c4e73-2a95-4b06-9d31-7e5a2c8b6f40",
  "name": "Officina Rossi S.r.l.",
  "entity_type": "societa",
  "company_type": "officina",
  "tax_id": "01234567890",
  "fiscal_code": "RSSMRA80A01F205X",
  "email": "info@officinarossi.example.it",
  "phone": "+390212345678",
  "address": "Via Mecenate 12",
  "city": "Milano",
  "zip_code": "20138",
  "province": "MI",
  "fiscal_fields_locked": true,
  "primary_color": "#2563eb",
  "default_payment_method": "MP05",
  "bank_account_holder": "Officina Rossi S.r.l.",
  "line_items_including_vat": false,
  "worksheet_km_required": true
}
GET /v1/price-lists
Permesso richiesto settings.read

Elenca i listini

I listini configurati, applicabili ai clienti per ottenere prezzi dedicati.
Risposte
200
I listini configurati.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/price-lists \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "list",
  "data": [
    {
      "object": "price_list",
      "id": "9c5e1a83-6b24-4d70-8f39-2a7c4e1b8d56",
      "name": "Listino flotte"
    }
  ],
  "has_more": false,
  "url": "/v1/price-lists"
}
POST /v1/price-lists
Permesso richiesto settings.write

Crea un listino

Crea un listino prezzi.
Risposte
201
Il listino creato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
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 -X POST https://api.officina.it/v1/price-lists \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Nuovo nome"
}'
Risposta
{
  "object": "price_list",
  "id": "9c5e1a83-6b24-4d70-8f39-2a7c4e1b8d56",
  "name": "Listino flotte"
}
PATCH /v1/price-lists/{id}
Permesso richiesto settings.write

Aggiorna un listino

Aggiorna il nome del listino.
Risposte
200
Il listino aggiornato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
404
La risorsa non esiste, è stata eliminata o non appartiene alla tua officina.
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 -X PATCH https://api.officina.it/v1/price-lists/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Nuovo nome"
}'
Risposta
{
  "object": "price_list",
  "id": "9c5e1a83-6b24-4d70-8f39-2a7c4e1b8d56",
  "name": "Listino flotte"
}
DELETE /v1/price-lists/{id}
Permesso richiesto settings.write

Elimina un listino

Elimina il listino. I clienti che lo usavano tornano ai prezzi di listino base.
Risposte
200
Il listino eliminato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
404
La risorsa non esiste, è stata eliminata o non appartiene alla tua officina.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl -X DELETE https://api.officina.it/v1/price-lists/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "price_list",
  "id": "9c5e1a83-6b24-4d70-8f39-2a7c4e1b8d56",
  "name": "Listino flotte"
}
POST /v1/sezionali
Permesso richiesto settings.write

Crea un sezionale

Crea un registro di numerazione. code è il suffisso che compare sul numero del documento.
Risposte
201
Il sezionale creato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
409
L'operazione è in conflitto con lo stato attuale della risorsa.
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 -X POST https://api.officina.it/v1/sezionali \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "A",
  "label": "Sezionale principale"
}'
Risposta
{
  "object": "sezionale",
  "id": "c81f4a26-7d09-4e35-b6a1-2f8c5d3e9047",
  "code": "A",
  "label": "Sezionale principale"
}
PATCH /v1/sezionali/{id}
Permesso richiesto settings.write

Aggiorna un sezionale

Aggiorna codice ed etichetta del sezionale.
Risposte
200
Il sezionale aggiornato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
409
L'operazione è in conflitto con lo stato attuale della risorsa.
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 -X PATCH https://api.officina.it/v1/sezionali/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "A",
  "label": "Sezionale principale"
}'
Risposta
{
  "object": "sezionale",
  "id": "c81f4a26-7d09-4e35-b6a1-2f8c5d3e9047",
  "code": "A",
  "label": "Sezionale principale"
}
DELETE /v1/sezionali/{id}
Permesso richiesto settings.write

Elimina un sezionale

Elimina il sezionale. Non è eliminabile se è già stato usato per numerare un documento.
Risposte
200
Il sezionale eliminato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
409
L'operazione è in conflitto con lo stato attuale della risorsa.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl -X DELETE https://api.officina.it/v1/sezionali/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "sezionale",
  "id": "c81f4a26-7d09-4e35-b6a1-2f8c5d3e9047"
}
GET /v1/team
Permesso richiesto settings.read

Elenca i collaboratori

I collaboratori dell'officina, con ruolo e stato di attivazione.
Risposte
200
I collaboratori dell'officina.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/team \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "list",
  "data": [
    {
      "object": "team_member",
      "id": "4e7b1d29-5a63-40c8-9f15-2b8d6e3a1c74",
      "first_name": "Luca",
      "last_name": "Bianchi",
      "email": "luca.bianchi@example.it",
      "phone": "+393337654321",
      "role": "meccanico",
      "deactivated": false,
      "is_self": false
    }
  ],
  "has_more": false,
  "url": "/v1/team"
}
GET /v1/team/{id}
Permesso richiesto settings.read

Recupera un collaboratore

Restituisce il collaboratore con i gruppi di permessi assegnati.
Risposte
200
Il collaboratore richiesto.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
404
La risorsa non esiste, è stata eliminata o non appartiene alla tua officina.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/team/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "team_member",
  "id": "4e7b1d29-5a63-40c8-9f15-2b8d6e3a1c74",
  "first_name": "Luca",
  "last_name": "Bianchi",
  "email": "luca.bianchi@example.it",
  "phone": "+393337654321",
  "role": "meccanico",
  "deactivated": false,
  "is_self": false,
  "permission_groups": [
    {
      "name": "Officina",
      "granted": true
    }
  ]
}
PUT /v1/vat-rates
Permesso richiesto settings.write

Imposta le aliquote IVA attive

Sostituisce l'intero insieme delle aliquote attive: quelle non elencate vengono disattivate. I codici ammessi sono quelli di GET /v1/vat-rates/catalog.
Risposte
200
Le aliquote ora attive.
400
Corpo della richiesta non leggibile o JSON non valido.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
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 -X PUT https://api.officina.it/v1/vat-rates \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "codes": [
    "22",
    "10",
    "4"
  ]
}'
Risposta
{
  "object": "vat_rates",
  "codes": [
    "22",
    "10"
  ]
}
GET /v1/vat-rates/catalog
Permesso richiesto settings.read

Catalogo delle aliquote IVA

Tutte le aliquote disponibili, con enabled a indicare quelle attive per l'officina.
Risposte
200
Il catalogo delle aliquote.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/vat-rates/catalog \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "list",
  "data": [
    {
      "object": "vat_rate_catalog_entry",
      "code": "22",
      "rate": 22,
      "description": "Aliquota ordinaria",
      "enabled": true
    },
    {
      "object": "vat_rate_catalog_entry",
      "code": "10",
      "rate": 10,
      "description": "Aliquota ridotta",
      "enabled": true
    },
    {
      "object": "vat_rate_catalog_entry",
      "code": "N2.2",
      "rate": 0,
      "description": "Non soggetta",
      "enabled": false
    }
  ],
  "has_more": false,
  "url": "/v1/vat-rates/catalog"
}
GET /v1/vehicle-field-settings
Permesso richiesto settings.read

Recupera i campi veicolo

Quali campi facoltativi della scheda veicolo sono visibili e quali campi personalizzati sono definiti.
Risposte
200
La configurazione dei campi veicolo.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl https://api.officina.it/v1/vehicle-field-settings \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "vehicle_field_settings",
  "field_visibility": {
    "km": true,
    "numero_telaio": true,
    "transmission": false,
    "engine_category": true,
    "engine_power_kw": false,
    "engine_displacement_ccm": false,
    "vehicle_weight_kg": false,
    "registration_date": true,
    "last_inspection_date": true,
    "next_inspection_date": true
  },
  "custom_fields": [
    {
      "id": "8a2d6f41-9c30-4e75-b168-3f7a5c2e9d04",
      "name": "Colore",
      "type": "string"
    }
  ]
}
PUT /v1/vehicle-field-settings
Permesso richiesto settings.write

Imposta i campi veicolo

Sostituisce l'intera configurazione: i campi personalizzati non elencati vengono rimossi.
Risposte
200
La configurazione aggiornata.
400
Corpo della richiesta non leggibile o JSON non valido.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
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 -X PUT https://api.officina.it/v1/vehicle-field-settings \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "field_visibility": {
    "km": true,
    "numero_telaio": true,
    "transmission": false,
    "engine_category": true,
    "engine_power_kw": false,
    "engine_displacement_ccm": false,
    "vehicle_weight_kg": false,
    "registration_date": true,
    "last_inspection_date": true,
    "next_inspection_date": true
  },
  "custom_fields": [
    {
      "name": "Colore",
      "type": "string"
    }
  ]
}'
Risposta
{
  "object": "vehicle_field_settings",
  "field_visibility": {
    "km": true,
    "numero_telaio": true,
    "transmission": false,
    "engine_category": true,
    "engine_power_kw": false,
    "engine_displacement_ccm": false,
    "vehicle_weight_kg": false,
    "registration_date": true,
    "last_inspection_date": true,
    "next_inspection_date": true
  },
  "custom_fields": [
    {
      "id": "8a2d6f41-9c30-4e75-b168-3f7a5c2e9d04",
      "name": "Colore",
      "type": "string"
    }
  ]
}
POST /v1/work-categories
Permesso richiesto settings.write

Crea un tipo di intervento

Crea un tipo di intervento, usato per classificare schede lavoro e preventivi.
Risposte
201
Il tipo di intervento creato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
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 -X POST https://api.officina.it/v1/work-categories \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Nuovo nome"
}'
Risposta
{
  "object": "work_category",
  "id": "3a8e5c21-9d76-4f03-b418-2c6a9e7d5b40",
  "name": "Tagliando"
}
PATCH /v1/work-categories/{id}
Permesso richiesto settings.write

Aggiorna un tipo di intervento

Aggiorna il nome del tipo di intervento.
Risposte
200
Il tipo di intervento aggiornato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
404
La risorsa non esiste, è stata eliminata o non appartiene alla tua officina.
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 -X PATCH https://api.officina.it/v1/work-categories/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Nuovo nome"
}'
Risposta
{
  "object": "work_category",
  "id": "3a8e5c21-9d76-4f03-b418-2c6a9e7d5b40",
  "name": "Tagliando"
}
DELETE /v1/work-categories/{id}
Permesso richiesto settings.write

Elimina un tipo di intervento

Elimina il tipo di intervento. I documenti che lo citano restano intatti.
Risposte
200
Il tipo di intervento eliminato.
401
Chiave API mancante, non valida, revocata o scaduta.
402
Il piano non include l'accesso API, oppure non è attivo un abbonamento.
403
La chiave non ha il permesso richiesto per questa operazione.
404
La risorsa non esiste, è stata eliminata o non appartiene alla tua officina.
500
Errore imprevisto del server. Il dettaglio finisce nei log, non nella risposta.
Richiesta
curl -X DELETE https://api.officina.it/v1/work-categories/{id} \
  -H "Authorization: Bearer ofk_live_LA_TUA_CHIAVE" \
  -H "X-API-Version: 2026-07-20"
Risposta
{
  "object": "work_category",
  "id": "3a8e5c21-9d76-4f03-b418-2c6a9e7d5b40",
  "name": "Tagliando"
}