> ## Documentation Index
> Fetch the complete documentation index at: https://help.hoopai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Estimate

> Update an existing estimate with new details



## OpenAPI

````yaml /api-reference/invoices/openapi.json put /invoices/estimate/{estimateId}
openapi: 3.0.0
info:
  title: Invoice API
  description: Documentation for invoice API
  version: '1.0'
  contact: {}
servers:
  - url: https://services.leadconnectorhq.com
security: []
tags:
  - name: Invoice
    description: Documentation for invoice API
  - name: Template
    description: Documentation for invoice API
  - name: Schedule
    description: Documentation for invoice API
  - name: Text2Pay
    description: Documentation for invoice API
  - name: Estimate
    description: Documentation for invoice API
paths:
  /invoices/estimate/{estimateId}:
    put:
      tags:
        - Estimate
      summary: Update Estimate
      description: Update an existing estimate with new details
      operationId: update-estimate
      parameters:
        - name: Version
          in: header
          description: API Version
          required: true
          schema:
            type: string
            enum:
              - '2021-07-28'
        - name: estimateId
          required: true
          in: path
          description: Estimate Id
          schema:
            example: 5f9d6d8b1b2d2c001f2d9e4b
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEstimateDto'
      responses:
        '200':
          description: Successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestDTO'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedDTO'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableDTO'
      security:
        - Location-Access:
            - invoices/estimate.write
        - Agency-Access:
            - invoices/estimate.write
components:
  schemas:
    UpdateEstimateDto:
      type: object
      properties:
        altId:
          type: string
          description: Location Id or Agency Id
          example: 6578278e879ad2646715ba9c
        altType:
          type: string
          enum:
            - location
        name:
          type: string
          description: Estimate Name
          example: Home Service Estimate
        businessDetails:
          $ref: '#/components/schemas/BusinessDetailsDto'
        currency:
          type: string
          description: Currency code
          example: USD
        items:
          description: An array of items for the estimate.
          type: array
          items:
            $ref: '#/components/schemas/EstimateLineItemDto'
        liveMode:
          type: boolean
          description: livemode for estimate
          example: true
          default: true
        discount:
          $ref: '#/components/schemas/DiscountDto'
        termsNotes:
          type: string
          description: Terms notes, Also supports HTML markups
          example: <p>This is a default terms.</p>
        title:
          type: string
          description: Title for the estimate
          example: ESTIMATE
        contactDetails:
          $ref: '#/components/schemas/ContactDetailsDto'
        estimateNumber:
          type: number
          description: >-
            Estimate Number, if not specified will take in the next valid
            estimate number
          example: 1001
        issueDate:
          type: string
          description: issue date estimate
          example: '2024-08-07'
        expiryDate:
          type: string
          description: expiry date estimate
          example: '2024-08-10'
        sentTo:
          $ref: '#/components/schemas/SentToDto'
        automaticTaxesEnabled:
          type: boolean
          description: Automatic taxes enabled for the Estimate
          example: true
          default: false
        meta:
          type: object
          description: Meta data for the estimate
          example:
            key: value
        sendEstimateDetails:
          $ref: '#/components/schemas/SendEstimateDto'
        frequencySettings:
          $ref: '#/components/schemas/FrequencySettingsDto'
        estimateNumberPrefix:
          type: string
          description: Prefix for the estimate number
          example: EST-
          default: EST-
        userId:
          type: string
          description: User Id
          example: 6578278e879ad2646715ba9c
        attachments:
          description: attachments for the invoice
          type: array
          items:
            $ref: '#/components/schemas/AttachmentsDto'
        autoInvoice:
          $ref: '#/components/schemas/AutoInvoicingDto'
          example:
            enabled: true
            directPayments: true
        miscellaneousCharges:
          $ref: '#/components/schemas/ProcessingFeeDto'
        paymentScheduleConfig:
          $ref: '#/components/schemas/PaymentScheduleConfigDto'
        estimateStatus:
          type: string
          description: Estimate Status
          example: sent
          enum:
            - all
            - draft
            - sent
            - accepted
            - declined
            - invoiced
            - viewed
      required:
        - altId
        - altType
        - name
        - businessDetails
        - currency
        - items
        - discount
        - contactDetails
        - frequencySettings
    EstimateResponseDto:
      type: object
      properties:
        altId:
          type: string
          description: Location Id or Agency Id
          example: 6578278e879ad2646715ba9c
        altType:
          type: string
          enum:
            - location
        _id:
          type: string
          description: Unique identifier
          example: 67ac9a51106ee8311e911XXXX
        liveMode:
          type: boolean
          description: Indicates if it is in live mode
          example: true
        deleted:
          type: boolean
          description: Indicates if deleted
          example: false
        name:
          type: string
          description: Name
          example: Estimate Name
        currency:
          type: string
          description: Currency code
          example: USD
        businessDetails:
          $ref: '#/components/schemas/BusinessDetails'
          example:
            logoUrl: your_image-url
            name: Business name
            address:
              addressLine1: address line 1
              city: Test City
              state: State Name
              countryCode: US
              postalCode: '12345'
            phoneNo: +1 1234567890
            website: www.example.com
            customValues:
              - name: Test
                fieldKey: '{{custom_values.test}}'
                id: 5DYTWoiQvWiIJZXX44XXX
                value: Test's Custom Value
        items:
          description: An array of items
          example:
            - taxes: []
              taxInclusive: false
              _id: 67ac9a51106ee8311e911XXXX
              description: <p>Futuristic anti-gravity racing</p>
              currency: USD
              productId: 67ac9a51106ee8311e911XXXX
              priceId: 67ac9a51106ee8311e911XXXX
              amount: 9.99
              qty: 1
              name: TEST
              type: one_time
            - taxes:
                - _id: 67ac9a51106ee8311e911XXXX
                  name: TaxTwo
                  rate: 8.5
                  calculation: exclusive
              taxInclusive: true
              _id: 67ac9a51106ee8311e911XXXX
              productId: 67ac9a51106ee8311e911XXXX
              priceId: 67ac9a51106ee8311e911XXXX
              currency: USD
              name: TEST2
              qty: 1
              amount: 500
              description: ''
              type: recurring
          type: array
          items:
            type: array
        discount:
          $ref: '#/components/schemas/DiscountDto'
          example:
            type: percentage
            value: 0
        title:
          type: string
          description: Title
          example: ESTIMATE
        estimateNumberPrefix:
          type: string
          description: Estimate number prefix
          example: EST-
        attachments:
          description: Attachments
          type: array
          items:
            $ref: '#/components/schemas/AttachmentsDto'
        updatedBy:
          type: string
          description: User Id of who last updated
          example: 3HIpOF9NIc5ltriQXXXX
        total:
          type: number
          description: Total amount
          example: 1222.03
        createdAt:
          format: date-time
          type: string
          description: Timestamp when created
          example: '2025-02-12T13:17:47.416Z'
        updatedAt:
          format: date-time
          type: string
          description: Timestamp when last updated
          example: '2025-02-12T13:17:47.416Z'
        __v:
          type: number
          description: Version number
          example: 0
        automaticTaxesEnabled:
          type: boolean
          description: Indicates if automatic taxes are enabled for this estimate
          example: false
        termsNotes:
          type: string
          description: Terms and conditions for the estimate, supports HTML markup
          example: <p>All services are subject to availability.</p>
        companyId:
          type: string
          description: Company identifier associated with the estimate
          example: COMP12345
        contactDetails:
          $ref: '#/components/schemas/ContactDetails'
          example:
            id: jvzfKTNdE7OYXXXXXX
            name: Contact Name
            phoneNo: '+911111111114'
            email: email@test.com
            address:
              countryCode: US
        issueDate:
          format: date-time
          type: string
          description: Date when the estimate was issued
          example: '2023-06-15T00:00:00.000Z'
        expiryDate:
          format: date-time
          type: string
          description: Date when the estimate expires
          example: '2023-07-15T00:00:00.000Z'
        sentBy:
          type: string
          description: User who sent the estimate
          example: user@example.com
        automaticTaxesCalculated:
          type: boolean
          description: Indicates if automatic taxes were calculated
          example: true
        meta:
          type: object
          description: Additional metadata associated with the estimate
          example:
            key: value
        estimateActionHistory:
          description: History of actions taken on the estimate
          example:
            - action: Created
              timestamp: '2023-06-15T10:00:00.000Z'
          type: array
          items:
            type: string
        sentTo:
          $ref: '#/components/schemas/SentTo'
          example:
            email:
              - test@example.com
            phoneNo:
              - +1 99444444444
        frequencySettings:
          $ref: '#/components/schemas/FrequencySettingsDto'
          example:
            enabled: false
        lastVisitedAt:
          format: date-time
          type: string
          description: Timestamp when the estimate was last visited
          example: '2023-06-20T08:30:00.000Z'
        totalamountInUSD:
          type: number
          description: Total amount in USD
          example: 1500.75
        autoInvoice:
          $ref: '#/components/schemas/AutoInvoice'
          example:
            enabled: true
            directPayments: false
        traceId:
          type: string
          description: Trace ID for logging and debugging
          example: 010c7a01-857f-4619-970d-xyxyxyxy
      required:
        - altId
        - altType
        - _id
        - liveMode
        - deleted
        - name
        - currency
        - businessDetails
        - items
        - discount
        - total
        - createdAt
        - updatedAt
        - __v
        - automaticTaxesEnabled
        - companyId
        - contactDetails
        - issueDate
        - expiryDate
        - automaticTaxesCalculated
        - meta
        - estimateActionHistory
        - sentTo
        - frequencySettings
        - lastVisitedAt
        - totalamountInUSD
        - traceId
    BadRequestDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
    UnauthorizedDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: 'Invalid token: access token is invalid'
        error:
          type: string
          example: Unauthorized
      required:
        - statusCode
        - message
        - error
    UnprocessableDTO:
      type: object
      properties:
        statusCode:
          type: number
          example: 422
        message:
          type: array
          items:
            type: string
          example:
            - Unprocessable Entity
        error:
          type: string
          example: Unprocessable Entity
      required:
        - statusCode
        - message
        - error
    BusinessDetailsDto:
      type: object
      properties:
        logoUrl:
          type: string
          description: Business Logo URL
          example: https://example.com/logo.png
        name:
          type: string
          description: Business Name
          example: ABC Corp.
        phoneNo:
          type: string
          description: Business Phone Number
          example: +1-214-559-6993
        address:
          $ref: '#/components/schemas/AddressDto'
          example: 9931 Beechwood, TX
        website:
          type: string
          description: Business Website Link
          example: wwww.example.com
        customValues:
          description: Custom Values
          type: array
          items:
            type: string
    EstimateLineItemDto:
      type: object
      properties:
        name:
          type: string
          description: Invoice Item Name
          example: ABC Product
        description:
          type: string
          description: Invoice descriptions
          example: ABC Corp.
        productId:
          type: string
          description: Product Id
          example: 6578278e879ad2646715ba9c
        priceId:
          type: string
          description: Price Id
          example: 6578278e879ad2646715ba9c
        currency:
          type: string
          description: Currency
          example: USD
        amount:
          type: number
          description: Product amount
          example: 999
        qty:
          type: number
          description: Product Quantity
          example: 1
        taxes:
          description: Tax
          type: array
          items:
            $ref: '#/components/schemas/ItemTaxDto'
        automaticTaxCategoryId:
          type: string
          description: Tax category id for calculating automatic tax
          example: 6578278e879ad2646715ba9c
        isSetupFeeItem:
          type: boolean
          description: >-
            Setupfee item, only created when 1st invoice of recurring schedule
            is generated
        type:
          type: string
          description: Price type of the item
          example: one_time
          enum:
            - one_time
            - recurring
        taxInclusive:
          type: boolean
          description: true if item amount is tax inclusive
          example: true
          default: false
        attachments:
          description: Attachments for the line item
          example:
            - https://example.com/file1.jpg
            - https://example.com/file2.png
          type: array
          items:
            type: string
      required:
        - name
        - currency
        - amount
        - qty
    DiscountDto:
      type: object
      properties:
        value:
          type: number
          description: Discount Value
          example: 10
          default: 0
        type:
          type: string
          description: Discount type
          enum:
            - percentage
            - fixed
          example: percentage
          default: percentage
        validOnProductIds:
          description: Product Ids on which discount is applicable
          example: '[ ''6579751d56f60276e5bd4154'' ]'
          type: array
          items:
            type: string
      required:
        - type
    ContactDetailsDto:
      type: object
      properties:
        id:
          type: string
          description: Contact ID
          example: 6578278e879ad2646715ba9c
        name:
          type: string
          description: Contact Name
          example: Alex
        phoneNo:
          type: string
          description: Contact Phone Number
          example: '+1234567890'
        email:
          type: string
          description: Contact Email
          example: alex@example.com
        additionalEmails:
          description: Secondary email addresses for the contact to be saved
          type: array
          items:
            $ref: '#/components/schemas/AdditionalEmailsDto'
        companyName:
          type: string
          description: Contact Company Name
          example: ABC Corp.
        address:
          $ref: '#/components/schemas/AddressDto'
        customFields:
          description: Custom Values
          type: array
          items:
            type: string
      required:
        - id
        - name
        - phoneNo
        - email
    SentToDto:
      type: object
      properties:
        email:
          description: Email Address
          example:
            - alex@example.com
          type: array
          items:
            type: string
        emailCc:
          description: cc to be kept in any sent out emails
          example:
            - alex@example.com
          type: array
          items:
            type: string
        emailBcc:
          description: bcc to be kept in any sent out emails
          example:
            - alex@example.com
          type: array
          items:
            type: string
        phoneNo:
          description: Contact Phone Number
          example:
            - +1-214-559-6993
          type: array
          items:
            type: string
      required:
        - email
    SendEstimateDto:
      type: object
      properties:
        altId:
          type: string
          description: Location Id or Agency Id
          example: 6578278e879ad2646715ba9c
        altType:
          type: string
          enum:
            - location
        action:
          type: string
          enum:
            - sms_and_email
            - send_manually
            - email
            - sms
        liveMode:
          type: boolean
          description: livemode for estimate
          example: true
        userId:
          type: string
          description: >-
            Please ensure that the UserId corresponds to an authorized
            personnel, either by an employee ID or agency ID, to access this
            location. This account will serve as the primary channel for all
            future communications and updates.
          example: 6578278e879ad2646715ba9c
        sentFrom:
          $ref: '#/components/schemas/InvoiceSettingsSenderConfigurationDto'
        estimateName:
          type: string
          description: estimate name
          example: Estimate
      required:
        - altId
        - altType
        - action
        - liveMode
        - userId
    FrequencySettingsDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: enabled for the frequency settings
          example: true
        schedule:
          $ref: '#/components/schemas/ScheduleOptionsDto'
      required:
        - enabled
        - schedule
    AttachmentsDto:
      type: object
      properties:
        id:
          type: string
          description: Id of the file selected
          example: 6241712be68f7a98102ba272
        name:
          type: string
          description: 'Name of the file '
          example: Electronics.pdf
        url:
          type: string
          description: URL of the file
          example: https://example.com/digital-delivery
        type:
          type: string
          description: Type of the file
        size:
          type: number
          description: Size of the file
          example: 10000
      required:
        - id
        - name
        - url
        - type
        - size
    AutoInvoicingDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enable Auto Invoice
          example: true
        directPayments:
          type: boolean
          description: Direct Payments
          example: true
      required:
        - enabled
    ProcessingFeeDto:
      type: object
      properties:
        charges:
          description: charges for the processing fee
          items:
            type: array
          type: array
        collectedMiscellaneousCharges:
          type: number
          description: collected miscellaneous charges
          example: 10
        paidCharges:
          description: paid miscellaneous charges
          type: array
          items:
            $ref: '#/components/schemas/ProcessingFeePaidChargeDto'
      required:
        - charges
    PaymentScheduleConfigDto:
      type: object
      properties:
        type:
          type: string
          description: Payment Schedule Type
          example: fixed
          enum:
            - fixed
            - percentage
        dateConfig:
          $ref: '#/components/schemas/PaymentScheduleDateConfigDto'
        schedules:
          description: Payment Schedule Items
          items:
            type: array
          type: array
      required:
        - type
        - dateConfig
        - schedules
    BusinessDetails:
      type: object
      properties: {}
    ContactDetails:
      type: object
      properties: {}
    SentTo:
      type: object
      properties: {}
    AutoInvoice:
      type: object
      properties: {}
    AddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address Line 1
          example: 9931 Beechwood
        addressLine2:
          type: string
          description: Address Line 2
          example: Beechwood
        city:
          type: string
          description: City
          example: St. Houston
        state:
          type: string
          description: State
          example: TX
        countryCode:
          type: string
          description: Country Code
          example: US
        postalCode:
          type: string
          description: Postal Code
          example: 559-6993
    ItemTaxDto:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        rate:
          type: number
        calculation:
          type: string
          enum:
            - exclusive
        description:
          type: string
        taxId:
          type: string
      required:
        - _id
        - name
        - rate
    AdditionalEmailsDto:
      type: object
      properties:
        email:
          type: string
          example: alex@example.com
      required:
        - email
    InvoiceSettingsSenderConfigurationDto:
      type: object
      properties:
        fromName:
          type: string
          description: Sender name to be used while sending email notification
          example: Alex
        fromEmail:
          type: string
          description: Email id to be used while sending email notification
          example: alex@example.com
    ScheduleOptionsDto:
      type: object
      properties:
        executeAt:
          type: string
        rrule:
          $ref: '#/components/schemas/CustomRRuleOptionsDto'
    ProcessingFeePaidChargeDto:
      type: object
      properties:
        name:
          type: string
          description: name of the processing fee
          example: Processing Fee
        charge:
          type: number
          description: charge for the processing fee
          example: 10
        amount:
          type: number
          description: amount of the processing fee
          example: 10
        _id:
          type: string
          description: id of the processing fee
          example: 673d01d7d547648a8dab6211
      required:
        - name
        - charge
        - amount
        - _id
    PaymentScheduleDateConfigDto:
      type: object
      properties:
        depositDateType:
          type: string
          description: Deposit date type
          example: estimate_accepted
          enum:
            - estimate_accepted
            - custom
        scheduleDateType:
          type: string
          description: Payment Schedule Date Type
          example: regular_interval
          enum:
            - regular_interval
            - custom
      required:
        - depositDateType
        - scheduleDateType
    CustomRRuleOptionsDto:
      type: object
      properties:
        intervalType:
          type: string
          enum:
            - yearly
            - monthly
            - weekly
            - daily
            - hourly
            - minutely
            - secondly
          example: monthly
        interval:
          type: number
          example: 2
        startDate:
          type: string
          description: Start date in YYYY-MM-DD format
          example: '2023-01-01'
        startTime:
          type: string
          description: Start time in HH:mm:ss format
          example: '20:45:00'
        endDate:
          type: string
          description: End date in YYYY-MM-DD format
          example: '2029-11-01'
        endTime:
          type: string
          description: End time in HH:mm:ss format
          example: '18:45:00'
        dayOfMonth:
          type: number
          description: '-1, 1, 2, 3, ..., 27, 28'
          example: 15
        dayOfWeek:
          type: string
          enum:
            - mo
            - tu
            - we
            - th
            - fr
            - sa
            - su
          example: mo
        numOfWeek:
          type: number
          description: '-1, 1, 2, 3, 4'
          example: -1
        monthOfYear:
          type: string
          enum:
            - jan
            - feb
            - mar
            - apr
            - may
            - jun
            - jul
            - aug
            - sep
            - oct
            - nov
            - dec
          example: jan
        count:
          type: number
          description: Max number of task executions
          example: 10
        daysBefore:
          type: number
          description: Execute task number of days before
          example: 5
        useStartAsPrimaryUserAccepted:
          type: boolean
          description: Start as primary user accepted date
          example: true
        endType:
          type: string
          description: End type like after, by, count
          example: by
      required:
        - intervalType
        - interval
        - startDate

````