Close a monthly time record
Freeze the immutable monthly close of the time record register for a finished (year, month).
- Snapshots balances and absences of every employee in the period and locks it against retroactive entries.
- A month not yet ended returns 422; an already closed period returns 409.
- Returns 201 with the close and a Location header.
Request
- Base URL: https://api.factuarea.com/v1
- URL: https://api.factuarea.com/v1/companies/{company}/monthly-time-record-closes
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Path parameters
Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).
Headers
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.
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
Response
Month closed. The Location header contains the canonical URL of the new monthly close.
Example response
{
"data": {
"id": "01933a40-04a9-73b5-9bc2-9c0d1e2f3a01",
"object": "monthly_time_record_close",
"year": 2026,
"month": 4,
"status": "closed",
"period_start": "2026-04-01",
"period_end": "2026-04-30",
"closed_by_id": "01933a1f-8c21-7b3d-9e4f-1a2b3c4d5ecc",
"closed_at": "2026-05-02T08:00:00Z",
"employee_count": 12,
"is_sealed": true
}
}Changes
No recorded changes to this operation across all 1 revision of this API.