---
title: "Create an offer"
method: POST
path: "/offer"
tags: ["Offer"]
---

# Create an offer

`POST /offer`

## Request

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

## Request body

- CreateOfferRequest
  - `base` object, required
    - `projectId` string, uuid, required
    - `customerId` string, uuid, required
    - `humanId` string, required
    - `offerDate` string, date-time, required
    - `validUntil` string, date-time, required
    - `status` 'inProgress' | 'done' | 'canceled' | 'accepted' | 'rejected', required
    - `creatorId` string, nullable
    - `contactPersonId` string, nullable
    - `isTemplate` boolean, required
    - `templateName` string, nullable
    - `offerLocked` boolean, required
    - `title` string, nullable
    - `coverLetter` string, nullable
    - `concludingRemarks` string, nullable
    - `showIndividualPrices` boolean, required
    - `showTotalPrices` boolean, required
    - `showProductDescriptions` boolean, required
    - `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` integer, nullable
    - `kfwSingleResidenceFundingPercent` integer, nullable
    - `isHomeOwnersAssociation` boolean, nullable
    - `numberOfUnits` integer, nullable
    - `numberOfUnitsToFund` integer, nullable
    - `isApplicantOwner` boolean, nullable
    - `basicFundingRate` integer, nullable
    - `applicantFundingRate` integer, nullable
    - `exactInstallationDate` string, date-time, nullable
    - `approximateInstallationDate` string, nullable
    - `customColor` string, nullable: Hex color string (e.g.,
    - `showCompanySignatureField` boolean, required
    - `showCustomerSignatureField` boolean, required
    - `signatureMode` 'manual' | 'personalSignature', required
    - `companyLogoPosition` 'left' | 'right', required
    - `enableProductPage` boolean, nullable
    - `enableNextStepsPage` boolean, nullable
    - `enableAttachmentPage` boolean, nullable
    - `coverPageType` 'generated' | 'custom' | 'customCoverPage1' | 'customCoverPage2' | 'customCoverPage3' | 'customCoverPage4' | 'customCoverPage5' | 'customCoverPage6', required
    - `installationDateType` 'none' | 'exact' | 'approximate', required
    - `showCoverPageDynamicInfo` boolean, required
    - `showCoverLetterGreeting` boolean, required
  - `items` object[], required: Offer items and pricing entries. Use index to control ordering.
    - `type` 'product' | 'customItem' | 'heading' | 'subTotal', required
    - `heading` string, required
    - `isOptional` boolean, required
    - `productId` string, nullable
    - `productType` 'heatPump' | 'bufferTank' | 'hotWaterTank' | 'freshWaterStation' | 'radiator' | 'service' | 'other' | 'solarPanel' | 'inverter' | 'battery' | 'wallbox' | 'ev' | 'valve', required
    - `description` string, nullable
    - `amount` number, nullable
    - `unit` 'kg' | 'liter' | 'meter' | 'squareMeter' | 'cubicMeter' | 'minute' | 'hour' | 'day' | 'quantity' | 'flatRate' | 'kwp', nullable
    - `taxRate` number, nullable
    - `buyingPriceInCent` number, nullable
    - `margin` number, nullable
    - `index` integer, required
    - `bubbleId` string, nullable

## Response `200`

Offer created

- object
  - `offerId` string, uuid, required

---

[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)
