API key dealer
Bearer ym_live_... oppure header X-API-Key con lo stesso valore. Il prefisso keyPrefix identifica la chiave per supporto e rotazione.
Scope granulari
Permessi separati: vehicles:read, vehicles:write, media:write, submissions:read, stock-status:write.
Pratiche pending
Creazioni e update vanno in revisione YouMotor prima della pubblicazione sul portale.
Media multipart
Massimo 20 immagini e 150 MB complessivi per invio. URL restituiti pronti per il payload.
Flusso consigliato
- 1Provisioning autosalonePOST /partner/saloni con chiave di provisioning dedicata (es. ym_partner_..., una per integratore). Poi salvare l’API key ym_live_ restituita per lo stock.
- 2Verifica API keyGET /partner/me per confermare autenticazione e scope attivi.
- 3Catalogo (select + Quattroruote)GET /partner/vehicle-options e /partner/quattroruote/* con Bearer ym_live_... (scope vehicles:read). Dopo l’accordo, anche il Bearer ym_partner_... è accettato sul catalogo; in produzione conviene usare la chiave salone.
- 4Upload fotoPOST /partner/vehicles/:plate/photos e salvare gli URL restituiti.
- 5Crea annuncioPOST /partner/vehicles con payload completo. Il veicolo entra in stato pending.
- 6Monitora praticheGET /partner/submissions per leggere note e correggere dati richiesti da YouMotor.
- 7Gestione stockPOST /partner/vehicles/:id/sold quando il veicolo è venduto.
Autenticazione
Nessun endpoint di catalogo è anonimo: servono token partner e/o API key dealer.
Token provisioning (integratore)
GET /partner/saloni e POST /partner/saloni — una chiave distinta per ogni multicaricatore
Authorization: Bearer ym_partner_xxxFormato: Bearer ym_partner_...
Dealer API key
Stock, pratiche, upload: scope come da accordo
Authorization: Bearer ym_live_xxx
— oppure —
X-API-Key: ym_live_xxxFormato: Bearer ym_live_...
Catalogo veicoli
GET /partner/vehicle-options e /partner/quattroruote/* — API key dealer con vehicles:read (consigliato). Con accordo, anche Bearer ym_partner_... per lo stesso catalogo.
Authorization: Bearer ym_live_xxxFormato: Bearer ym_live_...
Flusso integrazione (end-to-end)
Ordine operativo consigliato: credenziali, catalogo, caricamento media, pratiche e gestione stock.
Fase A — Credenziali e accesso
- Viene consegnata una chiave di provisioning
ym_partner_..., da usare come Bearer solo sui servizi di creazione ed elenco saloni. È personale del vostro accordo: non condividetela tra integrazioni o ambienti diversi senza coordinamento con YouMotor. POST /partner/saloniconAuthorization: Bearer ym_partner_...crea l'autosalone. La password temporanea per il portale salone arriva solo via emailall'indirizzo inviato nel body; non è nel JSON di risposta.- Con
issueApiKey: truela risposta includedealerApiKeycon la chiave completaym_live_...(mostrata una sola volta) e l'oggettoapiKeycon metadati (id, keyPrefix, scopes). GET /partner/mecon laym_live_...verifica dealer e scope attivi.
Fase B — Catalogo e payload
- Chiamate
GET /partner/vehicle-optionse le route Quattroruote per costruire liste coerenti (marca/modello/allestimento, fuel_type, color, ecc.). - Caricate le foto con
POST /partner/vehicles/{TARGA}/photos(multipart, campoimages). Usate gli URL inuploaded[].urlnel JSON dell'annuncio (coverImage,gallery). POST /partner/vehiclescrea una pratica pending: la risposta contiene l'UUID della submission (id), non l'id del veicolo pubblicato. Dopo l'approvazione YouMotor, il veicolo compare inGET /partner/vehiclescon il suo UUID.- Seguite
GET /partner/submissionse, se serve,PATCH /partner/submissions/:idper correggere il payload mentre è ancora in pending. - Aggiornamenti a veicoli già esistenti:
PATCH /partner/vehicles/:idcon l'UUID veicolo. Vendita/archivio:POST /partner/vehicles/:id/sold,DELETE .../sold,POST .../archive,POST .../unarchive(scopestock-status:write).
Sicurezza delle chiavi
Trattate ym_partner_... e ym_live_... come segreti: conservateli solo su server controllati da voi, usate sempre HTTPS, evitate di esporli in app o browser pubblici e non li incluse nei log applicativi. In caso di compromissione o dubbio, revocate la chiave con YouMotor e richiedetene una nuova.
Per provare le chiamate potete usare la Postman collection scaricabile dal pulsante in alto in questa pagina.
Partner provisioning
Creazione e elenco autosaloni tramite token partner. Richiede accordo commerciale con YouMotor.
https://api.youmotor.com/api/v1/partner/saloniPartner tokenLista autosaloni del partner
Elenco degli autosaloni collegati alla vostra chiave di provisioning: la lista riflette solo i saloni creati con lo stesso Bearer usato in questa richiesta.
curl "https://api.youmotor.com/api/v1/partner/saloni" \ -H "Authorization: Bearer <partner_token>"
https://api.youmotor.com/api/v1/partner/saloniPartner tokenCrea autosalone da partner autorizzato
Crea un nuovo autosalone collegato alla vostra integrazione, usando la chiave di provisioning (Bearer). Con `issueApiKey: true` la risposta può includere una API key `ym_live_...` mostrata **una sola volta**: va copiata e custodita in modo sicuro.
- La chiave completa è nel campo dealerApiKey (non in apiKey). Non è recuperabile in seguito.
- externalAccount.customerReference collega il dealer al CRM del partner.
curl -X POST https://api.youmotor.com/api/v1/partner/saloni \
-H "Authorization: Bearer <partner_token>" \
-H "Content-Type: application/json" \
--data '{
"email": "dealer@autorossi.it",
"displayName": "Auto Rossi",
"legalName": "Auto Rossi Srl",
"phone": "+390212345678",
"vatNumber": "12345678901",
"address": {
"line1": "Via Roma 10",
"city": "Milano",
"province": "MI",
"postalCode": "20100",
"country": "IT"
},
"issueApiKey": true,
"apiKeyLabel": "multicaricatore",
"externalAccount": {
"provider": "partner-name",
"customerReference": "customer-123"
}
}'Partner — Catalogo
Opzioni select e tassonomia Quattroruote. Autenticazione: token partner di provisioning oppure API key dealer con scope vehicles:read.
https://api.youmotor.com/api/v1/partner/vehicle-optionsToken / API keyCatalogo opzioni select veicolo
Restituisce i gruppi di opzioni per compilare gli annunci (alimentazione, cambio, colore, optional, ecc.). Richiede Bearer: token partner di provisioning, oppure API key dealer con scope vehicles:read.
- Consigliato cachare la risposta: i valori cambiano raramente.
- Senza filtro groups restituisce tutti i 15 gruppi elencati sotto.
- Per equipment, safety, comfort e infotainment il campo annuncio è un array di stringhe; almeno una delle quattro liste deve essere valorizzata.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| groups | query | string | Filtro opzionale: chiavi gruppo separate da virgola (es. fuel_type,transmission,equipment). Valori ammessi: fuel_type, transmission, segment, body_type, drivetrain, availability, warranty, service_history, color, owners, equipment, safety, comfort, infotainment, province. |
Gruppi disponibili e valori restituiti
Ogni riga corrisponde a un groups= valido. La risposta include key, label e options[] con oggetti { key, label, value, position, metadata }. Nel payload annuncio usare il campo value (non key).
fuel_typeAlimentazione→fuel_typestringvalue: Benzina · Diesel · Ibrida · Ibrida Plug-in · ElettricatransmissionCambio→transmissionstringvalue: Automatica · ManualesegmentSegmento→segmentstringvalue: SUV · Berlina · City Car · Station Wagon · Coupebody_typeCarrozzeria→body_typestringvalue: SUV · Berlina · City Car · Station Wagon · Coupe · Cabrio · Monovolume · Furgone · PickupdrivetrainTrazione→drivetrainstringvalue: Anteriore · Posteriore · Integrale · AWD · 4x4 inseribile · 4x4 permanenteavailabilityDisponibilità→availabilitystringvalue: Nuova · KM0 · Usata · Usata garantita · Pronta consegna · Disponibile a breve · In arrivo · Su ordinazione · In trattativa · PrenotatawarrantyGaranzia→warrantystringvalue: Nessuna · 6 mesi concessionario · 12 mesi legale conformità · 12 mesi concessionario · 12 mesi estensione premium · 24 mesi concessionario · 24 mesi estensione premium · 36 mesi concessionario · 48 mesi concessionario · 60 mesi concessionario · Garanzia usato certificato · Garanzia ufficiale casa madre · Garanzia ufficiale residua · Garanzia batteria EV residua · Garanzia estendibile fino a 36 mesi · Garanzia estendibile fino a 48 mesi · Garanzia estendibile fino a 60 mesiservice_historyCronologia tagliandi→service_historystringvalue: Tagliandi ufficiali completi · Tagliandi certificati ufficiali · Tagliandi certificati indipendenti · Tagliandi regolari documentati · Tagliandi ufficiali + indipendenti · Storico parziale disponibile · Storico digitale disponibile · Cronologia completa con fatture · Nessun storico disponibile · Fatture manutenzione disponibili · Ultimo tagliando appena eseguito · Distribuzione sostituita · Batteria EV verificatacolorColore esterno→colorstringvalue: Bianco · Bianco Perla · Bianco Ghiaccio · Nero · Nero Metallizzato · Nero Opaco · Grigio · Grigio Chiaro · Grigio Scuro · Grigio Metallizzato · Argento · Blu · Blu Chiaro · Blu Scuro · Blu Notte · Azzurro · Rosso · Rosso Corsa · Rosso Bordeaux · Arancione · Giallo · Verde · Verde Scuro · Marrone · Bronzo · Oro Champagne · Viola Metallizzato · Rosa Cipria · Bicolore Tetto Nero · Bicolore Nero/BiancoownersProprietari precedenti→ownersnumbervalue: 0 · 1 · 2 · 3 · 4 · 5equipmentEquipaggiamento→equipmentstring[]value: Cerchi in lega · Cerchi in lega da 17" · Cerchi in lega da 18" · Cerchi in lega da 19" · Cerchi in lega da 20" · Pacchetto sportivo · Pacchetto Business · Pacchetto inverno · Fari LED · Fari Matrix LED · Fari Full LED · Fari Xenon · Tetto panoramico · Tetto apribile · Gancio traino · Portellone elettrico · Pneumatici invernali · Ruotino di scorta · Sospensioni adattive · Vetri oscuratisafetySicurezza→safetystring[]value: ADAS completo · Cruise control adattivo · Cruise control · Frenata automatica emergenza · Mantenimento corsia · Riconoscimento segnali stradali · Monitoraggio stanchezza conducente · Blind spot monitor · Rear cross traffic alert · Sensori parcheggio · Sensori parcheggio anteriori · Sensori parcheggio posteriori · Telecamera 360 · Telecamera posteriore · Airbag laterali · ISOFIX · Hill Hold Control · ABS · ESP · TPMScomfortComfort→comfortstring[]value: Sedili riscaldati · Sedili ventilati · Sedili elettrici · Regolazione lombare elettrica · Memorie sedili · Volante riscaldato · Volante in pelle · Bracciolo anteriore · Bracciolo posteriore · Clima automatico bi-zona · Clima tri-zona · Climatizzatore automatico · Climatizzatore manuale · Keyless entry · Avviamento keyless · Sensore luci · Sensore pioggia · Vetri elettrici anteriori · Vetri elettrici posterioriinfotainmentInfotainment→infotainmentstring[]value: Navigatore · Navigatore integrato · Apple CarPlay · Apple CarPlay wireless · Android Auto · Android Auto wireless · Ricarica wireless · Impianto audio premium · Bluetooth · Vivavoce · Radio DAB · Schermo touch · Quadro strumenti digitale · Comandi vocali · Comandi al volante · Hotspot Wi-Fi · Sistema SOS emergenza · Head-up displayprovinceProvincia / città→locationstringvalue: Agrigento · Alessandria · Ancona · Aosta · Arezzo · Bari · Bergamo · Bologna · Bolzano · Brescia · Cagliari · Catania · Como · Firenze · Genova · Milano · Modena · Napoli · Padova · Palermo · Parma · Roma · Torino · Trento · Treviso · Varese · Venezia · Verona · Vicenzacurl "https://api.youmotor.com/api/v1/partner/vehicle-options?groups=fuel_type,transmission,equipment" \ -H "Authorization: Bearer <partner_token_o_ym_live>"
https://api.youmotor.com/api/v1/partner/quattroruote/marcheToken / API keyMarche Quattroruote
Catalogo marche Quattroruote. I code sono stringhe numeriche (es. 8 = FIAT); usarle come codiceMarca per modelli/allestimenti.
curl "https://api.youmotor.com/api/v1/partner/quattroruote/marche" \ -H "Authorization: Bearer <partner_token_o_ym_live>"
https://api.youmotor.com/api/v1/partner/quattroruote/modelliToken / API keyModelli Quattroruote per marca
Lista modelli per codice marca. Parametro obbligatorio codiceMarca.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| codiceMarca* | query | string | Codice numerico da /partner/quattroruote/marche (es. 8 per FIAT). |
curl "https://api.youmotor.com/api/v1/partner/quattroruote/modelli?codiceMarca=8" \ -H "Authorization: Bearer <partner_token_o_ym_live>"
https://api.youmotor.com/api/v1/partner/quattroruote/allestimentiToken / API keyAllestimenti Quattroruote per modello
Lista allestimenti per codice modello. Parametro obbligatorio codiceModello.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| codiceModello* | query | string | Codice modello da /partner/quattroruote/modelli (es. 4405). |
curl "https://api.youmotor.com/api/v1/partner/quattroruote/allestimenti?codiceModello=4405" \ -H "Authorization: Bearer <partner_token_o_ym_live>"
Partner — Veicoli
Gestione stock, annunci e foto del salone. Richiede API key con scope appropriati.
https://api.youmotor.com/api/v1/partner/meDealer API keyVerifica API key e autosalone
Restituisce i dati del dealer associato alla API key corrente e le informazioni sulla chiave stessa inclusi scope attivi. Usato per verificare autenticazione e permessi.
curl https://api.youmotor.com/api/v1/partner/me \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/vehiclesDealer API keyLista veicoli del salone
Ritorna lo stock corrente del dealer con paginazione tramite limit e offset. Richiede scope vehicles:read. I campi veicolo sono in snake_case (come restituiti dal database).
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| limit | query | integer | Max risultati. Default 100, max 200. |
| offset | query | integer | Risultati da saltare. Default 0. |
curl "https://api.youmotor.com/api/v1/partner/vehicles?limit=50&offset=0" \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/vehiclesDealer API keyCrea pratica nuovo annuncio
Invia il payload annuncio completo. Crea una pratica in stato pending che YouMotor revisiona prima della pubblicazione. La risposta contiene l'UUID della submission (campo id). In caso di errore di validazione, la risposta include details.fieldErrors.
- Il veicolo non viene pubblicato subito: resta in revisione fino all’approvazione da parte di YouMotor.
- condition è obbligatorio: nuovo, km0 o usato.
- youmotor_fee: minimo 300, multiplo di 50.
- max_negotiation_price: deve essere > 0 e ≤ price.
- Almeno uno tra equipment, safety, comfort, infotainment deve essere valorizzato.
- Se la stessa pratica (stesso payload) è già pending risponde 409 Conflict.
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles \
-H "Authorization: Bearer ym_live_xxx" \
-H "Content-Type: application/json" \
--data '{
"title": "Volkswagen Golf 8 Life 1.5 TSI",
"make": "Volkswagen",
"model": "Golf",
"version": "1.5 TSI Life",
"segment": "Berlina",
"model_year": 2022,
"first_registration": "2022-03-01",
"price": 27500,
"max_negotiation_price": 26000,
"youmotor_fee": 300,
"km": 18000,
"mileage": 1498,
"condition": "usato",
"fuel_type": "Benzina",
"transmission": "Manuale",
"drivetrain": "Anteriore",
"power_kw": 96,
"power_hp": 131,
"co2_emissions": 124,
"fuel_consumption_combined": "5.4 l/100km",
"plate": "EF456GH",
"owners": 1,
"warranty": "12 mesi concessionario",
"service_history": "Tagliandi ufficiali completi",
"availability": "Pronta consegna",
"location": "Milano",
"color": "Grigio Metallizzato",
"interior": "Tessuto nero",
"highlights": [
"Unico proprietario",
"Tagliandi ufficiali",
"Pronta consegna"
],
"description": "Auto in ottimo stato, pronta consegna con storico manutenzione completo.",
"equipment": ["Cerchi in lega 17\"", "Fari full LED"],
"comfort": ["Clima automatico bi-zona", "Sedili riscaldati"],
"safety": ["Frenata autonoma di emergenza", "Mantenimento corsia"],
"infotainment": ["App-Connect (Android Auto/CarPlay)"],
"coverImage": "https://cdn.youmotor.com/img/EF456GH/cover.jpg",
"gallery": [
"https://cdn.youmotor.com/img/EF456GH/01.jpg",
"https://cdn.youmotor.com/img/EF456GH/02.jpg"
]
}'https://api.youmotor.com/api/v1/partner/vehicles/:idDealer API keyDettaglio veicolo
Ritorna il record completo del veicolo (snake_case) identificato dall'UUID. Richiede scope vehicles:read.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo. |
curl "https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890" \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/vehicles/:idDealer API keyCrea pratica aggiornamento annuncio
Invia un payload completo per aggiornare un annuncio esistente. Come per la creazione, genera una pratica pending che YouMotor deve approvare. L'annuncio corrente rimane pubblicato fino all'approvazione.
- Richiede il payload completo, non solo i campi modificati.
- L'annuncio pubblicato non cambia fino all'approvazione dell'update.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo da aggiornare. |
curl -X PATCH https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer ym_live_xxx" \
-H "Content-Type: application/json" \
--data '{
"title": "Volkswagen Golf 8 Life 1.5 TSI — Prezzo ribassato",
"make": "Volkswagen",
"model": "Golf",
"version": "1.5 TSI Life",
"segment": "Berlina",
"model_year": 2022,
"first_registration": "2022-03-01",
"price": 26900,
"max_negotiation_price": 25500,
"youmotor_fee": 300,
"km": 18500,
"mileage": 1498,
"condition": "usato",
"fuel_type": "Benzina",
"transmission": "Manuale",
"drivetrain": "Anteriore",
"plate": "EF456GH",
"owners": 1,
"warranty": "12 mesi concessionario",
"service_history": "Tagliandi ufficiali completi",
"availability": "Pronta consegna",
"location": "Milano",
"color": "Grigio Metallizzato",
"description": "Prezzo aggiornato. Auto in ottimo stato pronta consegna.",
"equipment": ["Cerchi in lega 17\"", "Fari full LED"]
}'https://api.youmotor.com/api/v1/partner/vehicles/importDealer API keyImport bulk annunci
Invia fino a 1000 veicoli in una singola richiesta. Ogni elemento crea una pratica pending indipendente. La risposta riporta l'esito per ogni riga: gli errori di validazione per singola riga non bloccano le altre.
- Massimo 1000 veicoli per chiamata.
- Errori di singola riga non bloccano l'elaborazione delle altre.
- Pratiche duplicate (stesso payload già pending) restituiscono ok: false con messaggio di errore.
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles/import \
-H "Authorization: Bearer ym_live_xxx" \
-H "Content-Type: application/json" \
--data '{
"vehicles": [
{
"title": "Fiat Panda 1.0 Hybrid",
"make": "Fiat",
"model": "Panda",
"version": "1.0 Hybrid",
"segment": "City Car",
"model_year": 2023,
"first_registration": "2023-05-01",
"price": 13900,
"max_negotiation_price": 13000,
"youmotor_fee": 300,
"km": 9500,
"mileage": 999,
"condition": "usato",
"fuel_type": "Ibrida",
"transmission": "Manuale",
"drivetrain": "Anteriore",
"plate": "GH123JK",
"owners": 1,
"warranty": "12 mesi concessionario",
"service_history": "Tagliandi regolari documentati",
"availability": "Pronta consegna",
"location": "Torino",
"color": "Bianco",
"description": "City car ibrida efficiente, pronta consegna.",
"equipment": ["Cerchi in lega 15\""]
}
]
}'https://api.youmotor.com/api/v1/partner/vehicles/:plate/photosDealer API keyUpload foto veicolo
Carica fino a 20 immagini via multipart/form-data (campo images). Gli URL in uploaded[].url vanno nel payload annuncio (coverImage, gallery/images). Richiede scope media:write.
- Massimo 20 immagini per upload, 150 MB complessivi.
- Formati accettati: JPEG, PNG, WebP.
- Gli URL restituiti in uploaded[].url puntano al CDN pubblico (formato WebP).
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| plate* | path | string | Targa del veicolo (5–10 caratteri A-Z0-9). |
| kind | query | string | Passa kind=cover per impostare la prima immagine come cover. |
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles/EF456GH/photos \ -H "Authorization: Bearer ym_live_xxx" \ -F "images=@frontale.jpg" \ -F "images=@interni.jpg" \ -F "images=@laterale.jpg"
https://api.youmotor.com/api/v1/partner/vehicles/:id/soldDealer API keySegna veicolo come venduto
Imposta sold=true sul veicolo con data, prezzo e note opzionali. Richiede scope stock-status:write.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo. |
| price | body | number | Prezzo di vendita effettivo (opzionale). |
| notes | body | string | Note sulla vendita (opzionale). |
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sold \
-H "Authorization: Bearer ym_live_xxx" \
-H "Content-Type: application/json" \
--data '{
"price": 26500,
"notes": "Venduta tramite portale partner"
}'https://api.youmotor.com/api/v1/partner/vehicles/:id/soldDealer API keyAnnulla stato venduto
Ripristina un veicolo precedentemente segnato come venduto (sold=false). Richiede scope stock-status:write.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo. |
curl -X DELETE https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sold \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/vehicles/:id/archiveDealer API keyArchivia veicolo
Imposta status=archived sul veicolo. Richiede scope stock-status:write.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo. |
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890/archive \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/vehicles/:id/unarchiveDealer API keyRipristina veicolo archiviato
Imposta status=active su un veicolo archiviato. Richiede scope stock-status:write.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID del veicolo. |
curl -X POST https://api.youmotor.com/api/v1/partner/vehicles/a1b2c3d4-e5f6-7890-abcd-ef1234567890/unarchive \ -H "Authorization: Bearer ym_live_xxx"
Partner — Pratiche
Monitoraggio pratiche di pubblicazione. Eventuali richieste di correzione compaiono su latest_notify_note.
https://api.youmotor.com/api/v1/partner/submissionsDealer API keyLista pratiche dealer
Ritorna tutte le pratiche (creazioni e update) del salone. Campi in snake_case; latest_notify_note contiene l'ultima richiesta di correzione da YouMotor. Richiede scope submissions:read.
curl https://api.youmotor.com/api/v1/partner/submissions \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/submissions/:idDealer API keyDettaglio pratica
Ritorna il dettaglio completo di una pratica, incluso il payload del veicolo e la cronologia delle note di notifica.
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID della pratica. |
curl "https://api.youmotor.com/api/v1/partner/submissions/sub_xyz789" \ -H "Authorization: Bearer ym_live_xxx"
https://api.youmotor.com/api/v1/partner/submissions/:idDealer API keyAggiorna payload pratica pending
Aggiorna il payload di una pratica in stato pending. Dopo l'aggiornamento la pratica resta pending per nuova revisione.
- Funziona solo su pratiche in stato pending.
- Richiede scope vehicles:write (non submissions:read).
Parametri
| Nome | In | Tipo | Descrizione |
|---|---|---|---|
| id* | path | uuid | UUID della pratica da aggiornare. |
curl -X PATCH https://api.youmotor.com/api/v1/partner/submissions/sub_xyz789 \
-H "Authorization: Bearer ym_live_xxx" \
-H "Content-Type: application/json" \
--data '{
"title": "Volkswagen Golf 8 Life 1.5 TSI — Prezzo corretto",
"make": "Volkswagen",
"model": "Golf",
"version": "1.5 TSI Life",
"segment": "Berlina",
"model_year": 2022,
"first_registration": "2022-03-01",
"price": 25900,
"max_negotiation_price": 24500,
"youmotor_fee": 300,
"km": 18000,
"mileage": 1498,
"condition": "usato",
"fuel_type": "Benzina",
"transmission": "Manuale",
"drivetrain": "Anteriore",
"plate": "EF456GH",
"owners": 1,
"warranty": "12 mesi concessionario",
"service_history": "Tagliandi ufficiali completi",
"availability": "Pronta consegna",
"location": "Milano",
"color": "Grigio Metallizzato",
"description": "Prezzo corretto come richiesto. Auto in ottimo stato.",
"equipment": ["Cerchi in lega 17\""]
}'Schema veicolo
Payload completo richiesto da POST /partner/vehicles, PATCH /partner/vehicles/:id e POST /partner/vehicles/import (camelCase). Le risposte di lista/dettaglio veicolo e pratiche usano invece snake_case come nel database. I campi con asterisco * sono obbligatori.certified non è impostabile tramite questa API; contattare il supporto YouMotor se necessario.
| Campo | Tipo | Obbl. | Descrizione |
|---|---|---|---|
| title* | string | Si | Titolo annuncio (2–200 caratteri). |
| make* | string | Si | Marca; preferire valori da API Quattroruote marche. |
| model* | string | Si | Modello; preferire valori da API Quattroruote modelli. |
| version* | string | Si | Allestimento o versione commerciale (max 200 caratteri). |
| segment* | string | Si | Segmento da vehicle-options group=segment. |
| model_year* | integer | Si | Anno modello (min 1886). |
| first_registration* | date | Si | Prima immatricolazione formato YYYY-MM-DD. |
| price* | number | Si | Prezzo pubblico in euro (≥ 0). |
| max_negotiation_price* | number | Si | Prezzo minimo trattativa (> 0 e ≤ price). |
| youmotor_fee* | number | Si | Gettone YouMotor: minimo 300, multiplo di 50. |
| km* | integer | Si | Chilometraggio odometro (≥ 0). |
| mileage* | integer | Si | Cilindrata in cc (≥ 0). |
| condition* | enum | Si | Condizione: nuovo | km0 | usato (obbligatorio per le API partner). |
| fuel_type* | string | Si | Alimentazione da vehicle-options group=fuel_type. |
| transmission* | string | Si | Cambio da vehicle-options group=transmission. |
| drivetrain* | string | Si | Trazione da vehicle-options group=drivetrain. |
| power_kw | integer? | No | Potenza in kW (0–2000). |
| power_hp | integer? | No | Potenza in CV (0–2000). |
| co2_emissions | integer? | No | Emissioni CO₂ in g/km (0–1500). |
| fuel_consumption_combined | string? | No | Consumo combinato es. "5.4 l/100km" (max 120 caratteri). |
| plate* | string | Si | Targa normalizzata, pattern [A-Z0-9]{5,10}. |
| vin | string? | No | Numero telaio VIN. |
| owners* | integer | Si | Proprietari precedenti (1–5). |
| warranty* | string | Si | Garanzia da vehicle-options o testo libero. |
| service_history* | string | Si | Cronologia tagliandi da vehicle-options o testo libero. |
| availability* | string | Si | Disponibilità da vehicle-options. |
| location* | string | Si | Provincia o sede del veicolo. |
| color* | string | Si | Colore esterno da vehicle-options group=color. |
| interior | string? | No | Colore o materiale interno. |
| highlights | string[] | No | Fino a 6 punti di forza (max 300 caratteri ciascuno). |
| description* | string | Si | Descrizione pubblica (1–5000 caratteri). |
| equipment | string[] | No | Dotazioni generali. Almeno una lista tra equipment, safety, comfort, infotainment deve essere valorizzata. |
| safety | string[] | No | Dotazioni sicurezza. |
| comfort | string[] | No | Dotazioni comfort. |
| infotainment | string[] | No | Dotazioni infotainment. |
| coverImage | string? | No | URL immagine di copertina (dall'upload foto). |
| gallery | string[] | No | URL immagini galleria (max 100, dall'upload foto). |
| images | string[] | No | URL immagini aggiuntive (max 50). |
Codici di errore
Tutti gli errori sono JSON con campo error. Le risposte di validazione possono includere anche details.fieldErrors.
{
"error": "Validation failed",
"details": {
"fieldErrors": {
"youmotor_fee": ["Deve essere un multiplo di 50"],
"max_negotiation_price": ["Deve essere inferiore o uguale a price"]
}
}
}| Codice | Status | Causa |
|---|---|---|
| 400 | Bad Request | Payload non valido. La risposta include details.fieldErrors con i campi problematici. |
| 401 | Unauthorized | Autenticazione mancante o API key non valida. |
| 403 | Forbidden | Scope insufficiente per l'operazione richiesta. |
| 404 | Not Found | Risorsa non trovata. |
| 409 | Conflict | Risorsa duplicata (es. targa già presente nello stock). |
| 422 | Unprocessable | Dati semanticamente non validi (es. max_negotiation_price > price). |
| 429 | Too Many Requests | Rate limit superato. Riprovare dopo il periodo indicato nell'header Retry-After. |
| 500 | Server Error | Errore interno. Contattare il supporto YouMotor se persiste. |
