Skip to content

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.

Red Broom Software Ecosystem