---
title: "Update an offer"
method: PATCH
path: "/offer/{offerId}"
tags: ["Offer"]
---

# Update an offer

`PATCH /offer/{offerId}`

## Request

- Base URL: `https://api3.autarc.energy/v1`
- URL: `https://api3.autarc.energy/v1/offer/{offerId}`
- Auth: API key in header `X-Api-Key`

You only need to provide the fields you want to update.

## Path parameters

- `offerId` string, uuid, required

## Request body

- PatchOfferRequest: Partial update for an offer. Only include fields you want to update.
  - `humanId` string
  - `offerDate` string, date-time
  - `validUntil` string, date-time
  - `status` 'inProgress' | 'done' | 'canceled' | 'accepted' | 'rejected'
  - `contactPersonId` string, nullable
  - `isTemplate` boolean
  - `templateName` string, nullable
  - `offerLocked` boolean
  - `title` string, nullable
  - `coverLetter` string, nullable
  - `concludingRemarks` string, nullable
  - `showIndividualPrices` boolean
  - `showTotalPrices` boolean
  - `showProductDescriptions` boolean
  - `isLumpSum` boolean: When true, the offer total is the typed lump sum rather than the sum of line items.
  - `lumpSumInCent` integer, nullable: Lump-sum amount in cents. Net or gross depending on lumpSumVatMode.
  - `lumpSumVatMode` 'net' | 'gross', nullable
  - `lumpSumTaxRate` number, nullable
  - `absoluteDiscountInCent` integer, nullable
  - `percentageDiscount` number, nullable
  - `kfwSingleResidenceFundingPercent` number, nullable
  - `isHomeOwnersAssociation` boolean, nullable
  - `numberOfUnits` integer, nullable
  - `numberOfUnitsToFund` integer, nullable
  - `isApplicantOwner` boolean, nullable
  - `basicFundingRate` number, nullable
  - `applicantFundingRate` number, nullable
  - `exactInstallationDate` string, date-time, nullable
  - `approximateInstallationDate` string, nullable
  - `customColor` string, nullable
  - `showCompanySignatureField` boolean
  - `showCustomerSignatureField` boolean
  - `signatureMode` 'manual' | 'personalSignature'
  - `companyLogoPosition` 'left' | 'right'
  - `enableProductPage` boolean, nullable
  - `enableNextStepsPage` boolean, nullable
  - `enableAttachmentPage` boolean, nullable
  - `coverPageType` 'generated' | 'custom' | 'customCoverPage1' | 'customCoverPage2' | 'customCoverPage3' | 'customCoverPage4' | 'customCoverPage5' | 'customCoverPage6'
  - `installationDateType` 'none' | 'exact' | 'approximate'
  - `showCoverPageDynamicInfo` boolean
  - `showCoverLetterGreeting` boolean

## Response `200`

A single offer

- Offer
  - `id` string, uuid
  - `project_id` string, uuid
  - `company_id` string, uuid
  - `customer_id` string, uuid
  - `human_id` string
  - `parent_offer_id` string, uuid, nullable: Set on a supplementary offer (Nachtragsangebot) to the id of the main offer it supplements. Null on every other document.
  - `supplement_number` integer, nullable: The supplement's number within its main offer (1 for N1, 2 for N2, …). Null unless parent_offer_id is set.
  - `offer_date` string, date-time
  - `valid_until` string, date-time
  - `status` 'inProgress' | 'done' | 'canceled' | 'accepted' | 'rejected'
  - `status_changed_at` string, date-time, nullable
  - `created_by_profile_id` string, nullable
  - `contact_person_id` string, nullable
  - `is_template` boolean, nullable
  - `template_name` string, nullable
  - `offer_locked` boolean
  - `title` string, nullable
  - `cover_letter` string, nullable
  - `concluding_remarks` string, nullable
  - `show_cover_letter_greeting` boolean
  - `show_individual_prices` boolean
  - `show_total_prices` boolean
  - `show_product_descriptions` boolean
  - `is_lump_sum` boolean: When true, the offer total is the typed lump sum rather than the sum of line items.
  - `lump_sum_in_cent` integer, nullable: Lump-sum amount in cents. Net or gross depending on lump_sum_vat_mode.
  - `lump_sum_vat_mode` 'net' | 'gross', nullable
  - `lump_sum_tax_rate` number, nullable
  - `absolute_discount_in_cent` integer, nullable
  - `percentage_discount` integer, nullable
  - `kfw_single_residence_funding_percent` integer, nullable
  - `is_home_owners_association` boolean, nullable
  - `number_of_units` integer, nullable
  - `number_of_units_to_fund` integer, nullable
  - `is_applicant_owner` boolean, nullable
  - `basic_funding_rate` integer, nullable
  - `applicant_funding_rate` integer, nullable
  - `exact_installation_date` string, date-time, nullable
  - `approximate_installation_date` string, nullable
  - `custom_color` string, nullable
  - `show_company_signature_field` boolean
  - `show_customer_signature_field` boolean
  - `signature_mode` 'manual' | 'personalSignature'
  - `company_logo_position` 'left' | 'right'
  - `enable_product_page` boolean, nullable
  - `enable_next_steps_page` boolean, nullable
  - `enable_attachment_page` boolean, nullable
  - `cover_page_type` 'generated' | 'custom' | 'customCoverPage1' | 'customCoverPage2' | 'customCoverPage3' | 'customCoverPage4' | 'customCoverPage5' | 'customCoverPage6'
  - `installation_date_type` 'none' | 'exact' | 'approximate'
  - `show_cover_page_dynamic_info` boolean
  - `bubble_id` string, nullable
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `deleted_at` string, date-time, nullable
  - `net` number: The offer's net total as the offer editor shows it, in the major currency unit (e.g. 1234.56 means 1,234.56 EUR) — not cents, and not a percentage of the line items. Computed by the same pricing engine as the app: it accounts for per-line VAT rates, quantity and document discounts, packages, optional items and lump sums, so do not recompute it from the line items. Returned by `GET /offer` and `GET /offer/{offerId}`; the `PATCH /offer/{offerId}` response does not include it.
  - `gross` number: The offer's gross total (net plus VAT) as the offer editor shows it, in the major currency unit — not cents, and not a percentage of the line items. Computed by the same pricing engine as `net`; for a lump-sum offer it is derived from the lump sum and its VAT mode. Returned by `GET /offer` and `GET /offer/{offerId}`; the `PATCH /offer/{offerId}` response does not include it.

## Other responses

- `404`: The specified resource was not found

---

[API](https://skmtc.dev/autarc/apis/autarc-2-0-api.md) - [All operations](https://skmtc.dev/autarc/apis/autarc-2-0-api/llms.txt) - [OpenAPI document](https://skmtc.dev/autarc/apis/autarc-2-0-api/revisions/adfb20a40efc?raw)
