Time Entries

Clock in an employee

Clock the start of an employee's workday, opening a new work span.

  • employee_id and source (web/mobile) are required; occurred_at defaults to now.
  • Fails if already clocked in, or outside the employment period: 422 business_rule_violation (clocking_outside_employment_period).
  • Returns 201 with the clock_in entry.
post/companies/{company}/time-entries/clock-in

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/time-entries/clock-in
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

Headers

Idempotency-Keystring
Example:01928f10-7c0e-7c4a-9b7d-2f8a6e3c1d4b

Client-generated opaque key (up to 255 characters; UUID v7 recommended) that makes retries safe: the first response is cached and replayed for repeats without re-executing the mutation. Reusing a key with a different body returns 422 idempotency_key_reused; the values of secret fields (password, secret…) count as part of the body, so retrying with a corrected secret under the same key is a different request, never the replay of the earlier answer. See the Idempotency guide.

Factuarea-Versionstring date
Example:2026-06-01

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Request body

employee_idstring uuid required

Employee ID (UUID v7) clocking in or out.

source'web' | 'mobile' required

Origin of the clock entry: web or mobile.

occurred_atstring date-time nullable

Clock entry timestamp in ISO 8601 (defaults to the server instant).

Response

Clock-in recorded. The Location header contains the canonical URL of the new time entry.

Example response

{
  "data": {
    "id": "01933a21-ae43-7d5f-9b6c-3c4d5e6f7a01",
    "object": "time_entry",
    "employee_id": "01933a1f-8c21-7b3d-9e4f-1a2b3c4d5e01",
    "entry_type": "clock_in",
    "occurred_at": "2026-05-04T09:03:00Z",
    "recorded_at": "2026-05-04T09:03:01Z",
    "source": "web",
    "created_at": "2026-05-04T09:03:01Z"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.