booking.completed
A stay/booking has been completed at checkout — settlement signal (owner payout, RBS commission). PD-073 Slice 2 (S317): goodbay re-added as sender, now firing from /api/bookings/[id]/checkout. Camino receiver retains the Plenura-shape handler with source_app discriminator (S317 logistics.ts:20 guard — non-Plenura sourceApp ignored).
Senders
goodbay
Receivers
camino
Data schema
Each field maps to a type hint. | null indicates an optional field.
json
{
"bookingId": "string",
"propertyId": "string (goodbay) | absent (plenura legacy)",
"guestId": "string (goodbay) | absent (plenura)",
"ownerId": "string (goodbay) | absent (plenura)",
"therapistId": "string (plenura legacy)",
"clientId": "string (plenura legacy)",
"amount": "number (cents — plenura legacy)",
"amountMxn": "number (MXN — goodbay)",
"platformFeeMxn": "number (MXN — goodbay)",
"ownerPayoutMxn": "number (MXN — goodbay)",
"currency": "string (plenura legacy)",
"completedAt": "string (ISO timestamp — goodbay)"
}Example payload
The following is a synthetic payload that matches the schema. Production payloads are signed with HMAC-SHA256 and delivered to each receiver's registered webhook endpoint.
json
{
"bookingId": "example-bookingId",
"propertyId": "goodbay",
"guestId": "goodbay",
"ownerId": "goodbay",
"therapistId": "example-therapistId",
"clientId": "example-clientId",
"amount": 10000,
"amountMxn": 0,
"platformFeeMxn": 0,
"ownerPayoutMxn": 0,
"currency": "example-currency",
"completedAt": "example-completedAt"
}See also
Generated from ecosystem-sdk/packages/mcp-server/src/registry/events.json. Do not edit by hand.