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

# Update booking proposal async

## Field support per integration

> [accordion] Lexware Office
>
> > [!NOTE]
> >
> > This endpoint is asynchronous. To check the status of the request, use the `GET asyncTask` endpoint.
> >
> > For more info about asynchronous tasks visit the [`Asynchronous Task`](https://docs.maesn.com/async-task) section.
>
> Supported request parameters:
>
> **bookingProposal** `string` *required*
>
> **properties**
>
> **bookingProposalDate** `string` *required*
>
> For date format details visit the [`Standardized Data`](https://docs.maesn.com/standardization) section.
>
> **contact** `Contact`
>
> **properties**
>
> **id** `string`
>
> Required when `useCollectiveContact` is `false` or not provided.
>
> **deliveryDate** `string`
>
> For date format details visit the [`Standardized Data`](https://docs.maesn.com/standardization) section.
> Only supported for bookingType: `INVOICE` and `CREDIT_NOTE`.
>
> **dueDate** `string`
>
> For date format details visit the [`Standardized Data`](https://docs.maesn.com/standardization) section.
>
> **lineItems** `BookingLineItem[]` *required*
>
> At least one line item is required. Will replace all existing line items.
>
> **properties**
>
> **account** `Account` *required*
>
> **properties**
>
> **id** `string` *required*
>
> The `id` field specifies the Lexware Office category (account) ID linked to the line item.
>
> To get the correct `accountId`, you can use the `GET Accounts` endpoint.
>
> **taxRatePercentage** `number` *required*
>
> Must be a positive number.
>
> **totalGrossAmount** `number` *required*
>
> The `totalGrossAmount` field represents the total gross amount for the line item. It must have at most 2 decimal places.
>
> **notes** `string`
>
> **number** `string` *required*
>
> **totalGrossAmount** `number` *required*
>
> The `totalGrossAmount` field represents the total gross amount for the entire booking proposal. It must have at most 2 decimal places.
>
> **useCollectiveContact** `boolean`
>
> If `true`, creates the booking proposal with a collective contact (no contact id needed).
>
> **bookingType** `BookingType` *required*
>
> Available options: `INVOICE`, `BILL`, `CREDIT_NOTE`, `VENDOR_CREDIT`.
>
> **files** `file[]`
>
> Only one file is supported. The file name must not exceed 255 characters in length.


## OpenAPI

````yaml PUT /accounting/bookingProposals/{bookingProposalId}/async
openapi: 3.0.0
info:
  title: Maesn unified API
  description: The Maesn unified API description
  version: '1.0'
  contact: {}
servers:
  - url: https://api.maesn.dev
security: []
tags:
  - name: maesn
    description: ''
paths:
  /accounting/bookingProposals/{bookingProposalId}/async:
    put:
      tags:
        - accounting
      operationId: updateBookingProposalAsync
      parameters:
        - name: bookingProposalId
          required: true
          in: path
          schema:
            type: string
        - name: companyId
          required: false
          in: query
          description: ID of the company (required for multi-company target systems)
          schema:
            type: string
        - name: X-API-KEY
          description: API key
          in: header
          schema:
            type: string
          required: true
        - name: X-ACCOUNT-KEY
          description: Account key
          in: header
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                bookingProposal:
                  $ref: '#/components/schemas/BookingProposalRequestAsyncDto'
                bookingType:
                  type: string
                  enum:
                    - BILL
                    - CREDIT_NOTE
                    - INVOICE
                    - VENDOR_CREDIT
                files:
                  type: array
                  items:
                    format: binary
                  description: Array of files to upload
      responses:
        '202':
          description: Booking proposal update request accepted for async processing
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/BaseResponseDto'
                  - properties:
                      data:
                        $ref: '#/components/schemas/TaskIdResponseDto'
                        type: object
components:
  schemas:
    BookingProposalRequestAsyncDto:
      type: object
      properties:
        id:
          type: string
          example: 23a24449-6v28-446e-bb12-3f428073fc
        'addresses ':
          type: array
          items:
            $ref: '#/components/schemas/AddressBookingProposal'
        bankAccount:
          $ref: '#/components/schemas/BankAccountCommonDto'
        bookingProposalDate:
          type: string
          example: '2025-07-14T00:00:00Z'
        contact:
          $ref: '#/components/schemas/ContactCommonDto'
        currency:
          type: string
          example: EUR
        deliveryDate:
          type: string
          example: '2025-07-26T00:00:00Z'
        discountPaymentDate:
          type: string
          example: '2025-07-16T00:00:00Z'
        discountPaymentDate2:
          type: string
          example: '2025-07-18T00:00:00Z'
        dueDate:
          type: string
          example: '2025-07-24T00:00:00Z'
        generatorName:
          type: string
          example: Maesn GmbH
        journalCode:
          type: string
          example: '60'
        isPaymentOrder:
          type: boolean
          example: 'true'
        ledgerName:
          type: string
          example: Eingangsrechnungen
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/BookingProposalLineItemRequestAsyncDto'
        notes:
          type: string
          example: Bill for maintenance services
        number:
          type: string
          example: '1233330'
        orderId:
          type: string
          example: '3344566'
        paidDate:
          type: string
          example: '2025-07-20T00:00:00Z'
        paymentTermId:
          type: string
          example: '03'
        status:
          type: string
          enum:
            - DRAFT
            - SUBMITTED
            - OPEN
            - PAID
            - PARTIALLY_PAID
            - VOIDED
            - CANCELLED
            - OVERDUE
            - DISPUTED
          example: DRAFT
        totalGrossAmount:
          description: >-
            Gross total — the net amount plus tax (the total payable, including
            VAT).
          type: number
          example: 500
        useCollectiveContact:
          type: boolean
          example: true
        vatId:
          type: string
          example: DE987654321
    BaseResponseDto:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/MetaResponse'
        data:
          oneOf:
            - type: object
            - type: array
    TaskIdResponseDto:
      type: object
      properties:
        taskId:
          type: string
          example: 02cc5849-b23c-48fe-8a9b-96f74bfc9571
    AddressBookingProposal:
      type: object
      properties:
        city:
          type: string
          example: city
    BankAccountCommonDto:
      type: object
      properties:
        id:
          type: string
          example: 5a6b7f5dw45c1c-403e-ad56-202fbc312414
        bankName:
          type: string
          example: Sparkasse
        bic:
          type: string
          example: DEUTDEFF
        code:
          type: string
          example: '50010517'
        iban:
          type: string
          example: DE89370400440532013000
        number:
          type: number
          example: 5407324931
    ContactCommonDto:
      type: object
      properties:
        id:
          type: string
          example: eaa28f49-6028-4b6e-bb12-d8f6278073fc
        accountNumber:
          type: number
          example: 70000
        name:
          type: string
          example: John Doe
    BookingProposalLineItemRequestAsyncDto:
      type: object
      properties:
        id:
          type: string
          example: Item-112233
        account:
          $ref: '#/components/schemas/AccountCommonDto'
        description:
          type: string
          example: Item A
        dimensions:
          type: array
          items:
            $ref: '#/components/schemas/DimensionCommonDto'
        discountAmount:
          description: Discount applied to the line item, in the document currency.
          type: number
          example: 100
        discountAmount2:
          type: number
          example: 50
        discountPercentage:
          type: number
          example: 20
        discountPercentage2:
          type: number
          example: 10
        taxCode:
          type: string
          example: '9'
        taxRatePercentage:
          type: number
          example: 19
        totalGrossAmount:
          description: Gross amount of the line item — net plus tax (including VAT).
          type: number
          example: 500
        totalNetAmount:
          description: Net amount of the line item — before tax (excluding VAT).
          type: number
          example: 450
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
          example: SERVICE
    MetaResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            type: string
            example: Field not used by target system
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
        partialErrors:
          type: array
          description: >-
            Secondary operations that failed after the main operation succeeded.
            See [Partial Errors](/guides/partial-errors).
          items:
            type: object
            properties:
              code:
                type: string
                example: FILE_UPLOAD_FAILED
              message:
                type: string
                example: >-
                  Attachment invoice.pdf could not be uploaded to the target
                  system.
    AccountCommonDto:
      type: object
      properties:
        id:
          type: string
          example: db32-4f56-8a9b-1234567890ab
        code:
          type: string
          example: '200'
        name:
          type: string
          example: EXPENSE
        number:
          type: number
          example: 4900
    DimensionCommonDto:
      type: object
      properties:
        id:
          type: string
          example: eaa28f49-6028-4b6e-bb12-d8f6278073fc
        code:
          type: string
          example: CS1
        dimension:
          type: string
          example: CostCenter
        name:
          type: string
          example: Jerde, Greenfelder and Jacobi
    PaginationResponse:
      type: object
      properties:
        total:
          type: number
          example: 125
        perPage:
          type: number
          example: 50
        currentPage:
          type: number
          example: 1
        totalPages:
          type: number
          example: 3

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.