Il tuo gestionale, collegato.

Annunci, prezzi e stato si aggiornano da soli con le API: un annuncio per chiamata, risposte chiare, un ambiente di prova che non scrive nulla. Comprese nel piano Pro+.

PUT /annunci/AUTO-1042
{
  "prezzo": 18400,
  "chilometri": 45210,
  "aggiornato_il": "2026-10-06T09:30:00Z"
}

Parti in tre passi

  1. 1

    Genera un token di prova

    Dall'area riservata, in «Integrazioni». Controlla ogni chiamata come un token reale, ma non crea e non cambia nessun annuncio.

  2. 2

    Prova le chiamate

    Dal playground della stessa pagina o dal tuo gestionale: le risposte sono le stesse che riceverai dopo.

  3. 3

    Passa al token reale

    Quando tutto torna, genera un token reale con i permessi che servono e sostituiscilo nel gestionale.

Per cominciare

Tutte le chiamate partono da un solo indirizzo e portano il token nell'intestazione Authorization. Mai nell'indirizzo.

Un token di prova comincia con pa_test_, uno reale con pa_live_. Si mostrano una volta sola, durano al massimo 12 mesi e si revocano dall'area riservata. Quello degli esempi è finto.

Usa l'indirizzo esatto, senza «www»: un reindirizzamento può far perdere il token al tuo programma. Per ogni token una raffica fino a 60 chiamate, poi una al secondo (60 al minuto a regime); oltre, la risposta è 429 con Retry-After e la chiamata non viene eseguita.

Prima chiamata
curl -X GET "https://portaleauto.com/api/concessionari/v1/account" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000"

lettura

Leggere i propri annunci e lo stato dell'account

scrittura

Creare bozze e aggiornare gli annunci che non sono online

online

Pubblicare, mettere in pausa, segnare come venduto e modificare gli annunci online

Come si comporta

Sei regole che valgono per ogni chiamata: sono fatte perché un errore del gestionale non diventi un danno sui tuoi annunci.

01

Un annuncio per chiamata

Ogni chiamata riguarda una sola auto, indicata dal riferimento che ha nel tuo gestionale. La risposta dice subito com'è andata.

02

Ripetere non duplica

Il riferimento è unico: la stessa chiamata, ripetuta dopo un errore di rete o un timeout, non crea un secondo annuncio. Nel dubbio, ripeti.

03

Cambia solo ciò che invii

In aggiornamento i campi che non invii restano come sono: la descrizione curata a mano nel sito non viene toccata.

04

Nulla sparisce da solo

Non esiste un «sostituisci tutto». Un'auto che smetti di inviare resta com'è: la pausa e il venduto si chiedono, annuncio per annuncio.

05

Nascono bozze

Un riferimento nuovo crea una bozza. Va online quando lo chiedi, se ha almeno una foto e il piano ha posto.

06

Le protezioni si dichiarano

Un prezzo che salta di oltre il 30% su un annuncio online, un dato vecchio, troppi ritiri in un'ora: l'annuncio resta com'era e la risposta lo dice.

Operazioni

GET/account

Stato dell'account

Dice a chi appartiene il token, che permessi ha, e quanti annunci il piano lascia ancora inserire. È la chiamata con cui provare che il collegamento funziona.

Permesso richiesto: lettura

curl -X GET "https://portaleauto.com/api/concessionari/v1/account" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000"

GET/annunci

Elenco degli annunci

I tuoi annunci non archiviati, cento per pagina (?pagina=2). Quelli creati a mano o da file hanno riferimento vuoto finché non li colleghi inviando lo stesso telaio (o la stessa targa, se il telaio manca). Targa e telaio non escono mai.

Permesso richiesto: lettura

curl -X GET "https://portaleauto.com/api/concessionari/v1/annunci" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000"

GET/annunci/{riferimento}

Un annuncio

L'annuncio con quel riferimento, con lo stato delle foto in coda.

Permesso richiesto: lettura

curl -X GET "https://portaleauto.com/api/concessionari/v1/annunci/AUTO-1042" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000"

PUT/annunci/{riferimento}

Crea o aggiorna un annuncio

Se il riferimento è nuovo nasce una BOZZA (servono tutti i campi obbligatori). Se esiste già, cambiano solo i campi che invii: quelli che non invii restano come sono, e ciò che hai curato a mano nel sito non viene toccato. La stessa chiamata si può ripetere quante volte vuoi: non crea mai un secondo annuncio. Se hai già caricato quell'auto a mano o da file, la prima chiamata con lo stesso telaio la collega al riferimento. I campi che identificano l'auto (marca, modello, targa…) dopo la creazione vengono ignorati e la risposta lo dice; un telaio diverso viene rifiutato. Per modificare un annuncio online il token deve avere il permesso «online».

Permesso richiesto: scrittura

curl -X PUT "https://portaleauto.com/api/concessionari/v1/annunci/AUTO-1042" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
  "marca": "Volkswagen",
  "modello": "Golf",
  "alimentazione": "benzina",
  "potenza_kw": 110,
  "cilindrata_cc": 1498,
  "immatricolazione": "03/2021",
  "condizione": "usata",
  "prezzo": 18900,
  "chilometri": 45000,
  "colore": "grigio",
  "nome_colore": "Grigio Delfino",
  "proprietari": 1,
  "targa": "ESEMPIO1",
  "telaio": "ESEMPIO0000000001",
  "comune": "Milano",
  "provincia": "MI",
  "descrizione": "Tagliandi regolari, unico proprietario.",
  "condizioni_prezzo": "Finanziamento disponibile.",
  "servizi_garanzie": "Garanzia estesa a 24 mesi.",
  "foto": [
    "https://example.com/foto-1.jpg",
    "https://example.com/foto-2.jpg"
  ],
  "aggiornato_il": "2026-10-06T09:30:00Z"
}'

POST/annunci/{riferimento}/stato

Pubblica, metti in pausa, segna come venduto

Cambia lo stato di UN annuncio, solo su richiesta esplicita: non esiste un «sostituisci tutto», e un annuncio che smetti di inviare resta com'è. Per pubblicare servono almeno una foto già scaricata, il concessionario verificato e un posto libero nel piano. «venduto» è definitivo e avvisa chi aveva salvato l'auto. L'archiviazione e il rinnovo alla scadenza si fanno solo dall'area riservata. Ripetere la stessa richiesta non ha effetti.

Permesso richiesto: online

curl -X POST "https://portaleauto.com/api/concessionari/v1/annunci/AUTO-1042/stato" \
  -H "Authorization: Bearer pa_test_000000000000000000000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
  "stato": "online"
}'

Campi dell'annuncio

Gli stessi del modello per il caricamento da file, con lo stesso vocabolario. I numeri si scrivono con sole cifre. Un campo che non è in questo elenco viene rifiutato, non ignorato. Targa e telaio non vengono mai pubblicati e non escono mai dalle API.

Si possono aggiornare

Invia solo quelli che cambiano.

prezzonumero
In euro, senza decimali e senza simboli: 12500 (serve per pubblicare: senza, l'auto entra come bozza)18900
chilometrinumero
Senza punti: 85000 (facoltativi: se li lasci vuoti l'annuncio dice «non indicati»)45000
coloretesto
bianco, nero, grigio, argento, blu, rosso, verde, giallo, arancione, marrone, beige, altro (facoltativo)grigio
nome_coloretesto
Il nome commerciale del colore (facoltativo)Grigio Delfino
proprietarinumero
Numero di proprietari precedenti (facoltativo)1
comunetestoobbligatorio
Dove si trova l'autoMilano
provinciatestoobbligatorio
Sigla: MI, RM, NA…MI
descrizionetesto
Testo dell'annuncio (facoltativo), senza targa né telaio. Puoi usare **grassetto**, *corsivo* e righe che iniziano con «- » per gli elenchiTagliandi regolari, unico proprietario.
condizioni_prezzotesto
Finanziamento e altre condizioni (facoltativo). Il prezzo resta quello che paga chiunque: qui scrivi solo ciò che si aggiungeFinanziamento disponibile.
servizi_garanzietesto
Servizi e garanzie in più (facoltativo). La garanzia legale è già dovuta per legge: qui solo ciò che offri oltreGaranzia estesa a 24 mesi.
fotoelenco
Indirizzi https delle foto, nell'ordine in cui vuoi mostrarle (al massimo 30). Le scarichiamo noi nei minuti successivi; le foto non vengono mai tolte da qui["https://example.com/foto-1.jpg","https://example.com/foto-2.jpg"]
aggiornato_iltesto
Istante dell'ultima modifica nel tuo gestionale (ISO 8601). Se lo invii, un dato più vecchio di quello già ricevuto non sovrascrive quello nuovo2026-10-06T09:30:00Z

Solo alla creazione

Identificano l'auto: dopo, se li invii, vengono ignorati e la risposta lo dice.

marcatestoobbligatorio
Come nel catalogo: Volkswagen, BMW, Fiat…Volkswagen
modellotestoobbligatorio
Golf, Serie 3, Panda…Golf
alimentazionetesto
Facoltativa, ma con i kW ci fa trovare la versione: benzina, diesel, mild hybrid benzina, mild hybrid diesel, full hybrid, plug-in, elettrica, gpl, metano, idrogenobenzina
potenza_kwnumero
Facoltativa. Potenza in kW come sul libretto (P.2), non in cavalli110
cilindrata_ccnumero
Cilindrata in cc (P.1); vuota per le elettriche1498
immatricolazionetesto
Prima immatricolazione: MM/AAAA oppure GG/MM/AAAA (facoltativa)03/2021
condizionetesto
nuova, km0, usata (serve per pubblicare: senza, l'auto entra come bozza)usata
targatesto
Facoltativa. Se la indichi riconosciamo l'auto ed evitiamo annunci doppi. Non viene mai pubblicataESEMPIO1
telaiotesto
Numero di telaio (VIN), 17 caratteri (facoltativo). Se lo indichi riconosciamo l'auto anche se cambia targa. Non viene mai pubblicatoESEMPIO0000000001
versione_idtesto
Identificativo della versione nel nostro catalogo. Serve solo quando marca, modello, alimentazione e kW corrispondono a più versioni: la risposta te le elenca0199c1d2-0000-7000-8000-000000000000

Esiti e rifiuti

Una risposta 200 o 201 significa che la richiesta è stata eseguita. Ogni altra risposta ha la forma qui accanto: code è stabile e si usa nel programma, message è per le persone.

Un annuncio rifiutato non è sul portale: il gestionale deve leggere gli esiti. Li trovi anche nell'area riservata, in «Integrazioni», con il motivo.

Un rifiuto
{
  "error": {
    "code": "dati-non-validi",
    "message": "Dati da correggere: prezzo (manca)",
    "fields": {
      "prezzo": "manca"
    }
  }
}

Chi chiama

  • 401token-mancanteManca l'intestazione Authorization: Bearer, o il token non ha la forma giusta
  • 401token-non-validoIl token non esiste, è stato revocato o è scaduto
  • 403piano-senza-apiIl piano del concessionario non comprende l'API, o non è attivo
  • 403mandato-scadutoLa dichiarazione resa generando il token non vale più (testo aggiornato, o chi l'ha resa non fa più parte dell'account): va generato un token nuovo
  • 403ambito-mancanteIl token non ha il permesso per questa operazione

L'annuncio

  • 404non-trovatoNessun annuncio del concessionario ha quel riferimento
  • 409annuncio-chiusoL'annuncio è venduto o archiviato: non si modifica più
  • 409annuncio-riservatoL'auto è riservata in una trattativa del Mercato
  • 409telaio-diversoIl riferimento è già legato a un'auto con un altro telaio, oppure l'auto (stesso telaio, o stessa targa se il telaio manca) è già legata a un altro riferimento
  • 409targa-diversaIl riferimento è già legato a un'auto con un'altra targa, oppure la targa è già in un altro annuncio attivo
  • 409dato-vecchioaggiornato_il è precedente all'ultimo dato ricevuto: nulla è stato cambiato
  • 409salto-di-prezzoIl prezzo di un annuncio online cambierebbe di oltre il 30%: nulla è stato cambiato, si conferma dall'area riservata
  • 409limite-pianoIl piano non ha più posto per altri annunci
  • 409non-ammessoL'operazione non è possibile per questo annuncio adesso: il messaggio dice perché

I dati inviati

  • 413troppo-grandeIl corpo supera i 256 KB
  • 422dati-non-validiUno o più campi non vanno: fields dice quali e perché
  • 422versione-da-scegliereIl catalogo ha zero o più versioni compatibili: candidati le elenca, rimanda con versione_id

Limiti ed errori nostri

  • 429troppe-chiamateTroppe chiamate ravvicinate: dopo una raffica di 60 se ne può fare una al secondo. La chiamata non è stata eseguita: riprova dopo i secondi indicati in Retry-After
  • 429tetto-ritiriTroppi annunci tolti dall'online in un'ora con questo token: gli altri restano online, si prosegue dall'area riservata o più tardi
  • 500errore-nostroQualcosa non ha funzionato da noi: la chiamata si può ripetere

Foto, scadenza, responsabilità

Foto

Si indicano con indirizzi https: le copiamo noi nei minuti successivi, nell'ordine indicato. foto_in_coda dice quante mancano. Lo stesso indirizzo inviato di nuovo non viene riscaricato; le foto non si tolgono via API.

Scadenza

Un annuncio resta online 30 giorni per volta. Il rinnovo e l'archiviazione si fanno dall'area riservata: chiedono la conferma di una persona.

Responsabilità

Chi genera il token rende una dichiarazione che vale per ogni operazione compiuta con quel token. Ogni pubblicazione e ogni modifica di un annuncio online viene registrata con i dati di quel momento.

Dati di terzi

I dati inviati non devono contenere dati di clienti o di precedenti proprietari.

Comincia con un token di prova.

Lo generi in un minuto dall'area riservata e provi ogni chiamata senza toccare i tuoi annunci.

Genera un token