API · comments

comments operations in the OpenAPI contract that accept an API key.

Updated:

GET /bookings/{id}/comments

Comentarios internos de una reserva (más nuevo primero)

Owner, manager y viewer ven todas; staff solo reservas con un recurso suyo (si no, 404). Scope de API key bookings:read (solo lectura). Un comentario es una nota del equipo y nunca se envía al cliente por ningún canal.

  • Authentication: API key or dashboard session
  • Scopes: bookings:read

Parameters

NameInRequiredTypeDescription
idpathYesstring
limitqueryNointeger default 25
cursorqueryNostring

Responses

StatusDescription
200OK (CommentPage)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
422Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

POST /bookings/{id}/comments

Comentar de una reserva

Solo sesión de panel con CSRF (las API keys no escriben). Límite de tasa por usuario (429 comment_rate_limited) y máximo de comentarios por entidad (422 comment_limit_reached). Auditado.

  • Authentication: API key or dashboard session
  • Scopes: None

Parameters

NameInRequiredTypeDescription
idpathYesstring

Request body (required)

  • application/json: CommentCreate

Responses

StatusDescription
201Creado (Comment)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
429Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

GET /bookings/{id}/timeline

Línea de tiempo de una reserva (más nuevo primero)

Comentarios, auditoría minimizada de estado/etapa/horario, ubicación puntual vigente y metadatos de adjuntos privados; nunca contenido del archivo ni storage keys. Cursor por (fecha, id). Owner, manager y viewer ven todas; staff solo reservas con un recurso suyo (si no, 404). Scope de API key bookings:read.

  • Authentication: API key or dashboard session
  • Scopes: bookings:read

Parameters

NameInRequiredTypeDescription
idpathYesstring
limitqueryNointeger default 25
cursorqueryNostring

Responses

StatusDescription
200OK (TimelinePage)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
422Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

PATCH /comments/{id}

Editar un comentario (autor, owner o manager)

El texto original queda en el diff de auditoría. Solo sesión de panel con CSRF.

  • Authentication: API key or dashboard session
  • Scopes: None

Parameters

NameInRequiredTypeDescription
idpathYesstring

Request body (required)

  • application/json: CommentCreate

Responses

StatusDescription
200Actualizado (Comment)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
429Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

DELETE /comments/{id}

Borrar un comentario (borrado lógico; autor, owner o manager)

  • Authentication: API key or dashboard session
  • Scopes: None

Parameters

NameInRequiredTypeDescription
idpathYesstring

Responses

StatusDescription
204Borrado
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
429Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

GET /customers/{id}/comments

Comentarios internos de un cliente (más nuevo primero)

Solo owner/manager (PII, como /customers); staff/viewer reciben 403. Scope de API key customers:read (solo lectura). Un comentario es una nota del equipo y nunca se envía al cliente por ningún canal.

  • Authentication: API key or dashboard session
  • Scopes: customers:read

Parameters

NameInRequiredTypeDescription
idpathYesstring
limitqueryNointeger default 25
cursorqueryNostring

Responses

StatusDescription
200OK (CommentPage)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
422Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

POST /customers/{id}/comments

Comentar de un cliente

Solo sesión de panel con CSRF (las API keys no escriben). Límite de tasa por usuario (429 comment_rate_limited) y máximo de comentarios por entidad (422 comment_limit_reached). Auditado.

  • Authentication: API key or dashboard session
  • Scopes: None

Parameters

NameInRequiredTypeDescription
idpathYesstring

Request body (required)

  • application/json: CommentCreate

Responses

StatusDescription
201Creado (Comment)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
429Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

GET /customers/{id}/timeline

Línea de tiempo de un cliente (más nuevo primero)

Comentarios + auditoría relevante (cambios de ficha y de sus reservas). Cursor por (fecha, id). Cuando exista booking_stage_event (F1-19) se suma como fuente. Solo owner/manager (PII, como /customers); staff/viewer reciben 403. Scope de API key customers:read.

  • Authentication: API key or dashboard session
  • Scopes: customers:read

Parameters

NameInRequiredTypeDescription
idpathYesstring
limitqueryNointeger default 25
cursorqueryNostring

Responses

StatusDescription
200OK (TimelinePage)
403Error (RFC 9457) (Problem)
404Error (RFC 9457) (Problem)
422Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)