Profit and loss statement
P&L over a date range. When startDate and endDate are omitted the latest posted month is returned (backward-compatible with pre-date-range clients); allTime=true spans the first through the last posted month. comparePeriod optionally returns a side-by-side comparison column; prior-period shifts back by the range length (snapped to full months when month-aligned), prior-year shifts both dates back 12 months.
Request
- Base URL: https://api.medianfi.com/api/v1
- URL: https://api.medianfi.com/api/v1/companies/{companyId}/reports/pl
- Auth: HTTP bearer
Query parameters
Concrete legal entity to read. Mutually exclusive with reportingScopeId/scopeAsOf. Omission is accepted only when the actor is authorized to exactly one concrete entity.
Immutable within-company consolidated reporting-scope identity. Must be supplied with scopeAsOf and cannot be combined with entityId.
ISO date used to pin the effective sealed reporting-scope hierarchy version. Must be supplied with reportingScopeId.
Inclusive period start (YYYY-MM-DD). Must be supplied together with endDate.
Inclusive period end (YYYY-MM-DD). Must be supplied together with startDate.
true reports from the first through the last posted month on the P&L and cash flow, where omitting startDate/endDate still returns only the latest posted month, so "all time" must be requested by name. The general ledger reads an omitted range as the whole ledger either way. Cannot be combined with startDate/endDate, month or a comparePeriod other than none (400).
Comparison mode. prior-period shifts back by the range length (snapped to full calendar months when the range is month-aligned). prior-year shifts both dates back 12 months. none (default) returns no comparison.
Override inferred granularity. Advisory; the service still validates the actual range.
Optional class filter for class-aware report endpoints. Pass a company-scoped accounting class UUID, or unassigned for journal lines with no class. Customer-facing use returns data only for active approved company classes.
Add a grouped class breakdown where supported.
Accounting tag filter (#1166). Comma-separated or repeated, up to 50. Keeps posted journal lines owned by a transaction carrying ANY listed tag: the line's own transaction link, or for an unlinked line the entry's single source transaction when no other line names a different transaction. Each line counts once however many selected tags it carries. Single legal entity only; not combinable with groupBy=class. The monthly-cache check reports NOT_CHECKED with reason tag_filtered. Every other report (balance sheet, trial balance, cash flow, exports) refuses tagId with 400, because a tag selects one leg of a balanced entry. untagged is refused on reports.
Legacy month param (YYYY-MM or YYYY-MM-DD). Prefer startDate/endDate.
Response
P&L payload. Includes legacy numeric/boolean self-check fields and additive checks execution evidence for arithmetic and monthly-cache reconciliation. isConsistent: true alone does not prove all checks ran. When a comparison is requested, an optional comparison object with the same shape plus mode, startDate, endDate, period and hasData is included on the payload.
Changes
No recorded changes to this operation across all 1 revision of this API.