Versionamento semantico. Le modifiche incompatibili (campi rinominati, endpoint rimossi, schema di autenticazione modificato) arrivano solo in una nuova major version sotto un nuovo prefisso URL /v2/. All'interno di /v1/ avvengono solo modifiche additive (nuovi campi opzionali, nuovi endpoint).
v1.1.0 (2026-09-23)
- POST /v1/orders: config_options accetta solo opzioni e valori visibili nello shop e quantità entro i relativi limiti. Le opzioni visibili non indicate ricevono il primo valore elencato, esattamente come nello shop. GET /v1/products/{id} elenca solo le opzioni ordinabili e restituisce quantity.min e quantity.max.
- Nuovo stato d'ordine awaiting_setup con il campo awaiting_setup per i prodotti che il team KernelHost configura manualmente. I servizi forniti automaticamente vengono attivati esattamente una volta.
- Il body delle richieste è limitato a 64 KB (HTTP 413). Per ogni account vale un limite di 120 richieste al minuto su tutte le chiavi, e un account può avere fino a 20 chiavi attive. Un'autenticazione non riuscita non blocca più alcuna chiave e l'Idempotency-Key è legata a metodo e percorso.
- Le richieste con più di un parametro nella query string (ad esempio GET /v1/services?limit=10&offset=0) venivano rifiutate con HTTP 401. Ora la firma copre la query string esattamente come documentato.
v1.0.0 (2026-05-14)
- Rilascio iniziale. Tutti i 15 endpoint, autenticazione HMAC, storage segreti AES-GCM, limiti di velocità, idempotenza, audit log.
- GET
/v1/me,/v1/products,/v1/products/{id} - POST
/v1/orders, GET/v1/orders/{id} - GET
/v1/services,/v1/services/{id},/v1/services/{id}/credentials - POST
/v1/services/{id}/actions - GET
/v1/billing/balance,/v1/billing/invoices,/v1/billing/invoices/{id}/pdf - GET/PUT
/v1/webhooks - HMAC-SHA256 signing, AES-256-GCM secret storage, replay protection, idempotency.

