Saltar al contenido

Grant the partner a support session

Módulo Platform

POST/support-sessions/grantsupportSessions.grant

The client org's Owner (org.support_session.grant) lets its partner's staff read the client org for 1 to 24 hours with a reason (app.grant_support_session). One open session at a time (support_session_active: 422); an org without a partner refuses (support_session_no_partner: 422). Requires `Idempotency-Key`; a replay returns the original response. A rule that refuses the request returns 422 with `refusal` and `reason`.

  • Requiere la capacidad org.support_session.grant.
  • Alcances de OAuth: org.
  • Envía el encabezado Idempotency-Key. Una repetición con la misma clave devuelve la respuesta original.
  • Estados de error: 400, 401, 409, 422, 429. Los errores son detalles de problema RFC 9457.

Cuerpo de la solicitud: SupportSessionGrantRequest

supportSessions.grant: SupportSessionGrantRequest
CampoTipoObligatorioDescripción
hoursintegerSíLength of the session in hours, 1 to 24.Restricciones: range 1 to any
reasonstringSíWhy the partner needs access.Restricciones: length 1 to 500
{
  "hours": 4,
  "reason": "Help with the venue import."
}

Respuesta 201: SupportSession

supportSessions.grant: SupportSession
CampoTipoObligatorioDescripción
idstring (uuid)SíIdentifier of the support session.
org_idstring (uuid)SíIdentifier of the owning organization, derived from the parent row and never accepted from the caller.
created_atstring (date-time)SíWhen the row was created.
created_bystring (uuid) | nullSíIdentifier of the person who created the row.
updated_atstring (date-time)SíWhen the row was last updated.
updated_bystring (uuid) | nullSíIdentifier of the person who last updated the row.
grantee_org_idstring (uuid)SíIdentifier of the partner org whose staff may read while the session lasts.
reasonstringSíWhy the session was granted.Restricciones: length 1 to 500
starts_atstring (date-time)SíWhen access began.
ends_atstring (date-time)SíWhen access ends on its own, at most 24 hours after it began.
ended_atstring (date-time) | nullSíWhen someone ended the session early.
ended_bystring (uuid) | nullSíIdentifier of the person who ended it early.
{
  "id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "created_at": "2026-10-08T14:30:00Z",
  "created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "updated_at": "2026-10-08T14:30:00Z",
  "updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "grantee_org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "reason": "Help with the venue import.",
  "starts_at": "2026-10-08T14:30:00Z",
  "ends_at": "2026-10-08T14:30:00Z",
  "ended_at": "2026-10-08T14:30:00Z",
  "ended_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f"
}

Ejemplos de código

curl -X POST "$XOS_BASE_URL/support-sessions/grant" \
  -H "Authorization: Bearer $XOS_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"hours":4,"reason":"Help with the venue import."}'
const { data } = await xos.supportSessions.grant({
    "hours": 4,
    "reason": "Help with the venue import."
  });
response = xos.support_sessions.grant({"hours": 4, "reason": "Help with the venue import."})
xos support-sessions grant --data '{"hours":4,"reason":"Help with the venue import."}'