Salta ai contenuti
ArenileArenile
Coste360.itCoste360.it

Prenotazione dal link magico (area gestione del cliente)

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

Spec 12.4. Il token (256 bit, salvato come hash, valido fino alla fine della prenotazione + 30 giorni, revocabile) identifica una sola prenotazione. Token sconosciuto, scaduto o revocato → 404 senza distinguere i casi. Il percorso contiene il token: i log di accesso lo mascherano. Cache-Control: no-store, Referrer-Policy: no-referrer.

slug
required
string
/^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/
token
required
string
/^[A-Za-z0-9_-]{32,128}$/

Token del link magico (256 bit, base64url).

Prenotazione

Media typeapplication/json
object
booking_id
required
string format: uuid
code
required
string
status
required

Stato della prenotazione (spec 10.2).

string
Allowed values: draft held pending_payment awaiting_approval confirmed checked_in completed cancelled no_show expired rejected
is_season_pass
required
boolean
summary
required
object
code

Codice prenotazione (presente dalla conferma).

string
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
slots
required

Fasce prenotate: mattina, pomeriggio o giorno intero.

string
Allowed values: AM PM FULL
formula
required

Formula di durata.

string
Allowed values: half_day day multi_day week fortnight month season
lines
required
Array<object>
object
pack_id
required
string format: uuid
pack_name
required

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

object
key
additional properties
string
<= 2000 characters
zone_id
string format: uuid
zone_name

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

object
key
additional properties
string
<= 2000 characters
spot_label

Assente finché una riga di una zona zone non è assegnata (assegnazione automatica, spec 7.5).

string
quantity
required
integer
assignment
required
string
Allowed values: assigned pending not_applicable
extras
required
Array<object>
object
extra_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
quantity
required
integer
extras
required
Array<object>
object
extra_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
quantity
required
integer
currency
required
string
total
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
paid
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
balance_due
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
deposit_due
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
customer
required
object
first_name
required
string
last_name
required
string
email_masked
string
phone_masked
string
allowed
required
object
pay_balance
required
boolean
modify
required
boolean
cancel
required
boolean
release_days
required
boolean
modify_until

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

string format: date
cancel_until_free

Ultimo giorno con rimborso pieno, se previsto dalla policy.

string format: date
refund

Stato del rimborso visibile al cliente nell’area gestione (nessun dettaglio del provider).

object
status
required

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).

string
Allowed values: pending processing succeeded failed cancelled
amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
requested_at
required
string format: date-time
completed_at
string format: date-time
cancellation_preview
object
paid_amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
refund_percent
required
integer
<= 100
amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
as
required
string
Allowed values: refund credit none
tier
object
until_days_before
required
integer
refund_percent
required
integer
<= 100
as
string
Allowed values: refund credit
releases
Array<object>
object
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
credit_amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
resold
boolean
qr_payload
required
string
qr_svg
string
link_expires_at
required
string format: date-time
renewal
object
status
required

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.

string
Allowed values: proposed accepted declined expired converted
season_year
required
integer
spot_label
required
string
zone_name
string
pack_name
string
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
slots
required

Fasce prenotate: mattina, pomeriggio o giorno intero.

string
Allowed values: AM PM FULL
previous_amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
total_amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
deposit_due
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
paid_amount
required

Importo in centesimi di euro (IVA inclusa).

integer format: int64
credit_available

Importo in centesimi di euro (IVA inclusa).

integer format: int64
deadline_at
required
string format: date-time
terms_version

Versione corrente delle condizioni da accettare.

string
allowed
required
object
accept
required
boolean
decline
required
boolean
pay_deposit
required
boolean
pay_full
required
boolean
use_credit
required
boolean
credit_available

Importo in centesimi di euro (IVA inclusa).

integer format: int64
version
required

Versione per la concorrenza ottimistica; coincide con l’ETag.

integer format: int64
>= 1

Example

{
"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"
}
}
ETag
string

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

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

Operazione non ancora disponibile (not_implemented)

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"
}