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

Proposal Schema

Schema-ID
proposal
Collection
proposals
Permissions
  • Lesenproposal_view
  • Anlegenproposal_create
  • Ändernproposal_edit
  • Löschenproposal_delete

Felder

Proposal Schema

proposals4 Permissions

Schema for validating proposal entities (Angebotsmappen)

titlestringerforderlich

Proposal title

1–300 Zeichen
proposalNumberstringoptional

Auto-generated proposal number (e.g. AG-2026-00001)

max 30 ZeichenDefault: nullread-onlynullable
versionintegeroptional

Proposal version number (incremented on revision)

≥ 1Default: 1read-only
isActiveVersionbooleanoptional

Whether this is the current active version

Default: true
previousVersionIdstringoptional

Previous version of this proposal (for version chain)

PatternDefault: nullnullable
partyIduuiderforderlich

Customer party UUID

contactNamestringoptional

Contact person name at customer

max 200 Zeichennullable
contactEmailstringoptional

Contact email for sending the proposal

max 300 Zeichennullable
deliveryAddressobjectoptional

Delivery address (if different from billing)

Default: nullnullable
invoiceAddressobjectoptional

Invoice/billing address (if different from party address)

Default: nullnullable
statusstringerforderlich

Proposal status

DRAFTSENTVIEWEDACCEPTEDREJECTEDCHANGE_REQUESTEDEXPIRED
coverNotestringoptional

Rich text cover note / introductory letter (HTML)

nullable
validUntildateoptional

Proposal valid until date (YYYY-MM-DD)

nullable
accessTokenstringoptional

Random token for public access URL

read-onlynullable
paymentTermIdstringoptional

Reference to payment_terms collection

PatternDefault: nullnullable
paymentTermsDaysintegeroptional

Payment due in X days (denormalized from payment_term)

≥ 0Default: nullnullable
headerDiscountstringoptional

Header-level discount percentage

PatternDefault: nullnullable
headerSurchargestringoptional

Header-level surcharge percentage

PatternDefault: nullnullable
shippingMethodstringoptional

Shipping method name

max 200 ZeichenDefault: nullnullable
shippingCoststringoptional

Shipping cost (decimal)

PatternDefault: nullnullable
defaultVatRatestringoptional

Default VAT rate for positions

Default: "19"
vatAmountstringoptional

Total VAT amount (calculated)

PatternDefault: nullnullable
grossAmountstringoptional

Gross total including VAT (calculated)

PatternDefault: nullnullable
opportunityIdstringoptional

Linked opportunity (Vertriebschance)

PatternDefault: nullnullable
salesOrderIdstringoptional

Resulting sales order (after acceptance)

PatternDefault: nullnullable
closingNotestringoptional

Closing text / footer note (HTML)

Default: nullnullable
termsTextstringoptional

Terms & conditions text or reference (HTML)

Default: nullnullable
isTemplatebooleanoptional

Whether this is a reusable template

Default: false
templateNamestringoptional

Template name (if isTemplate)

max 200 ZeichenDefault: nullnullable
reminderDaysintegeroptional

Auto-remind after X days if no response

≥ 1Default: nullnullable
lastReminderSentAtdatetimeoptional

Last reminder email sent

Default: nullnullable
viewCountintegeroptional

Number of times the proposal was viewed

≥ 0Default: 0
averageViewDurationintegeroptional

Average view duration in seconds

≥ 0Default: nullnullable
recipientsobject[]optional

Multiple proposal recipients (CC to decision-makers)

Default: []
namestringerforderlich
max 200 Zeichen
emailemailerforderlich
max 300 Zeichen
rolestringoptional
max 100 ZeichenDefault: nullnullable
viewedAtdatetimeoptional
Default: nullread-onlynullable
respondedAtdatetimeoptional
Default: nullread-onlynullable
itemsobject[]optional

Proposal line items

Default: []
iduuiderforderlich
articleIduuidoptional

Article UUID (nullable for free-text items)

nullable
articleNamestringerforderlich

Article / line item name

max 300 Zeichen
articleNumberstringoptional

Denormalized article number

nullable
productIduuidoptional

Product UUID (for linking to product info pages)

nullable
productNamestringoptional

Denormalized product name

max 300 Zeichennullable
descriptionstringoptional

Line item description

max 2000 Zeichennullable
quantitystringerforderlich

Quantity

Pattern
unitPricestringerforderlich

Unit price

Pattern
discountPercentstringoptional

Discount percentage

Patternnullable
netAmountstringoptional

Net amount = quantity * unitPrice * (1 - discount)

Patternnullable
billingIntervalstringoptional

Billing interval

MONTHLYQUARTERLYSEMI_ANNUALYEARLYONE_TIME
nullable
setupFeestringoptional

One-time setup fee

Patternnullable
isOptionalbooleanoptional

Customer can select/deselect this item in the proposal view

Default: false
positionNumberintegererforderlich

Position number for sorting

≥ 0
positionTypestringoptional

Position type (STANDARD, ALTERNATIVE, OPTIONAL, GROUP_HEADER for grouping, TEXT for freetext, SUBTOTAL)

STANDARDALTERNATIVEOPTIONALGROUP_HEADERTEXTSUBTOTAL
Default: "STANDARD"
vatRatestringoptional

Item-level VAT rate (overrides default)

Default: nullnullable
groupIdstringoptional

Group identifier — groups positions under a GROUP_HEADER

Default: nullnullable
scaleValuesany[]optional

Volume/scale pricing per item

Default: nullnullable
attachmentsobject[]optional

Media attachments per position (videos, demos, brochures)

Default: []
idstringerforderlich
typestringerforderlich
DOCUMENTVIDEODEMO_LINKCASE_STUDYBROCHURE
titlestringerforderlich
max 300 Zeichen
urlstringoptional

External URL

Default: nullnullable
s3Keystringoptional

Internal upload

Default: nullnullable
mimeTypestringoptional
Default: nullnullable
netAmountstringoptional

Total net amount

Patternnullable
recurringMonthlystringoptional

Monthly recurring amount

Patternnullable
recurringYearlystringoptional

Yearly recurring amount

Patternnullable
onetimeAmountstringoptional

One-time amount total

Patternnullable
setupFeesTotalstringoptional

Total setup fees

Patternnullable
currencyCodestringoptional

ISO 4217 currency code

PatternDefault: "EUR"
customerMessagestringoptional

Message from customer (change request reason, rejection reason)

max 4000 Zeichennullable
selectedOptionalItemIdsuuid[]optional

Item IDs selected by customer (for optional items)

nullable
sentAtdatetimeoptional

When the proposal was sent to the customer

nullable
viewedAtdatetimeoptional

When the customer first viewed the proposal

read-onlynullable
respondedAtdatetimeoptional

When the customer responded (accepted/rejected/change requested)

read-onlynullable
acceptedAtdatetimeoptional

Acceptance timestamp

read-onlynullable
rejectedAtdatetimeoptional

Rejection timestamp

read-onlynullable
externalReferencesobject[]optional

External system references (e.g. weclapp quote)

Default: []
systemstringerforderlich
max 50 Zeichen
externalIdstringerforderlich
max 200 Zeichen
urlstringoptional
max 500 Zeichennullable
brandingobjectoptional

Optional branding override (defaults to tenant branding)

nullable
logoS3Keystringoptional
nullable
primaryColorstringoptional
Patternnullable
companyNamestringoptional
max 200 Zeichennullable
internalNotestringoptional

Internal note (not visible to customer)

max 4000 Zeichennullable
tagsstring[]optional

Tags

Default: []

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

Suche