Zum Inhalt springen
Leadtime
Deutsch
Esc
navigateopen⌘Jpreview

Create express quotation

Creates a new express quotation for the specified task. Express quotations are pricing estimates that can be sent to contacts and, when accepted, replace time-based billing with the quotation amount.

What are Express Quotations? Express quotations provide a way to offer fixed-price estimates for tasks instead of billing by time. They:

  • Link pricing estimates directly to tasks
  • Can be sent to contacts via email
  • When accepted, override time-based billing for the task
  • Include line items with quantities, unit prices, and options
  • Support tax calculations and multi-language content

How items are generated:

  • Items are automatically created from task products (if any)
  • If includeEstimate is true, estimated work time is added as the first item
  • Each item can have options (variants) with their own pricing
  • Prices, quantities, and totals are calculated automatically

What is returned:

  • Complete quotation with all items and options
  • Calculated subtotal, tax amount, and total
  • HTML-formatted comment and item descriptions
  • Quotation status (initially Pending)
  • Contact user and language information

Note: The task identifier can be either a UUID or numeric shortNumber. The quotation is automatically assigned a sequential shortNumber per task.

POST/tasks/{identifier}/express-quotations
Authorization
AuthorizationOAuth2 access token · headerrequired
Scopes:api:write
or
AuthorizationBearer token (JWT) · headerrequired
Path parameters
identifierstringrequired
Task UUID or numeric shortNumber
Query parameters
fieldsToReturnstring
Comma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestring
Advanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:compactfull
Header parameters
LT-Response-Shapestring
Advanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:full
Request body
requiredapplication/json
commentstring
Optional comment or notes for the quotation. Can be provided in HTML or Markdown format. The system will automatically detect the format and convert it to the internal IDoc format. This comment appears on the quotation document when sent to the contact.
contactUserIdstringrequired
UUID of the contact user who will receive the quotation. This user must exist in the workspace and will be the recipient when the quotation is sent via email.
includeEstimatebooleanrequired
If true, includes the task's estimated work time as the first quotation item. The estimated time is converted to an item with the task's hour rate. If false, only products from the task are included as items.
languagestring
Language code for the quotation (e.g., "en" for English, "de" for German). Used for formatting dates, numbers, and generating localized item descriptions. If not provided, the workspace default language is used.
Responses
201Express quotation created successfully
commentstringrequired
Comment or notes for the quotation, formatted as HTML. This content is converted from the internal IDoc format and appears on the quotation document when sent to the contact.
contactUserIdstringrequired
UUID of the contact user who is the recipient of this quotation. This user receives the quotation when it is sent via email.
createdAtstring<date-time>required
ISO 8601 timestamp when the quotation was created
createdBystringrequired
UUID of the user who created this quotation
idstringrequired
Unique identifier for the quotation (UUID)
itemsExpressQuotationItemResponseDto[]required
Array of all items included in the quotation. Items are ordered by their `order` field. Each item can have multiple options (variants). Items are typically generated from task products and optionally include estimated work time.
Show properties
Array of ExpressQuotationItemResponseDto
descriptionstringrequired
Detailed description of the item in HTML format. For time-based items, this may include the task summary. For product items, this is the product description. The content is converted from the internal IDoc format to HTML.
idstringrequired
Unique identifier for the quotation item (UUID)
optionsExpressQuotationItemOptionResponseDto[]required
Array of option variants available for this item. Options represent different configurations or variants (e.g., color, size, material) that can be selected, each with its own pricing. An empty array means no options are available.
Show properties
Array of ExpressQuotationItemOptionResponseDto
idstringrequired
Unique identifier for the option (UUID)
titlestringrequired
Display name or title of the option variant (e.g., "Color: Red", "Size: Large", "Material: Premium"). Options represent different variants or configurations of a quotation item.
totalPricenumberrequired
Total price for this option variant, calculated as `unitPrice * itemQuantity`. This represents the total additional cost when this option is selected for the item.
unitPricenumberrequired
Price per unit for this option variant. This is the additional cost per unit when this option is selected.
quantitynumberrequired
Quantity of units for this item. For time-based items, this is the number of hours. For product items, this is the product quantity.
titlestringrequired
Display title of the item. For time-based items, this typically includes the hours and rate (e.g., "Work time: 1440 hours at 100 EUR each"). For product items, this is the product name.
totalPricenumberrequired
Total price for this item, calculated as `quantity * unitPrice`. This does not include option prices, which are added separately.
unitstringrequired
Unit of measurement for this item. Can be "Hour" for time-based billing or "Piece" for product-based items.
Allowed:PieceHour
unitPricenumberrequired
Price per unit for this item. For time-based items, this is the hourly rate. For product items, this is the product unit price.
languageobject | nullrequired
Language code used for this quotation (e.g., "en", "de"). Used for formatting and localization. Can be null if not specified, in which case the workspace default is used.
sentAtobject | nullrequired
ISO 8601 timestamp when the quotation was sent via email to the contact user. Null if the quotation has not been sent yet.
shortNumbernumberrequired
Sequential quotation number within the task. The first quotation for a task is 1, the second is 2, etc. This provides a human-readable reference number for the quotation.
statusstringrequired
Current status of the quotation. "Pending" means it has been created but not yet accepted or rejected. "Accepted" means it will be used for billing. "Rejected" means it will not be used for billing. Only one quotation per task can be Accepted at a time.
Allowed:PendingAcceptedRejected
statusChangedBystringrequired
UUID of the user who last changed the quotation status (accepted or rejected). This tracks who made the decision on the quotation.
subTotalnumberrequired
Total amount for all items before tax is applied. This is the sum of all item total prices plus any option prices.
taskIdstringrequired
UUID of the task this quotation is linked to. The quotation affects billing for this task when accepted.
taxnumberrequired
Tax rate percentage applied to the quotation (e.g., 17 for 17% VAT). This is typically taken from the workspace or organization tax settings.
taxAmountnumberrequired
Tax amount calculated from the subtotal and tax rate. Calculated as `(subTotal * tax) / 100`.
totalnumberrequired
Final total amount including tax. Calculated as `subTotal + taxAmount`. This is the amount that will be billed if the quotation is accepted.
updatedAtstring<date-time>required
ISO 8601 timestamp when the quotation was last modified
400Invalid input data or task identifier
401Unauthorized - Invalid or missing authentication token
403No access to task project
404Task not found
Request
curl -X POST "https://leadtime.app/api/public/tasks/550e8400-e29b-41d4-a716-446655440000%20or%20123/express-quotations" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "comment": "<p>Please review this quotation and let us know if you have any questions.</p>",
  "contactUserId": "550e8400-e29b-41d4-a716-446655440000",
  "includeEstimate": true,
  "language": "en"
}'
Response
{
  "comment": "<p>Please review this quotation and let us know if you have any questions.</p>",
  "contactUserId": "550e8400-e29b-41d4-a716-446655440000",
  "createdAt": "2024-01-01T00:00:00Z",
  "createdBy": "550e8400-e29b-41d4-a716-446655440000",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "items": [
    {
      "description": "<p>Development and implementation of the new feature as described in the task requirements.</p>",
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "options": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "title": "Color: Red",
          "totalPrice": 59.9,
          "unitPrice": 5.99
        }
      ],
      "quantity": 1440,
      "title": "Work time: 1440 hours at 100 EUR each",
      "totalPrice": 144000,
      "unit": "Hour",
      "unitPrice": 100
    }
  ],
  "language": "en",
  "sentAt": "2024-01-01T00:00:00Z",
  "shortNumber": 1,
  "status": "Pending",
  "statusChangedBy": "550e8400-e29b-41d4-a716-446655440000",
  "subTotal": 144000,
  "taskId": "550e8400-e29b-41d4-a716-446655440000",
  "tax": 17,
  "taxAmount": 24480,
  "total": 168480,
  "updatedAt": "2024-01-01T00:00:00Z"
}