Performance Record Schema
Felder
Performance Record Schema
Schema for validating Leistungsnachweis entities
partyId
Customer party UUID
contractId
Associated contract UUID
projectId
Project this record was generated for (per-project standalone billing run). Null/absent for collective and per-ticket runs and for legacy records.
performanceRecordNumber
Auto-generated sequence number
performanceRecordDate
Date of the performance record
servicePeriodFrom
Service period start date
servicePeriodTo
Service period end date
status
Lifecycle status
OPENRECORDEDDOCUMENT_CREATEDCANCELLEDtitle
Title / summary
note
Internal note
timeRecordIds
Linked time record UUIDs
expenseIds
Linked expense UUIDs
tripIds
Linked trip UUIDs
materialBucketIds
Material buckets selected during a per-project billing preview. Materialised as invoice positions when the invoice is generated (default for opts.materialBucketIds).
positionIds
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.
totalMinutes
Total tracked minutes
totalBillableMinutes
Total billable minutes (after rounding and inclusive deduction)
totalBillingUnits
Total billing units (Arbeitseinheiten) derived from billable minutes and billingUnitMinutes
totalAmount
Total net amount in EUR as decimal string. Mirrors netAmount; kept for backward compatibility.
items
Snapshot of calculated line items (services + trips). Frozen at PR creation, reused 1:1 when generating the invoice — no recalculation.
position
description
unit
quantity
unitPrice
Decimal string, e.g. "125.00"
vatRate
VAT rate as percent string
netAmount
Computed: quantity * unitPrice
articleId
articleNumber
itemType
SERVICETRAVEL_DISTANCETRAVEL_TIMETRAVEL_OTHERFLAT_RATETICKETMATERIALEXPENSEexpenseId
Source expense UUID (EXPENSE lines of a per-project billing run)
positionId
Source project_position UUID (FLAT_RATE lines of a per-project billing run)
contractId
contractItemId
pricedAt
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.
rateSource
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_typerecordnullvatRate
Default VAT rate applied to the items snapshot (percent string)
netAmount
Sum of item netAmounts in EUR as decimal string
vatAmount
Total VAT in EUR as decimal string
grossAmount
Gross total (net + VAT) in EUR as decimal string
invoiceId
Linked invoice UUID (when converted to invoice)
openTicketNotes
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.
Keine Felder passen zum Filter.
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 + filterbarGET /api/v1/performance_records/<id>— Einzelne EntityPOST /api/v1/performance_records— AnlegenPATCH /api/v1/performance_records/<id>— Teil-UpdateDELETE /api/v1/performance_records/<id>— Soft-DeleteGET /api/v1/performance_records/<id>/timeline— Audit + Aktivitäten