> ## Documentation Index
> Fetch the complete documentation index at: https://developers.getbreezyapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dates, money, and identities

> Interpret local calendar dates, timestamp precision, cents, nulls, and reporting buckets.

## Identities and missing values

Resources use UUID `id` values for joins (job-class IDs are their uppercase codes) and human-readable `number` or `name` values for display. Optional relationships are explicitly null. Embedded references include names for display without a separate lookup. Invoice lines have IDs; an allocation's identity is its payment/invoice pair. A derived timesheet is identified by member ID and resolved period dates, with no persisted ID. Clients should preserve these identities and ignore unrecognized response fields. Enum values and meanings are documented in the schemas.

`job_class` preserves the recorded uppercase value, including legacy classes: `SERVICE`, `MAINTENANCE`, `ESTIMATE_REPAIR`, `ESTIMATE_REPLACE`, `INSTALL`, `WARRANTY`, `CALLBACK`, `SALES`, and `UNKNOWN`. It is not a broader reporting class group. A missing relationship produces null; the recorded value `UNKNOWN` remains a distinct value.

## Money

All amounts ending in `_cents` are integer USD cents. Rates are fractions: `0.1` means 10%.

Preserve signed amounts, including credits and negative balances. A null value is unavailable or inapplicable according to its field definition; do not automatically turn it into zero.

## Calendar dates and timestamps

Dates use years `0001` through `9999` and must be valid calendar dates. Timestamp inputs must represent valid calendar instants and include `Z` or a UTC offset between `-15:59` and `+15:59`; examples use `Z`. Percent-encode a positive offset's `+` when placing it in a query string. Original microsecond precision is retained in timestamp filters, resource timestamps, and cursors. The request's company timezone determines calendar date filters, report buckets, and aging. Calendar ranges include each local day in full, even when clocks change at midnight.

For September in the company’s timezone, use `start_date=2026-09-01&end_date=2026-10-01`. This includes September 30 and excludes October 1. Timestamp filters such as `created_from` instead need an offset, for example `2026-09-01T07:00:00Z` for midnight in Los Angeles on that date.

## Summary periods and segmentation

Date-based summaries require `start_date` and `end_date`, with an inclusive start and exclusive end. They support `day`, Monday-start `week`, calendar `month`, `quarter`, and `year`; the default is month. At most one `group_by` dimension is allowed alongside time. Business filters can be combined without adding groupings.

Summary rows contain the effective half-open `period_start`/`period_end`, clipped to the requested range at its edges. Invoice activity uses issue date; collections use each payment/refund occurrence date. Rows order by period start then group value, with null group values first. There is no zero-filling of absent periods or groups. An ungrouped row has `group: null`; an unknown business unit has a group object with a null value and label. `data` is pageable and contains no hidden grand-total row. Sum additive amounts/counts across returned rows; calculate an overall average from total amount and count, not an average of averages. All pages must succeed before using the result as complete.

Each report documents its own supported dimensions. For additional combinations, accumulate the detailed resources and group them in your reporting store. The API does not accept arbitrary SQL, grouping lists, or invented filters.
