---
title: "For a firm: Choose whether one member's released time waits for approval in the practice system or is written as approved time (admin)"
method: PUT
path: "/v1/admin/tenants/{tenant}/connector/approval"
tags: ["admin"]
---

# For a firm: Choose whether one member's released time waits for approval in the practice system or is written as approved time (admin)

`PUT /v1/admin/tenants/{tenant}/connector/approval`

## Request

- Base URL: `https://api.sixminute.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sixminute.ai/v1/admin/tenants/{tenant}/connector/approval`
- Auth: HTTP bearer

For a system that takes entries as drafts for approval (`capabilities.accepts_by` is `approval`). `mode: "auto"` is the default: the member's released time is written as approved time, on the member's own account, with no draft; where the system refuses that write the release fails and says why, as a refused draft does, and the entry stays a draft in Sixminute. `mode: "review"` leaves a draft there that waits until it is approved. One member per request, merged over the settings as they stand, so two administrators setting two people at once both land. The answer's `settings.auto_approve` lists the active members on Auto-approve. A sync never changes it. 422 on `mode` for `auto` in a system that does not accept by approval (`review` is always taken); 422 on `member_id` for somebody who is not an active member of this firm. 404 while the firm has no connector. A firm connected to a system this service carries no adapter for answers the not-available 422, as `PUT /v1/connector/settings` does.

Operator mount: an operator acting for the firm named in the path, as its oldest active admin, else its oldest active billing member; `X-Six-Minute-Acting-As` names them. 404 for no such firm, 409 `urn:six-minute:problem:no-acting-member` for one with neither.

## Path parameters

- `tenant` string, required

## Request body

- object
  - `member_id` string, required
  - `mode` 'review' | 'auto', required

## Response `200`

The connector with the setting stored.

- object
  - `kind` 'urios' | 'legalsense' | 'fake', required
  - `status` 'pending_mapping' | 'connected' | 'needs_reconnect' | 'disabled', required
  - `capabilities` object, required
    - `accepts_by` 'billing' | 'approval', required
    - `identity` 'mapping' | 'sign_in', required
    - `change_feed` 'modified_since' | 'full_list', required
    - `narrative_max_chars` integer, nullable, required
    - `note_max_chars` integer, nullable
    - `insolvency_groups` false, required
    - `matter_visibility` 'firm' | 'member'
    - `reviewer` 'self' | 'configurable'
    - `fields` object[], required
      - `key` string, required
      - `label` string, required
      - `scope` 'firm' | 'matter', required
      - `required` boolean, required
      - `standard` 'utbms_task' | 'utbms_activity', nullable, required
  - `settings` object, nullable
    - `notation` string, nullable
    - `reviewer` union
      - object
        - `mode` 'timekeeper', required
      - object
        - `mode` 'person', required
        - `external_ref` string, required
        - `name` string, required
      - unknown
    - `auto_approve` string[]
  - `counts` object, required
    - `matters` integer, required
    - `clients` integer, required
    - `timekeepers` integer, required
    - `options` integer, required
  - `team_bound` integer, required
  - `team_unbound` integer, required
  - `last_sync_at` string, date-time, nullable
  - `last_error` string, nullable

## Other responses

- `400`: The body, query or path did not validate; `errors` lists the fields.
- `401`: No bearer token, or one that does not verify or has expired.
- `403`: The token verified but may not do this: no organisation, not provisioned, wrong role, or a device problem.
- `404`: No such row for this tenant.
- `409`: The id or the email already belongs to something else.
- `422`: The request is well-formed but cannot be carried out as it stands.
- `503`: A capability this service was not configured with, or a practice system that could not be reached; the `type` says which.

---

[API](https://skmtc.dev/sixminute/apis/sixminute-api.md) - [All operations](https://skmtc.dev/sixminute/apis/sixminute-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sixminute/apis/sixminute-api/revisions/605577eadc10?raw)
