Salta ai contenuti
ArenileArenile
Coste360.itCoste360.it

Dati pubblici dello stabilimento (tema, lingue, configurazione del flusso)

GET
/api/public/v1/{slug}
curl --request GET \
--url https://example.com/api/public/v1/example

Spec 17.2: profilo, tema, lingue e configurazione del flusso online (online: zone e modalità, formule, fasce, condizioni correnti, pagamento). Risposta con ETag (hash del contenuto) e Cache-Control: public, max-age=30; If-None-Match risponde 304.

slug
required
string
/^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/
If-None-Match
string
<= 128 characters

ETag letto in precedenza; se coincide la risposta è 304.

Stabilimento

Media typeapplication/json
object
slug
required
string
name
required
string
timezone
required
string
currency
required
string
default_locale
required
string
enabled_locales
required
Array<string>
booking_enabled
required
boolean
contact_email
string
contact_phone
string
address
object
street
string
city
string
province
string
postal_code
string
country
string
theme
required

Tema della pagina pubblica (specifica 12.5).

object
logo_url
string
primary_color
string
accent_color
string
font_family
string
Allowed values: Inter system serif
radius
string
Allowed values: none sm md lg
show_prices_on_map
boolean
hide_header_in_embed
boolean
map_kit

Kit di illustrazioni della mappa (ADR 0024), per pannello e pagina pubblica: modern (v3, stato sul disegno) o classic (v2.1, stato nell’alone). Assente = modern. Gli id delle illustrazioni sono gli stessi nei due kit, quindi cambiarlo non tocca le mappe salvate.

string
Allowed values: modern classic
custom_texts

Testi personalizzati per lingua, es. {“it”: {“intro”: “…”}}.

object
key
additional properties
object
key
additional properties
string
season

Stagione attiva dello stabilimento (date prenotabili dalla pagina pubblica); assente quando nessuna stagione è attiva.

object
year
required
integer
opens_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
closes_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
online

Configurazione del flusso pubblico (spec 12, 17.2).

object
zones
required

Zone visibili online, in ordine.

Array<object>
object
id
required
string format: uuid
code
required
string
name
required

Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.

object
key
additional properties
string
<= 2000 characters
assignment_mode
required

Modalità di assegnazione della zona (spec 5.2).

string
Allowed values: seat zone quantity
map_id
string format: uuid
sort_order
required
integer
maps
required
Array<object>
object
id
required
string format: uuid
name
required

Testo localizzato lingua → testo (es. {“it”: “Prima fila”}); si ricade sulla lingua predefinita.

object
key
additional properties
string
<= 2000 characters
formulas
required
Array<string>
Allowed values: half_day day multi_day week fortnight month season
slots
required

Fasce prenotabili online.

Array<string>
Allowed values: AM PM FULL
min_date

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
max_date

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
hold_minutes
required

Durata del blocco provvisorio (countdown).

integer
payment
required
object
provider
required

Codice del provider attivo (manual se nessun provider online è configurato).

string
online
required

Vero se il cliente può pagare online.

boolean
embedded
required

Payment Element incorporato abilitato (altrimenti Checkout in redirect).

boolean
publishable_key

Chiave pubblicabile, solo con embedded.

string
test_mode
required
boolean
live_payments_blocked

Vero quando il provider attivo è configurato in modalità test (chiavi di prova) e la modalità prova dello stabilimento è spenta: i pagamenti online dei clienti reali sono bloccati (INV-88), online è falso e il pagamento risponde 409 payment_provider_test_mode.

boolean
show_prices_on_map
required
boolean
show_rate_periods
required
boolean
promo_codes_enabled
required
boolean
require_phone
required

Sempre false: il telefono è facoltativo ovunque (decisione del gestore, ADR 0020). Il campo resta per compatibilità con i client esistenti.

boolean
terms

Versione corrente delle condizioni da accettare nel checkout.

object
version
required
string
texts
required
object
key
additional properties

Testi di una lingua di una versione delle condizioni (spec 12.3, 23).

object
terms
required
string
<= 50000 characters
privacy
string
<= 50000 characters
marketing

Testo del consenso marketing facoltativo.

string
<= 2000 characters
test_mode

Modalità prova attiva per questa richiesta (anteprima): la pagina mostra il banner.

boolean

Example

{
"theme": {
"font_family": "Inter",
"radius": "none",
"map_kit": "modern"
},
"online": {
"zones": [
{
"assignment_mode": "seat"
}
],
"formulas": [
"half_day"
],
"slots": [
"AM"
]
}
}
ETag
string

Versione della risorsa ("<version>"), da reinviare in If-Match.

Non modificato

Risorsa inesistente

Media typeapplication/problem+json

Errore RFC 9457 (application/problem+json).

object
type
required

Slug stabile del tipo di errore. I client devono basarsi su questo valore, mai sul testo di title o detail.

string
Allowed values: bad_request validation_failed unauthorized invalid_credentials totp_required invalid_totp totp_enrolment_required totp_already_enabled forbidden csrf_failed not_found conflict method_not_allowed unsupported_media_type rate_limited idempotency_key_reused idempotency_in_progress internal_error spot_unavailable no_price policy_violation hold_expired version_conflict precondition_required spot_has_future_allocations not_implemented pool_exhausted quota_exceeded invalid_transition cash_session_closed cash_session_already_open booking_outside_period checkout_not_found payment_provider_unavailable webhook_signature_invalid pairing_code_invalid lan_mode_required loopback_required setup_token_invalid setup_completed renewal_expired waitlist_offer_expired waitlist_disabled credit_insufficient season_rollover_conflict test_mode_preview_required import_invalid import_already_applied refund_in_progress zone_full assignment_conflict ticket_number_conflict ticket_voided ticket_already_entered price_changed ticket_owned printing_unavailable printer_address_not_allowed print_route_missing payment_provider_test_mode email_template_invalid
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
retry_after

Secondi da attendere (solo per rate_limited).

integer
errors
Array<object>
object
field
required
string
message
required
string
current_version

Versione corrente della risorsa (solo per version_conflict).

integer format: int64
spot_ids

Postazioni con allocazioni future (solo per spot_has_future_allocations).

Array<string>
violations

Vincoli violati (solo per policy_violation).

Array<object>
object
code
required

Codice stabile (es. lead_time_too_short).

string
params
object
key
additional properties
string
conflicts

Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).

Array<object>

Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.

object
spot_id
string format: uuid
pool_id
string format: uuid
zone_id
string format: uuid
date
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
slot
required

Fascia: mattina o pomeriggio.

string
Allowed values: AM PM
reason
required
string
Allowed values: spot_unavailable pool_exhausted quota_exceeded closed inactive
current_status

Stato della prenotazione (spec 10.2).

string
Allowed values: draft held pending_payment awaiting_approval confirmed checked_in completed cancelled no_show expired rejected
existing_customer_id

Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).

string format: uuid
period

Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).

object
today
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
starts_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
ends_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date

Example

{
"type": "bad_request",
"conflicts": [
{
"slot": "AM",
"reason": "spot_unavailable"
}
],
"current_status": "draft"
}

Troppe richieste

Media typeapplication/problem+json

Errore RFC 9457 (application/problem+json).

object
type
required

Slug stabile del tipo di errore. I client devono basarsi su questo valore, mai sul testo di title o detail.

string
Allowed values: bad_request validation_failed unauthorized invalid_credentials totp_required invalid_totp totp_enrolment_required totp_already_enabled forbidden csrf_failed not_found conflict method_not_allowed unsupported_media_type rate_limited idempotency_key_reused idempotency_in_progress internal_error spot_unavailable no_price policy_violation hold_expired version_conflict precondition_required spot_has_future_allocations not_implemented pool_exhausted quota_exceeded invalid_transition cash_session_closed cash_session_already_open booking_outside_period checkout_not_found payment_provider_unavailable webhook_signature_invalid pairing_code_invalid lan_mode_required loopback_required setup_token_invalid setup_completed renewal_expired waitlist_offer_expired waitlist_disabled credit_insufficient season_rollover_conflict test_mode_preview_required import_invalid import_already_applied refund_in_progress zone_full assignment_conflict ticket_number_conflict ticket_voided ticket_already_entered price_changed ticket_owned printing_unavailable printer_address_not_allowed print_route_missing payment_provider_test_mode email_template_invalid
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
retry_after

Secondi da attendere (solo per rate_limited).

integer
errors
Array<object>
object
field
required
string
message
required
string
current_version

Versione corrente della risorsa (solo per version_conflict).

integer format: int64
spot_ids

Postazioni con allocazioni future (solo per spot_has_future_allocations).

Array<string>
violations

Vincoli violati (solo per policy_violation).

Array<object>
object
code
required

Codice stabile (es. lead_time_too_short).

string
params
object
key
additional properties
string
conflicts

Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).

Array<object>

Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.

object
spot_id
string format: uuid
pool_id
string format: uuid
zone_id
string format: uuid
date
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
slot
required

Fascia: mattina o pomeriggio.

string
Allowed values: AM PM
reason
required
string
Allowed values: spot_unavailable pool_exhausted quota_exceeded closed inactive
current_status

Stato della prenotazione (spec 10.2).

string
Allowed values: draft held pending_payment awaiting_approval confirmed checked_in completed cancelled no_show expired rejected
existing_customer_id

Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).

string format: uuid
period

Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).

object
today
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
starts_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date
ends_on
required

Data di calendario YYYY-MM-DD nel fuso dello stabilimento.

string format: date

Example

{
"type": "bad_request",
"conflicts": [
{
"slot": "AM",
"reason": "spot_unavailable"
}
],
"current_status": "draft"
}
Retry-After
integer

Secondi da attendere