# Placeful — llms-full.txt > Complete public corpus. Index version: https://placeful-app.com/llms.txt ## Home # Placeful > Piattaforma di prenotazioni, comande e gestione del locale Placeful è la piattaforma di prenotazioni, comande e gestione del locale per le attività: pubblica eventi prenotabili, incorpora il calendario nel tuo sito, gestisci menu con ordini al tavolo e controlla prenotazioni, personale e pagamenti da un’unica dashboard. ## Caratteristiche - **Widget di prenotazione integrabile** — Aggiungi il calendario delle prenotazioni a qualsiasi sito web con un semplice snippet — i clienti prenotano senza lasciare il tuo sito. - **Eventi e disponibilità** — Crea tipi di evento, aree, mappe dei posti e fasce orarie. Tieni sotto controllo capacità, prenotazioni e liste d’attesa dalla dashboard. - **Pagamenti online** — Incassa in sicurezza con Stripe per prenotazioni e comande, con politiche di rimborso per attività. - **Menu e conti aperti** — Crea menu con tracciamento delle giacenze, apri conti al tavolo dal registratore e incassa per comanda — contanti, carta o Stripe — poi stampa gli scontrini e chiudi la giornata con il rapporto Z del cassetto. - **Ordini QR degli ospiti** — Gli ospiti inquadrano il QR del tavolo, sfogliano il menu e ordinano o pagano da soli — con approvazione dello staff o in automatico. - **Monitor cucina** — Un monitor cucina live instrada le pietanze alle postazioni con invio portate e ritmi di preparazione — inviate, in preparazione, pronte — in tempo reale. - **App membri** — I membri hanno un’app installabile: prenotazioni, mappa posti, ordini autonomi e i propri ordini — con notifiche push. - **Sincronizzazione con Google Calendar** — Collega Google Calendar per replicare le prenotazioni confermate sul tuo calendario e individuare subito i conflitti. - **Notifiche automatiche** — Email di conferma, promemoria e cancellazione — più notifiche push sul dispositivo — tengono clienti e staff sincronizzati. - **Gestione personale** — Turni, orari, attività, presenze, riepiloghi paghe e stanze voce stile walkie-talkie — più un portale self-service per lo staff. - **Assistente AI e MCP** — Un assistente AI integrato risponde alle domande ed esegue azioni dopo conferma — gli agenti esterni si collegano via MCP. - **Ruoli e permessi** — Ogni azienda ha il proprio spazio di lavoro con ruoli, permessi e fatturazione a consumo. ## Come funziona 1. **Crea la tua attività** — Registrati, configura il tuo spazio di lavoro e invita il team con ruoli e permessi. 2. **Pubblica eventi e disponibilità** — Definisci tipi di evento, aree e fasce orarie — capacità e prenotazioni si aggiornano in tempo reale. 3. **Condividi o incorpora** — Condividi il link di prenotazione o incorpora il calendario nel tuo sito. I clienti prenotano e pagano online. ## Domande frequenti ### Che cos’è Placeful? Placeful è una piattaforma di prenotazioni, comande e gestione del locale. Le attività pubblicano eventi prenotabili, incorporano il calendario nel proprio sito, gestiscono menu con ordini al tavolo e controllano prenotazioni, personale e pagamenti da un’unica dashboard. ### Come prenotano i clienti? I clienti scelgono data e fascia oraria sul calendario incorporato o sulla tua pagina pubblica di prenotazione, confermano con i propri dati e pagano online quando è previsto un prezzo. Le email di conferma e promemoria vengono inviate automaticamente. I membri possono anche usare l’app installabile per prenotazioni e comande. ### Gli ospiti possono ordinare al tavolo? Sì. Gli ospiti inquadrano il QR del tavolo, sfogliano il menu e ordinano — con approvazione dello staff o in automatico. Le comande arrivano al monitor cucina in tempo reale e si possono pagare per conto. ### Posso incorporare il calendario delle prenotazioni nel mio sito? Sì. Ogni attività dispone di un widget incorporabile: copia un breve snippet in qualsiasi sito web e il calendario delle prenotazioni appare nella pagina — i clienti prenotano senza lasciare il tuo sito. ### Come funzionano i pagamenti? I pagamenti sono gestiti da Stripe. Ogni attività collega il proprio account Stripe e riceve i pagamenti direttamente — per prenotazioni e comande — con politiche di rimborso personalizzate. ### Si sincronizza con Google Calendar? Sì. Collega Google Calendar per vedere le prenotazioni confermate sul tuo calendario e individuare i conflitti a colpo d’occhio. ### Esiste un piano gratuito? Puoi creare un account gratuito, pubblicare il primo evento e incorporare il calendario nel tuo sito in pochi minuti. --- > Source: https://placeful-app.com/ ## Pricing # Prezzi — Placeful Prezzi di Placeful: piano gratuito e abbonamenti mensili o annuali con prenotazioni incluse, zero commissioni sulle tue prenotazioni, e piani superiori con comande, personale, magazzino e API. | Piano | Mensile | Annuale | Prenotazioni | Commissioni | |---|---|---|---|---| | Gratuito | €0 | €0 | 50 | Nessuna tariffa per prenotazione | | Starter | €29,00 | €290,00 | 150 | 150 prenotazioni incluse, poi €0,20 per prenotazione | | Pro | €59,00 | €590,00 | 500 | 500 prenotazioni incluse, poi €0,15 per prenotazione | | Business | €119,00 | €1.190,00 | ∞ | Nessuna tariffa per prenotazione | --- > Source: https://placeful-app.com/pricing ## Docs — getting-started/overview # Panoramica # Panoramica Benvenuto in **Placeful** — piattaforma multi-tenant per gestire eventi, posti, fasce orarie e prenotazioni con pagamenti Stripe, widget di prenotazione embeddabile e accesso basato sui ruoli per i team aziendali. ## Cosa puoi fare - **Le aziende** sono il tenant. Ogni azienda possiede eventi, tipi evento, aree, posti, orari e prenotazioni. Gli utenti appartengono a una o più aziende con un ruolo: `owner`, `admin`, `manager`, `member`. - **Gli eventi** hanno una data (eventualmente multi-giorno), una finestra di prenotazione opzionale e una capacità. Le prenotazioni si fanno sugli eventi — a meno che l'azienda giri in modello di prenotazione **areas**, dove i clienti prenotano un'area direttamente per una finestra oraria (un'azienda a eventi può anche consentire entrambi — vedi *Prenotazione aree*). - **Mappa del locale e tavoli** — lo staff disegna le aree e posiziona i tavoli fisici su una pianta visuale (`/venue/map`); ogni prenotazione può essere fissata ai tavoli — anche su più tavoli — dalla [mappa posti](/docs/venue/seating) (`/venue/seating`), dall'editor prenotazione o dal planner. - **Chiusure** — regole (intervalli di date, ricorrenze settimanali, fasce orarie) che bloccano locale, area o tavolo (`/availability/calendar`). - **Planner** — griglia mensile su `/admin/planner` che dipinge chiusure, prenotazioni, eventi e spostamenti tavoli per giorno. - **Le prenotazioni** riservano capacità (posti o slot orari) e attraversano una macchina a stati: `Pending` → `Free` / `Paid` / `Added` (gli stati confermati) → `Cancelled`, `Failed`, `Expired`, oppure la catena rimborsi `RefundPending` → `Refunding` → `Refunded` / `RefundFailed`. Un codice promo inviato parcheggia la prenotazione in `PromoPending` finché lo staff la approva o rifiuta. - **Il widget** è un calendario di prenotazione embeddabile (iframe + snippet script) generato per azienda per siti esterni. - **Stripe** gestisce checkout, account connessi per azienda (payout più fee applicativa della piattaforma), rimborsi e fatturazione degli abbonamenti ai pacchetti. - **Waitlist** — sugli eventi con `waitlist_enabled`, i clienti a sold-out possono mettersi in coda e vengono promossi FIFO quando si libera un posto. - **Comande** — menu con categorie, modificatori, portate e giacenze opzionali; conti live sulla comanda staff, un kitchen board con invio portate e ritmi di preparazione, auto-ordine QR per gli ospiti, scontrini stampabili e un cassetto cassa giornaliero con chiusura Z-report (`/orders`). - **Personale** — dipendenti con organico, contratti, turni, attività, timbrature, ferie e riepiloghi buste paga; un portale self-service e stanze radio voce stile walkie-talkie per la sala. - **App membri** — una PWA installabile su `/m`: prenotazioni di oggi, mappa posti, auto-ordine, kitchen board e notifiche push. - **Google Calendar** — lo staff può replicare le prenotazioni confermate sul proprio calendario e vedere i conflitti con i blocchi occupati. - **Assistente AI** — un assistente in-app (pulsante sparkle, oppure **Ctrl+K** → *Chiedi all'assistente* nella command palette) risponde a domande sui dati della tua azienda e su questa documentazione, propone modifiche da confermare e ti porta ai record — vedi [Assistente AI](/docs/getting-started/assistant). ## Ruoli in sintesi | Ruolo | Vede | Può fare | |-------|------|----------| | Owner | Tutto nella sua azienda | Controllo completo: fatturazione, membri, account Stripe, eliminazione azienda | | Admin | Risorse operative | Gestisce eventi, prenotazioni (incl. rimborsi), membri — non fatturazione né creazione/eliminazione azienda | | Manager | Operatività quotidiana | Crea/modifica eventi, tipi evento, posti, orari, prenotazioni — no aree, no rimborsi, no gestione membri | | Member | Proprio contesto | Vede, crea e modifica le proprie prenotazioni | | Employee | Superfici di sala + portale | Comanda e kitchen board, segni di servizio sulle prenotazioni (seated/completed/no-show), radio voce, propri turni/timbrature/ferie — no gestione prenotazioni o soldi | Gli sviluppatori (staff piattaforma con flag `developer`) bypassano tutti i controlli di ruolo. ## Prossimi passi - [Fai la prima prenotazione](/docs/getting-started/first-booking) - Le guide per lo staff (*Crea un evento*, *Prezzi*, *Widget*, …) compaiono automaticamente nell'hub quando il tuo ruolo lo consente. --- > Source: https://placeful-app.com/docs/getting-started/overview ## Docs — getting-started/first-booking # La tua prima prenotazione # La prima prenotazione Come prenota un cliente un posto su un evento: dal widget alla conferma. ## 1. Apri il widget Il cliente raggiunge il widget in due modi: - **Embedded** nel sito dell'azienda tramite lo snippet generato, oppure - **Direttamente** su `/widget/calendar` (l'URL caricato dall'iframe dello snippet). Il widget elenca gli eventi pubblicati imminenti dell'azienda dentro la loro finestra di prenotazione. (Nell'app staff, il link **Prenotazioni** in nav apre il gestore prenotazioni — non il widget.) ## 2. Scegli un evento Ogni evento mostra data e disponibilità. Il conteggio esatto dei posti rimasti appare solo quando la disponibilità scende a `show_bookable_threshold` o sotto. Gli eventi sold-out offrono la **waitlist** se l'evento ha `waitlist_enabled`. ## 3. Scegli posti / orario Dipende dal `booking_mode` dell'evento: - **Fasce fisse** — scegli un posto in un'area, poi uno slot orario (capacità `seat_time`). - **Flexible window** — scegli numero di persone e finestra oraria. Se l'evento ha posti, il cliente sceglie anche un posto (nessuno slot orario fisso); senza posti la finestra si prenota sull'evento stesso. Se il prenotabile espone più righe di prezzo (es. `adult`, `child`), il cliente imposta una quantità per prezzo; il totale persone deve coincidere con la somma delle quantità per prezzo. ## 4. Conferma e paga - **Prenotazioni gratuite** (totale `0`) saltano il pagamento e si confermano subito — stato `Free`. - **Codici promo** — il campo "Ho un codice promo" parcheggia la prenotazione in `PromoPending` per la revisione staff invece di addebitare la carta. I codici approvati confermano la prenotazione (copertura piena) o inviano al cliente un link per pagare il restante; quelli rifiutati ricadono su annullamento o pagamento pieno, a scelta dello staff. - **Prenotazioni a pagamento** vanno a Stripe Checkout sull'account connesso dell'azienda. Un hold di capacità (`booking.hold_minutes`, default 30 min) riserva il posto durante il pagamento; `booking.max_hold_lifetime_minutes` (default 90 min) è il limite massimo dell'intero flusso. - Lo sweeper `bookings:expire-holds` (ogni 5 min) scade gli hold decaduti — e consolida le sessioni Checkout che Stripe ha già incassato, così un pagamento lento si conferma comunque invece di perdersi. ## 5. Fine La pagina finale (`/booking/{booking}/{outcome}/finish`) mostra il codice prenotazione e il download `.ics` per il calendario. Le email di promemoria partono 24 h e 1 h prima dell'inizio evento (`bookings:send-reminders`, ogni ora). > Evento pieno? Con `waitlist_enabled` attivo i clienti entrano in coda e ricevono un link di offerta quando si libera un posto. --- > Source: https://placeful-app.com/docs/getting-started/first-booking ## Docs — bookings/refunds # Rimborsi # Rimborsi I rimborsi restituiscono denaro dopo che una prenotazione è stata pagata. Il flusso è in due passi — **richiesta** e poi **approvazione** — così un rimborso non è mai silenzioso. ## Chi può rimborsare `bookings.refund` — concesso di default a **owner** e **admin**. Membri e manager non possono rimborsare. Approvare richiede inoltre di essere autenticati con lo stesso permesso — il link firmato da solo non basta. ## Richiedere un rimborso 1. Apri l'editor della prenotazione (`/booking/{booking}/-editor`). 2. Clicca **Rimborso**, scegli l'importo e inserisci una motivazione. 3. La prenotazione passa a `RefundPending`; la riga `Financial` registra `refund_amount`, `refund_reason`, `refund_requested_by` / `refund_requested_at` e lo stato `pending_refund`. 4. L'**owner** aziendale riceve via email una `BookingRefundRequestedNotification` con il link di approvazione firmato. Anche annullare una prenotazione pagata può creare una richiesta di rimborso e notifica il prenotante (`BookingCancellationRefundRequestedNotification`). ## Approvare un rimborso Il link di approvazione è **firmato** (middleware `signed`): ``` /bookings/{booking}/refunds/{financial}/approve?signature=... ``` - GET mostra una pagina di conferma con motivazione e importi; POST approva. - `ApproveBookingRefund` emette il rimborso Stripe sull'account connesso (con `refund_application_fee`, così la fee piattaforma viene restituita proporzionalmente), porta la prenotazione da `Refunding` a `Refunded`, registra `refunded_amount`/`refunded_at` e notifica il prenotante (`BookingRefundApprovedNotification`). - Un fallimento Stripe imposta `RefundFailed` con `refund_failed_at` + `refund_failure_reason` e lancia `BookingRefundFailed` — lo staff può riprovare manualmente. - I rimborsi parziali sono supportati: `refund_amount` può essere sotto il totale incassato; `refunded_amount` traccia quanto è stato effettivamente restituito. ## Pagamenti tardivi Un pagamento Stripe che arriva **dopo** che la prenotazione è già scaduta o annullata viene scritto nel registro `late_payments` e l'owner viene notificato (`LatePaymentReceivedNotification`). `BOOKING_AUTO_REFUND_LATE_PAYMENTS` (default **true**) lo rimborsa automaticamente — impostalo a `false` per trattenere il denaro e riconciliare a mano. È un effetto reale sul denaro. --- > Source: https://placeful-app.com/docs/bookings/refunds ## Docs — bookings/waitlist # Waitlist # Waitlist Quando un prenotabile è sold-out e l'evento ha `waitlist_enabled`, i clienti possono entrare in lista d'attesa direttamente dal widget. La promozione è FIFO per prenotabile (per `waitlist_entries.created_at`). ## Come funziona 1. Il cliente entra in lista → viene creata una `WaitlistEntry` in `waiting`. 2. Si libera capacità (prenotazione annullata, hold scaduto, prenotazione modificata) → `OfferSpotOnCapacity` promuove la prossima voce in attesa: stato `offered`, un `offer_token` da 64 caratteri e `expires_at` = ora + **24 h** (`OfferSpotOnCapacity::DEFAULT_OFFER_TTL_HOURS`). Il cliente riceve una `WaitlistSpotOfferedNotification` con il link `/waitlist/claim/{token}`. 3. Il cliente apre il link — deve essere loggato **come l'utente della voce** — e clicca **Reclama**: stato `claimed`, poi redirect alla pagina di riepilogo prenotazione pre-compilata con prenotabile e numero di persone. 4. Completare quella prenotazione porta la voce a `fulfilled` (il `waitlist_entry_id` viene propagato; un listener su `BookingCreated` fa da rete di sicurezza). 5. **Declina** → `cancelled` e la prossima voce in attesa viene promossa subito. 6. `waitlist:expire-claims` (ogni 5 min) scade le voci offered/claimed stantie e promuove la prossima in coda. ## Stati ``` waiting → offered → claimed → fulfilled ↘ expired ↘ cancelled (declinata) ``` ## Due tipi di voce `waitlist_entries.kind` divide la tabella in due cicli di vita che non si mescolano mai: - **`capacity`** (default) — il flusso sold-out qui sopra: utenti con account in coda per capacità liberata, promozione FIFO, link di reclamo coperto da token **e** utente autenticato corrispondente. - **`walkin`** — la [coda alla porta](/docs/venue/door-ops): lo staff prende i gruppi walk-in in giornata su un'Area, l'ospite è una coppia nome/telefono (nessun account), l'offerta parte via SMS/mail e la pagina di reclamo è a solo token. Le voci walk-in non promuovono mai in automatico e vengono accomodate a mano — vedi door ops. ## Permessi Owner, admin e manager vedono lo stato della waitlist sul widget e nel flusso di prenotazione. Entrare in lista e reclamare sono azioni del cliente — il link di reclamo è coperto dal token a 64 caratteri **e** dall'utente autenticato corrispondente, nessun ruolo staff necessario. Le scritture sulla coda walk-in richiedono `bookings.seat`. --- > Source: https://placeful-app.com/docs/bookings/waitlist ## Docs — bookings/custom-fields # Campi personalizzati di prenotazione # Campi personalizzati di prenotazione Chiedi ai clienti ciò che il modulo standard non copre — intolleranze, ragione sociale, note di arrivo — agganciando campi personalizzati a un **evento** o a un'**area**. Le risposte sono salvate sulla prenotazione e visibili allo staff nel dettaglio. ## Dove si definiscono - **Editor evento → Campi personalizzati** — si applica a ogni prenotazione di quell'evento. - **Editor area → Campi personalizzati** — si applica alle prenotazioni senza evento di quell'area. Ogni campo ha etichetta, chiave tecnica, tipo, un placeholder opzionale e un ordine. ## Tipi di campo | Tipo | Input reso | |---|---| | `text` | testo su riga singola (max 255 caratteri) | | `textarea` | testo multilinea (max 5000 caratteri) | | `select` | menu a tendina — richiede un'etichetta per riga | | `checkbox` | toggle sì/no (accettato/non accettato) | | `date` | selezione data (YYYY-MM-DD) | | `number` | input numerico (interi o decimali) | ## Quando viene chiesto il campo Ogni campo ha una **fase di raccolta**: - **Prenotazione** — chiesto nella pagina di conferma pubblica, dentro il flusso di prenotazione. I campi in fase di prenotazione possono essere **obbligatori**: il cliente non può confermare senza rispondere. - **Post-prenotazione** — chiesto dopo la conferma (pagina di conferma e follow-up). I campi post-prenotazione sono sempre opzionali — non possono mai bloccare una prenotazione. ## Risposte Le risposte sono salvate nella revisione del dettaglio prenotazione come `{chiave: {etichetta, valore}}` — modificare o eliminare un campo non cancella le risposte già raccolte, e lo storico delle revisioni conserva i valori precedenti. Lo staff vede le risposte nel dettaglio prenotazione; fanno parte anche degli export. ## Limiti e regole - I campi sono per singolo prenotabile: duplicare un evento non implica duplicarne i campi — ricreali sul nuovo evento o sulla nuova area. - I campi `select` richiedono almeno un'opzione; liste di opzioni vuote vengono rifiutate. - Mantieni stabili le chiavi: la chiave è l'identificatore di archiviazione, quindi rinominarla apre un nuovo flusso di risposte. --- > Source: https://placeful-app.com/docs/bookings/custom-fields ## Docs — orders/guest-ordering # Ordini QR degli ospiti # Ordini QR degli ospiti e impostazioni Gli ospiti possono ordinare dal proprio telefono scansionando il **QR del tavolo** — niente account, niente app da installare. Tutto il flusso si configura da `/orders/settings`. ## Modalità di ordinazione `orders_mode` decide cosa fa davvero il telefono dell'ospite: | Modalità | Esperienza ospite | |---|---| | **Chiama cameriere** | Il telefono segnala solo il tavolo — lo staff prende la comanda di persona. | | **Lista condivisa** | Gli ospiti compongono una selezione; il cameriere la vede e la conferma in righe reali. | | **Con approvazione** | Gli ospiti inviano righe vere; restano `queued` sul [monitor cucina](/docs/orders/kitchen-board) finché lo staff le approva. | | **Diretta in cucina** | Le righe ospiti partono immediatamente — nessun checkpoint umano. | L'interruttore **QR ospiti** (`orders_guest_qr`) accende o spegne l'intero canale ospite. Quando è spento il QR apre comunque il menu ma nulla può essere inviato. ## Sospendere gli ordini **Sospendi gli ordini online** (`orders_paused`) nelle impostazioni ordini blocca temporaneamente i nuovi ordini QR, dei membri e della vetrina senza cambiare la modalità di ordinazione. L'ordinazione parte attiva; disattiva la sospensione per riprenderla. I menu restano visibili, i carrelli restano intatti e le pagine aperte si aggiornano quando cambia la sospensione. Ogni nuovo invio verifica anche il valore attuale nel database: una pagina vecchia non può aggirare il blocco. Gli invii già accettati vengono riutilizzati senza duplicare le righe. Gli ordini dello staff e degli aggregatori di consegna non sono interessati. Conti esistenti, preparazione, ritiro e pagamenti (anche i tentativi di pagamento anticipato) restano disponibili. La sospensione non modifica gli annunci sui marketplace esterni. ## QR dei tavoli La pagina impostazioni elenca ogni tavolo con un QR stampabile che punta a `/o/t/{token}` — il token è una capability URL per tavolo: chiunque lo possiede apre la pagina di quel tavolo, quindi tratta le stampe come chiavi. **Ruota** genera un token nuovo e invalida quello stampato (QR perso/rubato, foto trapelata). L'auto-ordinazione dei membri nell'[app](/docs/app/member-app) usa lo stesso conto sotto al cofano. ## Impostazioni di cassa - **Servizio** — punti base applicati sul subtotale (es. `1000` = 10 %), aggiunti al totale di ogni conto. - **Mance** — campo mancia su ogni tranche di pagamento quando abilitato. Gli ospiti possono pagare la loro parte online via Stripe Checkout quando il locale ha un account collegato — valgono le stesse divisioni della [comanda](/docs/orders/order-pad). ## Permessi Le impostazioni ordini stanno dietro `companies.update` (permesso impostazioni locale). L'ordinazione lato staff segue i [permessi della comanda](/docs/orders/order-pad); gli ospiti non hanno bisogno di alcun account. --- > Source: https://placeful-app.com/docs/orders/guest-ordering ## Docs — companies/stripe-connect # Stripe Connect # Stripe Connect Stripe Connect permette a ogni azienda di ricevere payout sul proprio account Stripe mentre la piattaforma trattiene una commissione. ## Collegare un account 1. Vai su **Impostazioni azienda** → **Payments** → account Stripe (`/companies/{company}/stripe-accounts`). 2. Clicca **Onboard** (`POST /companies/{company}/stripe/onboard`) — redirige al flusso di onboarding Stripe. 3. Stripe torna su `stripe-accounts/{stripeAccount}/refresh`; la riga account salva `stripe_account_id`, `type`, `country` ed `email`. L'azione **Sync** (`POST stripe-accounts/{stripeAccount}/sync`) ri-scarica lo stato dell'account. ## Payout & commissioni - I pagamenti sono **destination charge**: `transfer_data.destination` = account dell'azienda, `application_fee_amount` = fee flat + percentuale del package. I rimborsi passano `refund_application_fee` così la fee piattaforma viene restituita proporzionalmente. - `app:stripe-sync-payouts` (giornaliero 03:15) sincronizza i totali pagati dalla storia payout Stripe; ogni riga `Financial` registra `payout_id` e `paid_out_at`. - `app:stripe-sync-commissions` (giornaliero 03:00) riconcilia le fee Stripe totali (ciò che Stripe addebita alla piattaforma) per account connesso. ## Webhook Tre endpoint pubblici — niente sessione/CSRF, verificati da firma Stripe: - `POST /stripe/webhook` — payment intent, rimborsi, completamento checkout. - `POST /stripe/connect-webhook` — eventi account connessi. - `POST /stripe/billing-webhook` — ciclo di vita abbonamenti. Tutti rate-limited dal limiter `stripe-webhook`: **1000 req/min per IP** (generoso apposta — Stripe riprova su 5xx e un checkout produce più eventi). Gli eventi bloccati in `processing_at` da oltre 5 minuti vengono recuperati ogni ora (`app:stripe-reap-stale-webhook-events`). ## Permessi - `stripeaccounts.view` — vede gli account connessi (owner + admin). - `stripeaccounts.create` / `stripeaccounts.update` — onboard, modifica e sync (owner di default). - I pannelli embedded controllano inoltre `companies.update` / la policy `view` dell'account. --- > Source: https://placeful-app.com/docs/companies/stripe-connect ## Docs — widget/embed-widget # Embeddare il widget # Widget di prenotazione embeddabile Il widget di prenotazione è un iframe da incollare in qualsiasi sito esterno. Renderizza un calendario localizzato degli eventi **pubblicati** imminenti dell'azienda e gestisce l'intero flusso di prenotazione — inclusa waitlist e handoff widget-auth. ## Tre modi di integrazione Apri **Impostazioni azienda → tab Widget prenotazioni** (`/companies/{company}/edit?tab=widget` — owner/admin). Scegli il percorso adatto alla piattaforma: - **Condividi un link** — il link diretto di prenotazione (`/book/{company}`) funziona ovunque: pulsanti di navigazione, bio, email. I link per canale pre-taggano sorgente/medium UTM. Zero codice. - **Script di una riga** *(predefinito)* — un solo tag `