When a booking carries a tip, the tip.currency value is now required to match
the booking’s applicable currency — the service area’s local_currency,
falling back to the tenant’s base_currency. Tip writes in any other currency
are rejected with a 422 and the new booking_tip_currency_mismatch operation
failure code.
This brings tip currency in line with how tour-level compensation already works, and is the foundation for the upcoming automatic tip distribution onto the tour compensation object: once mismatched currencies are rejected at the source, the downstream distribution logic never has to reconcile them mid-tour.
Concretely, a booking in a EUR service area can no longer be created with a
tip.currency of USD. Any caller setting a tip — whether through
Create a Booking or through one of the integration
ingestion endpoints — must send the same currency that already governs the
booking’s pricing.