API · v1 · stabil
CODEMETA OSDeveloper Center
Konsole öffnen
Entity · performance_records

Performance Record Schema

Schema-ID
performance_record
Collection
performance_records
Permissions
  • Lesenperformance_record_view
  • Anlegenperformance_record_create
  • Ändernperformance_record_edit
  • Löschenperformance_record_delete

Felder

Performance Record Schema

performance_records4 Permissions

Schema for validating Leistungsnachweis entities

partyIduuiderforderlich

Customer party UUID

contractIduuidoptional

Associated contract UUID

nullable
projectIduuidoptional

Project this record was generated for (per-project standalone billing run). Null/absent for collective and per-ticket runs and for legacy records.

read-onlynullable
performanceRecordNumberstringoptional

Auto-generated sequence number

max 1000 Zeichenread-onlynullable
performanceRecordDatedateoptional

Date of the performance record

nullable
servicePeriodFromdateerforderlich

Service period start date

servicePeriodTodateerforderlich

Service period end date

statusstringerforderlich

Lifecycle status

OPENRECORDEDDOCUMENT_CREATEDCANCELLED
Default: "OPEN"
titlestringoptional

Title / summary

max 200 Zeichennullable
notestringoptional

Internal note

max 2000 Zeichennullable
timeRecordIdsuuid[]optional

Linked time record UUIDs

Default: []
expenseIdsuuid[]optional

Linked expense UUIDs

Default: []
tripIdsuuid[]optional

Linked trip UUIDs

Default: []
materialBucketIdsuuid[]optional

Material buckets selected during a per-project billing preview. Materialised as invoice positions when the invoice is generated (default for opts.materialBucketIds).

Default: []
positionIdsuuid[]optional

Flat-rate project positions (ADR 0310/0406) billed in this per-project run. Their FLAT_RATE line items are part of the snapshot; the invoice stamps project_position.invoiceId from this list.

Default: []
billingComponentsobjectoptional

Snapshot of the component selection of a per-project billing run (display/audit). Null/absent for collective and legacy runs.

nullable
timebooleanoptional
flatRatebooleanoptional
expensesbooleanoptional
materialbooleanoptional
totalMinutesintegeroptional

Total tracked minutes

≥ 0Default: 0
totalBillableMinutesintegeroptional

Total billable minutes (after rounding and inclusive deduction)

≥ 0Default: 0
totalBillingUnitsintegeroptional

Total billing units (Arbeitseinheiten) derived from billable minutes and billingUnitMinutes

≥ 0Default: 0
totalAmountstringoptional

Total net amount in EUR as decimal string. Mirrors netAmount; kept for backward compatibility.

Patternnullable
itemsobject[]optional

Snapshot of calculated line items (services + trips). Frozen at PR creation, reused 1:1 when generating the invoice — no recalculation.

Default: []
positionintegeroptional
≥ 1
descriptionstringerforderlich
max 500 Zeichen
unitstringoptional
max 20 Zeichennullable
quantitynumbererforderlich
≥ 0
unitPricestringerforderlich

Decimal string, e.g. "125.00"

vatRatestringoptional

VAT rate as percent string

Default: "19"
netAmountstringoptional

Computed: quantity * unitPrice

nullable
articleIduuidoptional
nullable
articleNumberstringoptional
nullable
itemTypestringoptional
SERVICETRAVEL_DISTANCETRAVEL_TIMETRAVEL_OTHERFLAT_RATETICKETMATERIALEXPENSE
nullable
expenseIduuidoptional

Source expense UUID (EXPENSE lines of a per-project billing run)

nullable
positionIduuidoptional

Source project_position UUID (FLAT_RATE lines of a per-project billing run)

nullable
contractIdstringoptional
Default: nullnullable
contractItemIdstringoptional
Default: nullnullable
pricedAtstringoptional

ADR 0415 — date (YYYY-MM-DD) at which the base rate of this line was resolved: the service date (default) or the billing-run date (pricingDateBasis=BILLING_DATE). Only set on lines built from a single time record.

Default: nullnullable
rateSourcestringoptional

ADR 0415 — provenance of the applied hourly rate. `record` = rate frozen at booking time with unknown origin (legacy). Only set on lines built from a single time record.

contractparty_overrideparty_discountarticleservice_typerecordnull
Default: nullnullable
vatRatestringoptional

Default VAT rate applied to the items snapshot (percent string)

Patternnullable
netAmountstringoptional

Sum of item netAmounts in EUR as decimal string

Patternnullable
vatAmountstringoptional

Total VAT in EUR as decimal string

Patternnullable
grossAmountstringoptional

Gross total (net + VAT) in EUR as decimal string

Patternnullable
invoiceIduuidoptional

Linked invoice UUID (when converted to invoice)

nullable
openTicketNotesobject[]optional

ADR 0146 — snapshot of tickets that were still open when this Leistungsnachweis was generated but were unlocked via `ticket.billingOverride`. Frozen at PR creation so the invoice PDF can render a neutral "Hinweise"-section ("Ticket … wird weiterhin bearbeitet") without re-querying ticket state at print time. Internal `reason` is intentionally NOT included — it stays on the ticket.

Default: []nullable
ticketIduuiderforderlich
ticketNumberstringerforderlich
max 50 Zeichen
titlestringoptional
max 500 Zeichennullable

Standard-Endpoints

Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:

  • GET /api/v1/performance_records — Liste, paginiert + filterbar
  • GET /api/v1/performance_records/<id> — Einzelne Entity
  • POST /api/v1/performance_records — Anlegen
  • PATCH /api/v1/performance_records/<id> — Teil-Update
  • DELETE /api/v1/performance_records/<id> — Soft-Delete
  • GET /api/v1/performance_records/<id>/timeline — Audit + Aktivitäten

Suche