# 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
