API · tenancy

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

Updated:

PATCH /workspace

Editar negocio (owner o manager; requiere X-Csrf-Token)

Bearer settings:write admite solo payments_enabled, completion_payment_required, chat_payment, pay_info y brand_accent, sin otros campos; cookie requiere CSRF. Solo owner cambia payments_enabled/completion_payment_required; chat_payment y pay_info requieren workspace:configure y payments:accounts_configure (owner/manager). PATCH atómico de identidad, apariencia, contacto, dirección y perfil fiscal. Solo owner modifica fiscal_data/fiscal_address; manager lee y edita los demás campos. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. source_plan_id adopta un plan propio de Wagy en la misma transacción (se revalidan estado, expiración, huella y permisos). Timezone/moneda con reservas futuras activas devuelve 409 sin cambios parciales. Datos fiscales solo owner/manager; staff recibe null. Respuestas no-store; logo thumbnail PNG/JPEG inline menor de 5 MB, sin URL externa.

  • Authentication: API key or dashboard session
  • Scopes: settings:write

Parameters

NameInRequiredTypeDescription
X-Csrf-TokenheaderNostring

Request body (required)

  • application/json: WorkspaceSettingsPatch

Responses

StatusDescription
200Actualizado (WorkspaceSettings)
defaultError (RFC 9457) (Problem)

GET /workspace/audit

Revisar mi configuración (puntaje de puesta a punto)

FIU-524. Reglas fijas sobre el proyecto real, sin IA y sin costo: devuelve un puntaje 0-100, solo lo que falta ordenado por impacto y, por cada ítem, la operación de API que lo arregla con sus parámetros sugeridos (fix.operation, fix.params) y, si hace falta un dato del dueño, la pregunta de una línea (fix.ask). Si no falta nada, all_good es true e items va vacío. Owner y manager; API key con config:read. El idioma sale de lang o del proyecto. Sin caché.

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

Parameters

NameInRequiredTypeDescription
langqueryNostring pt, es, en

Responses

StatusDescription
200Puntaje y lo que falta; Cache-Control no-store (SetupAudit)
defaultError (RFC 9457) (Problem)

GET /workspace/trait-catalog

Catálogo aprobado completo con versión, cambios y preguntas pt/es/en

Base versionada más revisiones inmutables aprobadas. API key config:read. No incluye propuestas.

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

Responses

StatusDescription
200Catálogo exportable como catalog.json (TraitCatalog)
defaultError (RFC 9457) (Problem)

GET /workspace/trait-proposals

Propuestas y etiquetas propias del proyecto

Todos los roles; API key config:read. Hasta 200 por página, orden por UUID; cursor UUID de la última fila.

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

Parameters

NameInRequiredTypeDescription
cursorqueryNostring (uuid)

Responses

StatusDescription
200Propuestas propias (TraitProposalPage)
defaultError (RFC 9457) (Problem)

POST /workspace/trait-proposals

Proponer un rasgo sin aplicarlo (confirm=true)

Permiso workspace:configure; API key settings:write. CSRF para cookie. Máximo 10 pendientes y 3 nuevas por día UTC por negocio; 429 al superar. Deduplicación local por clave o similitud >=0.88 en nombres normalizados pt/es/en; devuelve la propuesta existente sin consumir cupo. Una coincidencia en catálogo devuelve 409 trait_already_catalogued. No cambia rasgos, glosario, flujos ni bot.

  • Authentication: API key or dashboard session
  • Scopes: settings:write

Parameters

NameInRequiredTypeDescription
X-Csrf-TokenheaderNostring

Request body (required)

  • application/json: TraitProposalInput

Responses

StatusDescription
200Propuesta pendiente o duplicado existente (TraitProposal)
429Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

GET /workspace/traits

Rasgos del negocio, etiqueta libre y ejemplos aplicados (todos los roles)

F3-407 (ADR 0036). traits son claves del catálogo versionado (catalog_version) en su orden; vacía = todavía no se preguntaron (los proyectos que ya existían arrancan así). business_label es una etiqueta libre de rubro, solo informativa. examples lista los ejemplos compuestos y sus partes. API key config:read.

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

Responses

StatusDescription
200OK (TraitsState)
defaultError (RFC 9457) (Problem)

PUT /workspace/traits

Guardar rasgos y etiqueta libre (owner o manager; requiere X-Csrf-Token)

Reemplaza la lista completa (sin repetir, se guarda en el orden del catálogo) y la etiqueta (hasta 80 caracteres; vacía la borra). Un rasgo fuera del catálogo es 422 unknown_trait con valid_traits; proponer rasgos nuevos es otra operación (F3-565). Inicializa el glosario por rasgos y ejemplo parecido sin otra pregunta; mientras conserve el valor generado, acompaña cambios posteriores. Conserva ediciones propias. No cambia reglas del bot ni de la agenda. Audita workspace.traits_updated. Permiso workspace:configure; API key settings:write.

  • Authentication: API key or dashboard session
  • Scopes: settings:write

Parameters

NameInRequiredTypeDescription
X-Csrf-TokenheaderNostring

Request body (required)

  • application/json: TraitsInput

Responses

StatusDescription
200Guardado (TraitsState)
422Error (RFC 9457) (Problem)
defaultError (RFC 9457) (Problem)

GET /workspace/vocabulary

Vocabulario del proyecto (owner o manager)

Cómo se nombran Servicio, Tarea, Recurso y Cliente (singular, plural y género por idioma) y, opcionalmente, cada tipo de recurso (kinds, p. ej. «cancha» para las salas de un club). Es presentación; no cambia rutas, tablas ni permisos. Sin vocabulario guardado (is_default) todos los textos son los genéricos de siempre.

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

Responses

StatusDescription
200OK (Vocabulary)
defaultError (RFC 9457) (Problem)

PATCH /workspace/vocabulary

Editar el vocabulario (owner o manager; requiere X-Csrf-Token)

Elegir preset sin terms/kinds descarta esas ediciones; terms y kinds (término por tipo de recurso, FIU-470) reemplazan cada uno sus ediciones anteriores. Términos de 1 a 40 caracteres, sin HTML ni llaves. Escribe auditoría workspace.vocabulary_updated.

  • Authentication: API key or dashboard session
  • Scopes: settings:write

Parameters

NameInRequiredTypeDescription
X-Csrf-TokenheaderYesstring

Request body (required)

  • application/json: VocabularyPatch

Responses

StatusDescription
200Actualizado (Vocabulary)
defaultError (RFC 9457) (Problem)