Modifica entro i limiti della policy, con anteprima del nuovo prezzo
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://example.com/api/public/v1/example/manage/example/modify"
payload := strings.NewReader("{ \"starts_on\": \"2026-04-15\", \"ends_on\": \"2026-04-15\", \"slots\": \"AM\", \"formula\": \"half_day\", \"lines\": [ { \"pack_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"zone_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"spot_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1, \"extras\": [ { \"extra_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1 } ] } ], \"extras\": [ { \"extra_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1 } ], \"promo_code\": \"example\", \"dry_run\": true }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://example.com/api/public/v1/example/manage/example/modify';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"starts_on":"2026-04-15","ends_on":"2026-04-15","slots":"AM","formula":"half_day","lines":[{"pack_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","zone_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","spot_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1,"extras":[{"extra_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}]}],"extras":[{"extra_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}],"promo_code":"example","dry_run":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/public/v1/example/manage/example/modify \ --header 'Content-Type: application/json' \ --data '{ "starts_on": "2026-04-15", "ends_on": "2026-04-15", "slots": "AM", "formula": "half_day", "lines": [ { "pack_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "zone_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "spot_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1, "extras": [ { "extra_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ] } ], "extras": [ { "extra_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ], "promo_code": "example", "dry_run": true }'Spec 10.3, 12.4. dry_run = true restituisce l’anteprima (nuovo totale, differenza da pagare o da rimborsare, conflitti) senza scrivere; l’applicazione passa dal servizio prenotazioni (riallocazione atomica, audit e outbox nella stessa transazione). Fuori dai limiti di modification della policy → 422 policy_violation. If-Match con la versione letta.
Parameters
Sezione intitolata “Parameters”Path Parameters
Sezione intitolata “Path Parameters”Token del link magico (256 bit, base64url).
Header Parameters
Sezione intitolata “Header Parameters”ETag (versione) letto in precedenza: se non coincide la richiesta fallisce con 412 version_conflict. * equivale a “qualsiasi versione”. È accettata anche la forma debole W/"3" prodotta dai proxy che comprimono le risposte (ADR 0008).
Request Bodyrequired
Sezione intitolata “Request Bodyrequired”object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Formula di durata.
Una riga della selezione. zone seat: spot_id; zone zone: zone_id; zone quantity: zone_id e quantity.
object
Default 1 (unità per le zone quantity).
object
Extra della prenotazione (attach_to = booking).
object
Default true (solo anteprima); false applica la modifica.
Responses
Sezione intitolata “Responses”Anteprima o modifica applicata
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Positiva da pagare, negativa da rimborsare (spec 10.3); include la penale di modifica.
Importo in centesimi di euro (IVA inclusa).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
object
Codice stabile (es. lead_time_too_short).
object
object
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Pack, extra o codice promozionale di riferimento.
Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.
object
Importo in centesimi di euro (IVA inclusa).
object
Codice stabile (es. lead_time_too_short).
object
object
Come si paga secondo la policy online: tutto online, acconto online e saldo dopo, alla cassa (nessun pagamento online), su approvazione del gestore.
object
Stato della prenotazione (spec 10.2).
object
Codice prenotazione (presente dalla conferma).
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Formula di durata.
object
Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.
object
Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.
object
Assente finché una riga di una zona zone non è assegnata (assegnazione automatica, spec 7.5).
object
Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.
object
object
Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Ultimo giorno con rimborso pieno, se previsto dalla policy.
Stato del rimborso visibile al cliente nell’area gestione (nessun dettaglio del provider).
object
Pending: riservato, in attesa di invio (o di nuovo tentativo); processing: inviato al provider, in attesa di conferma; succeeded: confermato dal provider (riga refund nel registro pagamenti); failed: tentativi esauriti, serve un intervento (notifica al gestore); cancelled: annullato dal gestore (rimborso fatto altrove).
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Importo in centesimi di euro (IVA inclusa).
object
Proposed: prenotazione held in prelazione; accepted: accettata, in attesa di pagamento (pending_payment); converted: prenotazione confermata (nuovo abbonamento); declined: rifiutata, postazione liberata; expired: prelazione scaduta o campagna chiusa, postazione liberata.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Versione corrente delle condizioni da accettare.
object
Importo in centesimi di euro (IVA inclusa).
Versione per la concorrenza ottimistica; coincide con l’ETag.
Example
{ "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "quote": { "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "items": [ { "kind": "line" } ], "promo": { "status": "applied" }, "payment_plan": "online_full" }, "booking": { "status": "draft", "summary": { "slots": "AM", "formula": "half_day", "lines": [ { "assignment": "assigned" } ] }, "refund": { "status": "pending" }, "cancellation_preview": { "as": "refund", "tier": { "as": "refund" } }, "releases": [ { "slot": "AM" } ], "renewal": { "status": "proposed", "slots": "AM" } }}Richiesta non valida
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Risorsa inesistente
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Conflitto con lo stato corrente
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Versione non aggiornata (version_conflict, con current_version)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Richiesta valida ma non elaborabile (no_price, policy_violation, email_template_invalid)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Troppe richieste
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Headers
Sezione intitolata “Headers”Secondi da attendere
Operazione non ancora disponibile (not_implemented)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}
