Sostituisce convenzione
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/agreements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
payload := strings.NewReader("{ \"code\": \"example\", \"name\": \"example\", \"partner_name\": \"example\", \"notes\": \"example\", \"action\": { \"type\": \"set\", \"amount\": 1, \"factor\": \"example\", \"percent\": \"example\", \"per\": \"booking\", \"every\": 1, \"free\": 1 }, \"conditions\": { \"rate_periods\": [ \"example\" ], \"date_ranges\": [ { \"from\": \"2026-04-15\", \"to\": \"2026-04-15\" } ], \"weekdays\": [ 1 ], \"holidays\": true, \"slots\": [ \"AM\" ], \"formulas\": [ \"half_day\" ], \"price_categories\": [ \"example\" ], \"zone_ids\": [ \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\" ], \"spot_attributes\": [ \"example\" ], \"channels\": [ \"desk\" ], \"min_days\": 1, \"max_days\": 1, \"lead_time_days\": { \"min\": 1, \"max\": 1 }, \"occupancy_percent\": { \"min\": 1, \"max\": 1 }, \"customer_tags\": [ \"example\" ], \"agreement_ids\": [ \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\" ] }, \"valid_from\": \"2026-04-15\", \"valid_to\": \"2026-04-15\", \"stackable\": true, \"active\": true }")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("cookie", "arenile_session=<arenile_session>") 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/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/agreements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PUT', headers: { cookie: 'arenile_session=<arenile_session>', 'Content-Type': 'application/json' }, body: '{"code":"example","name":"example","partner_name":"example","notes":"example","action":{"type":"set","amount":1,"factor":"example","percent":"example","per":"booking","every":1,"free":1},"conditions":{"rate_periods":["example"],"date_ranges":[{"from":"2026-04-15","to":"2026-04-15"}],"weekdays":[1],"holidays":true,"slots":["AM"],"formulas":["half_day"],"price_categories":["example"],"zone_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"spot_attributes":["example"],"channels":["desk"],"min_days":1,"max_days":1,"lead_time_days":{"min":1,"max":1},"occupancy_percent":{"min":1,"max":1},"customer_tags":["example"],"agreement_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"valid_from":"2026-04-15","valid_to":"2026-04-15","stackable":true,"active":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/agreements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Content-Type: application/json' \ --cookie arenile_session=<arenile_session> \ --data '{ "code": "example", "name": "example", "partner_name": "example", "notes": "example", "action": { "type": "set", "amount": 1, "factor": "example", "percent": "example", "per": "booking", "every": 1, "free": 1 }, "conditions": { "rate_periods": [ "example" ], "date_ranges": [ { "from": "2026-04-15", "to": "2026-04-15" } ], "weekdays": [ 1 ], "holidays": true, "slots": [ "AM" ], "formulas": [ "half_day" ], "price_categories": [ "example" ], "zone_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "spot_attributes": [ "example" ], "channels": [ "desk" ], "min_days": 1, "max_days": 1, "lead_time_days": { "min": 1, "max": 1 }, "occupancy_percent": { "min": 1, "max": 1 }, "customer_tags": [ "example" ], "agreement_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "valid_from": "2026-04-15", "valid_to": "2026-04-15", "stackable": true, "active": true }'Sostituzione completa (i campi facoltativi assenti vengono azzerati). If-Match facoltativo ma consigliato.
Authorizations
Sezione intitolata “Authorizations”Parameters
Sezione intitolata “Parameters”Path Parameters
Sezione intitolata “Path Parameters”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).
Obbligatorio per le richieste autenticate via cookie che modificano
dati: deve coincidere con il valore del cookie arenile_csrf.
Request Bodyrequired
Sezione intitolata “Request Bodyrequired”object
Assente = solo selezione dal pannello.
Azione di prezzo (spec 8.3).
object
Importo in centesimi di euro (IVA inclusa).
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Condizioni di una regola (spec 8.2); tutte opzionali, vale l’AND.
object
Intervallo inclusivo.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Giorni ISO (1 = lunedì … 7 = domenica).
Intervallo intero inclusivo; un estremo assente è aperto.
object
Intervallo intero inclusivo; un estremo assente è aperto.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Responses
Sezione intitolata “Responses”Convenzione aggiornato/a
Convenzione: come un codice promozionale, ma assegnata a un cliente o a un partner (hotel).
object
Assente = solo selezione dal pannello.
Azione di prezzo (spec 8.3).
object
Importo in centesimi di euro (IVA inclusa).
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Condizioni di una regola (spec 8.2); tutte opzionali, vale l’AND.
object
Intervallo inclusivo.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Giorni ISO (1 = lunedì … 7 = domenica).
Intervallo intero inclusivo; un estremo assente è aperto.
object
Intervallo intero inclusivo; un estremo assente è aperto.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Versione per la concorrenza ottimistica; coincide con l’ETag.
Example
{ "action": { "type": "set", "per": "booking" }, "conditions": { "slots": [ "AM" ], "formulas": [ "half_day" ], "channels": [ "desk" ] }}Headers
Sezione intitolata “Headers”Versione della risorsa ("<version>"), da reinviare in If-Match.
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"}Autenticazione assente o 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"}Permesso negato
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"}
