Per sviluppatori

API REST YOUCART

Ogni cosa che si fa dal pannello si può fare via API: catalogo, ordini, magazzino, resi. 127 endpoint JSON, inclusi in tutti i piani, senza limiti di chiamate.

Questa pagina è generata dalla stessa tabella di rotte che il server carica all'avvio: se un endpoint è elencato qui, esiste.

Prima di cominciare

L'indirizzo è quello del negozio

Non esiste un endpoint centrale: ogni negozio risponde sul proprio sottodominio, e il negozio viene riconosciuto dall'indirizzo della richiesta, non da un parametro.

https://tuonegozio.youcart.it/api/v1/…

È la ragione per cui una credenziale di un negozio non funziona sull'indirizzo di un altro: viene rifiutata con 401, anche se è valida a casa sua.

Due modi di autenticarsi

Per integrare un altro programma si usa una chiave API. Il token JWT serve alle applicazioni che agiscono per conto di una persona collegata, come la vetrina.

Chiave API — per i programmi

Si emette dal pannello del negozio, sezione Chiavi API. Va nell'intestazione X-Api-Key:

curl -H "X-Api-Key: yc_a1b2c3…" \
  https://tuonegozio.youcart.it/api/v1/youcart/prodotti

Tre cose da sapere sulle chiavi

  • Si vede una volta sola. Alla creazione. Non è recuperabile: nel database c'è solo il suo hash. Se la perdi, ne emetti un'altra.
  • Nasce in sola lettura. La scrittura si concede esplicitamente al momento dell'emissione. Una chiave senza quel permesso riceve 403 sugli endpoint di scrittura.
  • Non tocca le credenziali. Nemmeno con la scrittura: una chiave non può emettere altre chiavi né riconfigurare l'SMTP del negozio. Così revocarla basta davvero a chiudere l'accesso.

Token JWT — per conto di una persona

Si ottiene da POST /api/v1/auth/login e dura 30 minuti. Va in Authorization:

curl -H "Authorization: Bearer <token>" \
  https://tuonegozio.youcart.it/api/v1/auth/me

Il formato delle risposte

Sempre lo stesso, in caso di successo e di errore.

// riuscita
{ "success": true, "data": { … } }

// fallita — "errori" è sempre una lista
{ "success": false,
  "errori": [ { "codice": "VALIDATION", "messaggio": "…" } ] }

Codici che vale la pena distinguere

CodiceSignificaCosa fare
401Credenziale assente, scaduta o di un altro negozioRifai il login o controlla l'indirizzo
403Riconosciuto, ma senza il permessoServe una chiave con scrittura, o un amministratore
402Il piano del negozio non comprende la funzionalitàNon è un errore tecnico: il messaggio dice da quale piano è disponibile
404Non esiste, o non appartiene a questo negozioI due casi non si distinguono, di proposito
409Conflitto: già esistente, o già in quello statoRileggi lo stato attuale prima di riprovare

Il 402 è quello che sorprende di più: un endpoint può esistere, la credenziale essere giusta, e la risposta essere comunque un rifiuto perché quella funzionalità appartiene a un piano superiore. Nella tabella qui sotto gli endpoint interessati portano l'indicazione del piano minimo.

Convenzioni

  • Identificativi: esadecimali a 32 caratteri maiuscoli (A1B2…). Il confronto è sensibile: usali come li ricevi.
  • Paginazione: ?pagina=1&per_pagina=24, massimo 100 per pagina. La risposta riporta pagina, per_pagina e totale.
  • Importi: stringhe decimali, nella valuta del negozio — non è sempre l'euro. L'IVA è scomposta per aliquota.
  • I prezzi non si inviano: prezzo, sconto e costo di spedizione vengono sempre riletti dal catalogo lato server. Un importo nel corpo della richiesta viene ignorato.
  • Corpo: JSON, Content-Type: application/json.
Riferimento

Tutti gli endpoint

pubblico nessuna credenziale · collegato chiave API o token · amministratore chiave con scrittura, o admin

Stato del servizio

MetodoPercorsoAccesso
GET/api/v1/healthpubblico

Accesso e password

MetodoPercorsoAccesso
POST/api/v1/auth/registerpubblico
POST/api/v1/auth/loginpubblico
GET/api/v1/auth/mecollegato
PUT/api/v1/auth/passwordcollegato
POST/api/v1/auth/password/dimenticatapubblico
POST/api/v1/auth/password/reimpostapubblico

Catalogo (pubblico)

MetodoPercorsoAccesso
GET/api/v1/youcart/prodottipubblico
GET/api/v1/youcart/prodotti/ricercapubblico
GET/api/v1/youcart/prodotti/categoriepubblico
GET/api/v1/youcart/prodotti/marchepubblico
GET/api/v1/youcart/prodotti/csvpubblico
GET/api/v1/youcart/prodotti/{slug}pubblico
GET/api/v1/youcart/categoriepubblico
GET/api/v1/youcart/categorie/{slug}pubblico

Carrello

MetodoPercorsoAccesso
GET/api/v1/youcart/carrellopubblico
POST/api/v1/youcart/carrello/itemspubblico
PATCH/api/v1/youcart/carrello/items/{id}pubblico
DELETE/api/v1/youcart/carrello/items/{id}pubblico

Ordini

MetodoPercorsoAccesso
POST/api/v1/youcart/ordinicollegato
GET/api/v1/youcart/ordinicollegato
GET/api/v1/youcart/ordini/{id}collegato
PUT/api/v1/youcart/admin/ordini/{id}/fatturazioneamministratore
PUT/api/v1/youcart/admin/ordini/{id}/evasioneamministratore
POST/api/v1/youcart/ordini/{id}/riordinacollegato
PUT/api/v1/youcart/admin/ordini/{id}/annullaamministratore

Notifiche email

MetodoPercorsoAccesso
GET/api/v1/youcart/notifiche-emailcollegato
POST/api/v1/youcart/notifiche-emailcollegato
PUT/api/v1/youcart/notifiche-email/{id}collegato
DELETE/api/v1/youcart/notifiche-email/{id}collegato

Preventivi

MetodoPercorsoAccesso
POST/api/v1/youcart/preventivicollegatoda Pro
GET/api/v1/youcart/preventivicollegatoda Pro
GET/api/v1/youcart/preventivi/{id}collegatoda Pro
DELETE/api/v1/youcart/preventivi/{id}collegatoda Pro
GET/api/v1/youcart/preventivi/{id}/csvcollegatoda Pro
PUT/api/v1/youcart/preventivi/{id}/esitocollegatoda Pro
PUT/api/v1/youcart/admin/preventivi/{id}/rispostaamministratoreda Pro

Promozioni

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/promozioniamministratoreda Pro
POST/api/v1/youcart/admin/promozioniamministratoreda Pro
PUT/api/v1/youcart/admin/promozioni/{id}amministratoreda Pro
PUT/api/v1/youcart/admin/promozioni/{id}/attivaamministratoreda Pro

Registro operazioni

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/registroamministratore

Spedizione (pubblico)

MetodoPercorsoAccesso
GET/api/v1/youcart/spedizione/zonepubblico
GET/api/v1/youcart/spedizione/preventivopubblico

Spedizione (amministrazione)

MetodoPercorsoAccesso
POST/api/v1/youcart/admin/spedizione/zoneamministratore
PUT/api/v1/youcart/admin/spedizione/zone/{id}amministratore
DELETE/api/v1/youcart/admin/spedizione/zone/{id}amministratore
GET/api/v1/youcart/spedizione/tariffepubblico
POST/api/v1/youcart/admin/spedizione/tariffeamministratore
PUT/api/v1/youcart/admin/spedizione/tariffe/{id}amministratore
DELETE/api/v1/youcart/admin/spedizione/tariffe/{id}amministratore

Negozio e configurazione

MetodoPercorsoAccesso
GET/api/v1/youcart/negozio/impostazionipubblico
PUT/api/v1/youcart/admin/negozio/impostazioniamministratore
GET/api/v1/youcart/admin/negozio/smtpamministratore
PUT/api/v1/youcart/admin/negozio/smtpamministratore
POST/api/v1/youcart/admin/negozio/smtp/provaamministratore
GET/api/v1/youcart/admin/negozio/email/codaamministratore
GET/api/v1/youcart/admin/negozio/profiloamministratore
PUT/api/v1/youcart/admin/negozio/profiloamministratore
GET/api/v1/youcart/admin/negozio/visiteamministratore

Rubrica indirizzi

MetodoPercorsoAccesso
GET/api/v1/youcart/indirizzicollegato
POST/api/v1/youcart/indirizzicollegato
PUT/api/v1/youcart/indirizzi/{id}collegato
DELETE/api/v1/youcart/indirizzi/{id}collegato

Pagamenti

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/pagamentiamministratore
PUT/api/v1/youcart/admin/pagamenti/{id}/incassoamministratore
PUT/api/v1/youcart/admin/pagamenti/{id}/annullaamministratore

Anagrafica B2B

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/contattiamministratoreda Business
GET/api/v1/youcart/admin/contatti/{id}amministratoreda Business
POST/api/v1/youcart/admin/contattiamministratoreda Business
PUT/api/v1/youcart/admin/contatti/{id}amministratoreda Business
PUT/api/v1/youcart/admin/contatti/{id}/utenteamministratoreda Business

Listini B2B

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/listiniamministratoreda Premium
GET/api/v1/youcart/admin/listini/{id}amministratoreda Premium
POST/api/v1/youcart/admin/listiniamministratoreda Premium
PUT/api/v1/youcart/admin/listini/{id}amministratoreda Premium
DELETE/api/v1/youcart/admin/listini/{id}amministratoreda Premium
PUT/api/v1/youcart/admin/listini/{id}/voceamministratoreda Premium
DELETE/api/v1/youcart/admin/listini/{id}/voce/{voce}amministratoreda Premium

Catalogo (amministrazione)

MetodoPercorsoAccesso
POST/api/v1/youcart/admin/prodottiamministratore
PUT/api/v1/youcart/admin/prodotti/{id}amministratore
DELETE/api/v1/youcart/admin/prodotti/{id}amministratore
GET/api/v1/youcart/admin/prodotti/ricerche-logamministratore
GET/api/v1/youcart/admin/prodotti/{id}/immaginiamministratore
POST/api/v1/youcart/admin/prodotti/{id}/immaginiamministratore
DELETE/api/v1/youcart/admin/prodotti/{id}/immagini/{immagine}amministratore
PUT/api/v1/youcart/admin/prodotti/{id}/immagini/{immagine}/principaleamministratore

Categorie (amministrazione)

MetodoPercorsoAccesso
POST/api/v1/youcart/admin/categorieamministratore
PUT/api/v1/youcart/admin/categorie/{id}amministratore
DELETE/api/v1/youcart/admin/categorie/{id}amministratore

Magazzino

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/magazziniamministratoreda Premium
POST/api/v1/youcart/admin/magazziniamministratoreda Premium
GET/api/v1/youcart/admin/giacenzeamministratoreda Premium
GET/api/v1/youcart/admin/magazzino/movimentiamministratoreda Premium
POST/api/v1/youcart/admin/magazzino/movimentiamministratoreda Premium
PUT/api/v1/youcart/admin/magazzino/scortaamministratoreda Premium

Resi (cliente)

MetodoPercorsoAccesso
GET/api/v1/youcart/rmacollegatoda Business
POST/api/v1/youcart/rmacollegatoda Business
GET/api/v1/youcart/rma/{id}collegatoda Business
POST/api/v1/youcart/rma/{id}/annullacollegatoda Business
POST/api/v1/youcart/rma/{id}/spedizionecollegatoda Business

Resi (amministrazione)

MetodoPercorsoAccesso
POST/api/v1/youcart/admin/rma/{id}/accettaamministratoreda Business
POST/api/v1/youcart/admin/rma/{id}/rifiutaamministratoreda Business
POST/api/v1/youcart/admin/rma/{id}/riceviamministratoreda Business
POST/api/v1/youcart/admin/rma/{id}/ispezionaamministratoreda Business
POST/api/v1/youcart/admin/rma/{id}/risolviamministratoreda Business
POST/api/v1/youcart/admin/rma/{id}/chiudiamministratoreda Business

Assistenza (cliente)

MetodoPercorsoAccesso
GET/api/v1/youcart/assistenzacollegatoda Business
POST/api/v1/youcart/assistenzacollegatoda Business
GET/api/v1/youcart/assistenza/{id}collegatoda Business
POST/api/v1/youcart/assistenza/{id}/messaggicollegatoda Business
PUT/api/v1/youcart/assistenza/{id}/statocollegatoda Business

Assistenza (amministrazione)

MetodoPercorsoAccesso
PUT/api/v1/youcart/admin/assistenza/{id}/assegnaamministratoreda Business

Account clienti

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/account-clientiamministratore
PUT/api/v1/youcart/admin/account-clienti/{id}/sospendiamministratore

Chiavi API

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/chiavi-apiamministratore
POST/api/v1/youcart/admin/chiavi-apiamministratore
DELETE/api/v1/youcart/admin/chiavi-api/{id}amministratore

Pagamenti online

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/pagamenti/configurazioneamministratore
PUT/api/v1/youcart/admin/pagamenti/configurazioneamministratore
POST/api/v1/youcart/ordini/{id}/pagacollegato
POST/api/v1/youcart/pagamenti/notificapubblico
GET/api/v1/youcart/pagamenti/notificapubblico

Domini admin

MetodoPercorsoAccesso
GET/api/v1/youcart/admin/dominiamministratore
POST/api/v1/youcart/admin/dominiamministratore
POST/api/v1/youcart/admin/domini/{id}/verificaamministratore
DELETE/api/v1/youcart/admin/domini/{id}amministratore

Serve una mano con l'integrazione?

Scrivici con il caso d'uso: ti diciamo quali endpoint servono e se qualcosa va costruito.