> ## 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.

# Create booking proposal

## Field support per integration

<AccordionGroup>
  <Accordion title="Business Central" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/businesscentral.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=9cdc50aa9f467133e9e9372eab83f38b" width="24" height="24" data-path="logo/businesscentral.svg">
    <Note>
      If you're not using the [Interactive Authentication Flow](/authentication#interactive-authentication-flow), make sure the query parameters `environmentName` and `companyId` are correctly populated.
      You can obtain these values by using the `GET Environments` and `GET Companies` endpoints available under the Authentication section.
    </Note>

    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="object" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate" type="string">
          The `bookingProposalDate` field represents the invoice date.

          For date format details visit the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the ID of the vendor associated with the booking proposal.

          You can obtain this value by using the `GET Suppliers` endpoint.

          Either `contactId` or `contactAccountNumber` should be provided to identify the vendor.
        </ResponseField>

        <ResponseField name="contactAccountNumber" type="number">
          The `contactAccountNumber` field represents the vendor number associated with the booking proposal.

          Either `contactId` or `contactAccountNumber` should be provided to identify the vendor.
        </ResponseField>

        <ResponseField name="currency" type="enum">
          The `currency` field supports **ISO 4217** (3-letter codes).

          For details visit the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="dueDate" type="string">
          The `dueDate` field represents the date by which the payment is expected.

          For date format details visit the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]">
          <Expandable title="properties">
            <ResponseField name="accountId" type="string">
              The `accountId` field specifies the ID of the general ledger account linked to the line item.

              You can obtain this value by using the `GET Accounts` endpoint.
            </ResponseField>

            <ResponseField name="description" type="string">
              The `description` field provides details about the specific line item.
            </ResponseField>

            <ResponseField name="dimensions" type="Dimension[]">
              <Expandable title="properties">
                <ResponseField name="dimension" type="string">
                  The `dimension` field specifies the category of the dimension associated with the line item.

                  Example: `ABTEILUNG`.
                </ResponseField>

                <ResponseField name="code" type="string">
                  The `code` field specifies the code of the sub-dimension associated with the line item.

                  Example: `PROD`.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="totalGrossAmount" type="number">
              The `totalGrossAmount` field represents the unit cost for the line item.

              Note: Quantity is fixed at 1 for each line item.
            </ResponseField>

            <ResponseField name="taxCode" type="string">
              The `taxCode` field represents the tax code associated with the line item.
            </ResponseField>

            <ResponseField name="discountAmount" type="number">
              The `discountAmount` field represents the discount amount applied to the line item.
            </ResponseField>

            <ResponseField name="discountPercentage" type="number">
              The `discountPercentage` field represents the discount percentage applied to the line item.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="number" type="string">
          The `number` field represents the vendor invoice number for the booking proposal.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`

      Note: Business Central booking proposals are created as purchase invoices, so only `BILL` type is supported.
    </ResponseField>
  </Accordion>

  <Accordion title="DATEV Unternehmen Online" icon="https://mintcdn.com/maesn/NQwZPkomn6wLid0x/logo/datev.svg?fit=max&auto=format&n=NQwZPkomn6wLid0x&q=85&s=5589154dcfa064e1d967a067e488896a" width="24" height="24" data-path="logo/datev.svg">
    <Note>
      This endpoint has been deprecated. Please use the [`Create Booking Proposal Async`](/api-reference/accounting-endpoints/bookingproposals/create-booking-proposal-async) endpoint.
    </Note>

    <Note>
      This endpoints is asynchronous. To check the status of the request, use the `GET asyncTask` endpoint.

      For more info about asynchronous tasks visit the [`Asynchronous Task`](/async-task) section.
    </Note>

    <Note>
      If you're not using the [Interactive Authentication Flow](/authentication#interactive-authentication-flow), make sure the query parameter `companyId` is accurately populated with the appropriate company ID. You can obtain this value by using the `GET Companies` endpoint available under the Authentication section.
    </Note>

    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="id" type="string">
          The `id` field represents the unique identifier of the booking proposal.
        </ResponseField>

        <Note>
          The `id` must be a valid UUID; otherwise, it will be ignored.

          This field is only relevant and used `when uploading files` with the booking proposal.
        </Note>

        <ResponseField name="addresses" type="Address[]">
          <Expandable title="properties">
            <ResponseField name="city" type="string">
              The `city` must not exceed 30 characters in length.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="bankAccountNumber" type="number">
          The `bankAccountNumber` field must be 1-10 digits long and includes only numbers.

          If `bankAccountNumber` is provided, then `bankCode` is required.

          Example: `532013000`
        </ResponseField>

        <ResponseField name="bankCode" type="string">
          The `bankCode` must respect the following pattern: `^([1-9]|[0-9]{2,10})$`

          If `bankCode` is provided, then `bankAccountNumber` is required.

          Example: `37040044`
        </ResponseField>

        <ResponseField name="bic" type="string">
          The `bic` field must respect the following pattern: `^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}[A-Z0-9]{0,3}$`.

          Example: `DEUTDEFF`.
        </ResponseField>

        <ResponseField name="bookingProposalDate" type="string" required>
          For date format details visits the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="contactAccountNumber" type="number">
          The `contactAccountNumber` field represents the account number of the contact associated with the booking proposal.

          It must be a valid number. The length must be equal to the account configured length + 1.

          It is the customer account number for `INVOICE` or the vendor account number for `BILL`.
        </ResponseField>

        <ResponseField name="contactName" type="string">
          The `contactName` field represents the name of the contact associated with the booking proposal.

          It cannot exceed 50 characters in length.
        </ResponseField>

        <ResponseField name="currency" type="enum" required>
          The `currency` field supports **ISO 4217** (3-letter codes).
          For details visits the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="deliveryDate " type="string">
          For date format details visits the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="discountPaymentDate" type="string">
          For date format details visits the [`Standardized Data`](/standardization) section.

          The `discountPaymentDate` field represents the date until which a discount (`discountAmount` and `discountPercentage` in line items) can be applied to the payment.

          If `discountPaymentDate` is provided, then `discountAmount` and `discountPercentage` are required for each line item.

          Its value must be earlier than the `dueDate` and later than the `bookingProposalDate`.
        </ResponseField>

        <ResponseField name="discountPaymentDate2" type="string">
          For date format details visits the [`Standardized Data`](/standardization) section.

          The `discountPaymentDate2` field represents the date until which a discount (`discountAmount2` and `discountPercentage2` in line items) can be applied to the payment.

          If provided, `discountPaymentDate`, `discountAmount`, `discountPercentage`, `discountAmount2` and `discountPercentage2` are required for each line item.

          Its value must be earlier than the `dueDate` and later than the `bookingProposalDate` and `discountPaymentDate`.
        </ResponseField>

        <ResponseField name="dueDate " type="string">
          For date format details visits the [`Standardized Data`](/standardization) section.

          The `dueDate` field represents the date by which the payment for the booking proposal is expected to be made.

          It is required when discount fields are provided. It must be after the `bookingProposalDate`.
        </ResponseField>

        <ResponseField name="iban" type="string">
          The `iban` field must respect the following pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$`.

          Example: `DE89370400440532013000`.
        </ResponseField>

        <ResponseField name="isPaymentOrder" type="boolean">
          The `isPaymentOrder` field determines whether a payment instruction (transfer for bills or direct debit for invoices) should
          be automatically created when the booking proposal is processed.

          It must be `false` if `paymentTermId` is equal to `9`.
        </ResponseField>

        <ResponseField name="ledgerName" type="string" required>
          The `ledgerName` field represents the name of the correct ledger folder where the data will be sent to.

          To get the correct name, you can use the  `GET Accounts` endpoint.
        </ResponseField>

        <Note>
          For `INVOICE` booking proposals, the `ledgerName` must be of type `ACCOUNT_RECEIVABLE`, and for `BILL` booking proposals, it must be of type `ACCOUNT_PAYABLE`.
        </Note>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Note>
            Depending on the Rechnungsdatenschnittstelle (invoice data interface) settings in DATEV Unternehmen Online, either a single booking proposal or one booking proposal per line item is created. Please check your configuration to ensure the desired behavior.
          </Note>

          <Expandable title="properties">
            <ResponseField name="accountName" type="string">
              The `accountName` field specifies the name of the general ledger account linked to the individual line item within the invoice or bill.

              It cannot exceed 40 characters in length.
            </ResponseField>

            <ResponseField name="accountNumber" type="number">
              The `accountNumber` field specifies the general ledger account linked to the individual line item within the invoice or bill.

              It must be a valid number. The length must be equal to the account configured length.
            </ResponseField>

            <ResponseField name="bookingTaxCode" type="string">
              The `bookingTaxCode` field represents the BU code associated with the line item.

              It must be max 4 characters long. Only numbers are allowed.
            </ResponseField>

            <ResponseField name="description" type="string">
              The `description` field provides details about the specific line item in the booking proposal.

              It cannot exceed 60 characters in length.
            </ResponseField>

            <ResponseField name="dimension1" type="string">
              The `dimension1` field represents the information for cost accounting (KOST1).

              It cannot exceed 36 characters in length. It must follow the pattern : `^([\S][\S ]{0,34}[\S]|[\S]{0,1})$`.

              Example: `Marketing`.
            </ResponseField>

            <ResponseField name="dimension2" type="string">
              The `dimension2` field represents the information for cost accounting (KOST2).

              It cannot exceed 36 characters in length. It must follow the pattern : `^([\S][\S ]{0,34}[\S]|[\S]{0,1})$`.

              Example: `IT department`.
            </ResponseField>

            <ResponseField name="discountAmount" type="number">
              The `discountAmount` field represents the fixed amount to be discounted if paid by the `discountPaymentDate`.

              It must be a positive number with up to 8 digits before the decimal point and exactly 2 digits after.

              It cannot exceed the line item's `totalGrossAmount`.
            </ResponseField>

            <ResponseField name="discountAmount2" type="number">
              The `discountAmount2` field represents the fixed amount to be discounted if paid by the `discountPaymentDate2`.

              It must be a positive number with up to 8 digits before the decimal point and exactly 2 digits after.

              It cannot exceed the line item's `totalGrossAmount` and the `discountAmount`.
            </ResponseField>

            <ResponseField name="discountPercentage" type="number">
              The `discountPercentage` field represents the percentage to be discounted if paid by the `discountPaymentDate`.

              It must be a positive number with up to 2 digits before the decimal point and up to 2 digits after.

              It cannot exceed 100%.
            </ResponseField>

            <ResponseField name="discountPercentage2" type="number">
              The `discountPercentage2` field represents the percentage to be discounted if paid by the `discountPaymentDate2`.

              It must be a positive number with up to 2 digits before the decimal point and up to 2 digits after.

              It must be less then the `discountPercentage`.
            </ResponseField>

            <ResponseField name="taxRatePercentage " type="number">
              The `taxRatePercentage` field represents the tax rate applied to the line item.

              It must be a positive number.
            </ResponseField>

            <ResponseField name="totalGrossAmount" type="number" required>
              The `totalGrossAmount` field represents the total gross amount for the specific line item.

              It must be a number with up to 10 digits before the decimal point and up to 2 digits after.

              It cannot be zero.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string">
          The `notes` field allows for additional information or comments related to the booking proposal.
          It cannot exceed 120 characters in length.
        </ResponseField>

        <ResponseField name="number" type="string" required>
          The `number` field represents the document number.

          It must match the pattern: `^[a-zA-Z0-9$%&*\+\-/]{0,36}$`.
        </ResponseField>

        <ResponseField name="orderId" type="string">
          The `orderId` field represents the order identifier associated with the booking proposal.

          It must match the pattern: `^[a-zA-Z0-9$%&*+\-./]{1,30}$`.
        </ResponseField>

        <ResponseField name="paidDate" type="string">
          For date format details visits the [`Standardized Data`](/standardization) section.
        </ResponseField>

        <ResponseField name="paymentTermsId" type="string">
          The `paymentTermsId` field represents the identifier of the payment term associated with the booking proposal.

          It is max 3 characters long. It must includes only numbers.

          If provided, the discount fields are not allowed.
        </ResponseField>

        <ResponseField name="totalGrossAmount" type="number" required>
          The `totalGrossAmount` field represents the total gross amount for the entire booking proposal.

          It cannot be zero and must equal the sum of the `totalGrossAmount` of all line items.
        </ResponseField>

        <ResponseField name="vatId" type="string">
          The `vatId` field represents the VAT identification number associated with the booking proposal.

          It must match pattern: `^[0-9a-zA-Z\. _]{1,15}$`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `INVOICE`, `BILL`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      The `files` array can be used to attach files to the booking proposal.

      <Note>
        The name of the uploaded files must include the file extension, for example `invoice.pdf`.
      </Note>

      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>

    <ResponseField name="folderManagement" type="FolderManagement">
      The `folderManagement` object defines the three-level folder structure for a booking proposal. If not provided, the default structure will be used.

      <Expandable title="properties">
        <ResponseField name="category" type="string" required>
          The `category` field represents the top-level folder in the folder structure.
        </ResponseField>

        <ResponseField name="folder" type="string" required>
          The `folder` field represents the second-level folder in the folder structure.
        </ResponseField>

        <ResponseField name="register" type="string" required>
          The `register` field represents the third-level folder in the folder structure.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Exact Online" icon="https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/exact.svg?fit=max&auto=format&n=gCd41Ws3USFubam4&q=85&s=afa1af7a261b22f843ac73ee60896ede" width="24" height="24" data-path="logo/exact.svg">
    <Note>
      If you're not using the [Interactive Authentication Flow](/authentication#interactive-authentication-flow), make sure the query parameter `companyId` is correctly populated.
      You can obtain this value by using the `GET Companies` endpoint available under the Authentication section.
    </Note>

    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate" type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` represents the contact associated with the booking proposal.
          If the `bookingType` is `BILL`, this must be the id of a supplier.
          If the booking type is `INVOICE`, this must be the id of a customer.
        </ResponseField>

        <ResponseField name="currency" type="enum">
          Available options (3-letter ISO 4217):
          `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTN`, `BWP`, `BYR`, `BZD`, `CAD`, `CDF`, `CHF`, `CLP`, `CNY`, `COP`, `CRC`, `CUC`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EEK`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GQE`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LTL`, `LVL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZM`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEB`, `VND`, `VUV`, `WST`, `XAF`, `XCD`, `XDR`, `XOF`, `XPF`, `YER`, `ZAR`, `ZMK`, `ZWR`
        </ResponseField>

        <ResponseField name="dueDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="journalCode" type="string" required />

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="string" required>
              The `accountId` field specifies the id of the general ledger account linked to the individual line item within the booking proposal.
            </ResponseField>

            <ResponseField name="description" type="string" />

            <ResponseField name="dimension1" type="string">
              The `dimension1` field represents the `name` of `CostCenter` category.
            </ResponseField>

            <ResponseField name="dimension2" type="string">
              The `dimension2` field represents the `name` of `CostUnit` category.
            </ResponseField>

            <ResponseField name="taxCode" type="string" />

            <Note>
              If the `taxCode` is not provided, it will be set to the default tax code for the account.
            </Note>

            <ResponseField name="taxRatePercentage" type="number" />

            <ResponseField name="totalNetAmount" type="number" />

            <Note>
              If the `taxCode` is provided and is of type INCLUSIVE, the `totalNetAmount` will be treated as a gross amount (i.e., including tax).
            </Note>
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="paymentTermsId" type="string">
          The `paymentTermsId` field represents the `code` of the payment term associated with the booking proposal.

          To get the correct `code`, you can use the  `GET PaymentTerms` endpoint.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `INVOICE`, `BILL`, `INVOICE_CREDIT_NOTE`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>

  <Accordion title="Lexware Office" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/lexoffice.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=efe4da1d7b59a552d1938ec981ccbc1e" width="24" height="24" data-path="logo/lexoffice.svg">
    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="deliveryDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <Note>
          It is only supported for booking proposals of type INVOICE.
        </Note>

        <ResponseField name="dueDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="string" required>
              The `accountId` field specifies the id of the posting category in Lexware that represents the general ledger account linked to the individual line item within the booking proposal.

              To get the correct `accountId`, you can use the `GET Accounts` endpoint.
            </ResponseField>

            <ResponseField name="taxRatePercentage " type="number" required />

            <ResponseField name="totalGrossAmount" type="number" required />
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="number" type="string" />

        <ResponseField name="totalGrossAmount" type="number" />
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`, `INVOICE`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>

  <Accordion title="Moneybird" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/moneybird.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=4cf7d956fec579e320389df5b2a6c828" width="24" height="24" data-path="logo/moneybird.svg">
    <Note>
      If you're not using the [Interactive Authentication Flow](/authentication#interactive-authentication-flow), make sure the query parameter `companyId` is correctly populated.
      You can obtain this value by using the `GET Companies` endpoint available under the Authentication section.
    </Note>

    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z

          <Note>
            It is required for booking proposals of type BILL.
          </Note>
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="dueDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z

          <Note>
            It is only supported for booking proposals of type BILL.
          </Note>
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="string">
              The `accountId` field specifies the id of ledger account linked to the individual line item within the booking proposal.

              To get the correct `accountId`, you can use the `GET Accounts` endpoint.
            </ResponseField>

            <ResponseField name="description" type="string" />

            <ResponseField name="taxCode" type="string">
              The `taxCode` field represents the tax code associated with the line item.

              To get the correct code, you can use the `GET TaxRates` endpoint.

              <Note>
                It is required for booking proposals of type BILL.
              </Note>
            </ResponseField>

            <ResponseField name="totalGrossAmount" type="number" />
          </Expandable>
        </ResponseField>

        <ResponseField name="number" type="string">
          The `number` field represents the reference number of the booking proposal.

          <Note>
            It is required for booking proposals of type BILL.
          </Note>
        </ResponseField>

        <ResponseField name="paymentTermsId" type="string">
          The `paymentTermsId` field represents the reference or description of the payment term associated with the booking proposal.

          <Note>
            It is only supported for booking proposals of type INVOICE
          </Note>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`, `INVOICE`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>

  <Accordion title="Sage Accounting" icon="https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/sageactive.svg?fit=max&auto=format&n=gCd41Ws3USFubam4&q=85&s=db4ef71b40820611bd17295476ff28f9" width="24" height="24" data-path="logo/sageactive.svg">
    <Note>
      This endpoint is available only for the following countries:
      Accounting Plus: Canada, United Kingdom, Ireland <br />
      Accounting Standard: United Kingdom, Ireland <br />
      Accounting Start: Canada, United Kingdom, Ireland
    </Note>

    <Note>
      When handling a new connection in your integration, it is advisable to first determine which subscription your customer is using to ensure compatibility. To do this, you can use the `GET Companies` call to retrieve all businesses available for the user. The user will then select one of these businesses.
      It is also a good practice to verify that the active property of the selected business is set to true before proceeding with the integration setup.
    </Note>

    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate " type="string" required>
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="dueDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z

          <Note>
            It is only supported higher subscription levels (Accounting Plus and Accounting Standard).
          </Note>
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="number" required>
              The `accountId` field specifies the general ledger account linked to the individual line item within the invoice or bill.
            </ResponseField>

            <ResponseField name="description" type="string" required />

            <ResponseField name="taxCode" type="string" required />

            <ResponseField name="totalGrossAmount" type="number" required />

            <ResponseField name="type" type="enum" required>
              Available options: `GOODS`, `SERVICES`
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="number" type="string" />

        <ResponseField name="paymentTermsId" type="string">
          The `paymentTermsId` field represents the reference or description of the payment term associated with the booking proposal.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `INVOICE`
    </ResponseField>
  </Accordion>

  <Accordion title="sevdesk" icon="https://mintcdn.com/maesn/gCd41Ws3USFubam4/logo/sevdesk.svg?fit=max&auto=format&n=gCd41Ws3USFubam4&q=85&s=2b266052b2531cf2995f78c2aecf6019" width="24" height="24" data-path="logo/sevdesk.svg">
    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="contactName" type="string">
          The `contactName` field represents the name of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="currency" type="enum">
          Available options (3-letter ISO 4217):
          `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTN`, `BWP`, `BYR`, `BZD`, `CAD`, `CDF`, `CHF`, `CLP`, `CNY`, `COP`, `CRC`, `CUC`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EEK`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GQE`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LTL`, `LVL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZM`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEB`, `VND`, `VUV`, `WST`, `XAF`, `XCD`, `XDR`, `XOF`, `XPF`, `YER`, `ZAR`, `ZMK`, `ZWR`
        </ResponseField>

        <ResponseField name="deliveryDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="dueDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountNumber" type="number" required>
              The `accountNumber` field specifies the general ledger account linked to the individual line item within the invoice or bill.
            </ResponseField>

            <ResponseField name="taxRatePercentage " type="number" required />

            <ResponseField name="totalGrossAmount" type="number" required>
              Either the `totalGrossAmount` or `totalNetAmount` field must be provided.
            </ResponseField>

            <ResponseField name="totalNetAmount" type="number" required>
              Either the `totalGrossAmount` or `totalNetAmount` field must be provided.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="paidDate" type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="status" type="enum">
          Available options : `DRAFT`, `OPEN`\
          A booking proposal must have status `OPEN` to be marked as paid via the `/payments` endpoint.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `INVOICE`, `BILL`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>

  <Accordion title="Snelstart" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/snelstart.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=a18e70fedba8b4166ced134d0ad1b8e3" width="24" height="24" data-path="logo/snelstart.svg">
    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate" type="string" required>
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          Id of the related contact. For invoice proposals, this is the customer id. For bill proposals, this is the supplier id.
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="string" required>
              The `accountId` field specifies the id of the general ledger account linked to the individual line item within the booking proposal.
            </ResponseField>

            <ResponseField name="description" type="string" />

            <ResponseField name="dimension1" type="string" />

            <ResponseField name="taxCode" type="string">
              Note that if the `taxCode` is provided, the `taxRatePercentage` must be provided too. <br />
            </ResponseField>

            <ResponseField name="taxRatePercentage" type="string">
              Note that if the `taxRatePercentage` is provided, the `taxCode` must be provided too.
            </ResponseField>

            <ResponseField name="totalNetAmount" type="number" required />
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="number" type="string" required />

        <ResponseField name="paymentTermsId" type="string">
          The number of days until the booking proposal is due.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`, `INVOICE`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>

  <Accordion title="Visma e-conomic" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/vismaeconomic.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=4b629e8bc1bfd12c3bedaaaf9cc03ef3" width="20" height="24" data-path="logo/vismaeconomic.svg">
    Supported Request Fields:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bookingProposalDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="currency" type="string" required />

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="journalCode" type="string" required />

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountId" type="string" required />

            <ResponseField name="taxCode" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="notes" type="string" />

        <ResponseField name="totalGrossAmount" type="number" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`, `INVOICE`
    </ResponseField>
  </Accordion>

  <Accordion title="Xero" icon="https://mintcdn.com/maesn/51AaCYhZi3VILsjj/logo/xero.svg?fit=max&auto=format&n=51AaCYhZi3VILsjj&q=85&s=4496b21aab750469b3d5e96a1588d9f0" width="45" height="46" data-path="logo/xero.svg">
    Supported Request Parameters:

    <ResponseField name="bookingProposal" type="string" required>
      <Expandable title="properties">
        <ResponseField name="bankAccountId" type="string" required>
          The `bankAccountId` field represents the id of the end user bank account associated with the booking proposal.

          To get the correct id, you can use the  `GET Accounts` endpoint. Only accounts of type `BANK` are accepted.
        </ResponseField>

        <ResponseField name="bookingProposalDate " type="string">
          ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
        </ResponseField>

        <ResponseField name="contactId" type="string" required>
          The `contactId` field represents the id of the contact associated with the booking proposal.
        </ResponseField>

        <ResponseField name="lineItems" type="BookingLineItem[]" required>
          <Expandable title="properties">
            <ResponseField name="accountCode" type="string" required>
              The `accountCode` field specifies the code of the general ledger account linked to the individual line item within the booking proposal.

              To get the correct code, you can use the  `GET Accounts` endpoint.
            </ResponseField>

            <ResponseField name="description" type="string" />

            <ResponseField name="totalGrossAmount" type="number" required />
          </Expandable>
        </ResponseField>

        <ResponseField name="number" type="string">
          The `number` field represents the reference number for the booking proposal transaction.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bookingType" type="BookingType" required>
      Available options: `BILL`, `INVOICE`
    </ResponseField>

    <ResponseField name="files" type="file[]">
      <Note>
        The file name must not exceed 255 characters in length.
      </Note>
    </ResponseField>
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /accounting/bookingProposals
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:
    post:
      tags:
        - accounting
      operationId: create BookingProposal
      parameters:
        - name: companyId
          required: false
          in: query
          schema:
            type: string
        - name: X-API-KEY
          description: API key
          in: header
          schema:
            type: string
            example: example value
          required: true
        - name: X-ACCOUNT-KEY
          description: Account key
          in: header
          schema:
            type: string
            example: example value
          required: true
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                bookingProposal:
                  $ref: '#/components/schemas/CreateBookingProposalRequestDto'
                bookingType:
                  type: string
                  enum:
                    - INVOICE
                    - BILL
                    - INVOICE_CREDIT_NOTE
                files:
                  type: array
                  items:
                    format: binary
                  description: Array of files to upload
                folderManagement:
                  $ref: '#/components/schemas/FolderManagementDto'
            example:
              bookingProposal:
                addresses:
                  - city: city
                bankAccountId: 5a6b7f5dw45c1c-403e-ad56-202fbc312414
                bankAccountNumber: 5407324931
                bankCode: '50010517'
                bic: DEUTDEFF
                bookingProposalDate: '2025-07-14T00:00:00Z'
                contactAccountNumber: 70000
                contactId: eaa28f49-6028-4b6e-bb12-d8f6278073fc
                contactName: John Doe
                currency: EUR
                deliveryDate: '2025-07-26T00:00:00Z'
                discountPaymentDate: '2025-07-16T00:00:00Z'
                discountPaymentDate2: '2025-07-18T00:00:00Z'
                dueDate: '2025-07-24T00:00:00Z'
                journalCode: '60'
                iban: DE43100500000920018963
                isPaymentOrder: true
                ledgerName: Payroll
                lineItems:
                  - accountCode: '200'
                    accountId: db32-4f56-8a9b-1234567890ab
                    accountName: EXPENSE
                    accountNumber: 4900
                    bookingTaxCode: '9'
                    description: Item A
                    dimension1: Marketing
                    dimension2: Service and Maintenance
                    dimensions:
                      - id: eaa28f49-6028-4b6e-bb12-d8f6278073fc
                        code: CS1
                        dimension: CostCenter
                        name: Jerde, Greenfelder and Jacobi
                    discountAmount: 100
                    discountAmount2: 50
                    discountPercentage: 20
                    discountPercentage2: 10
                    taxCode: '02'
                    taxRatePercentage: 19
                    totalGrossAmount: 500
                    totalNetAmount: 450
                    type: SERVICES
                notes: Bill for maintenance services
                number: '1233330'
                orderId: '3344566'
                paidDate: '2021-01-01T00:00:00Z'
                paymentTermsId: '03'
                status: DRAFT
                totalGrossAmount: 500
                vatId: DE987654321
              bookingType: INVOICE
              folderManagement:
                category: Accounting
                folder: Invoices
                register: 2025 January
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/BaseResponseDto'
                  - properties:
                      data:
                        $ref: '#/components/schemas/BookingProposalResponseDto'
components:
  schemas:
    CreateBookingProposalRequestDto:
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressBookingProposal'
        bankAccountId:
          type: string
          example: 5a6b7f5dw45c1c-403e-ad56-202fbc312414
        bankAccountNumber:
          type: number
          example: 5407324931
        bankCode:
          type: string
          example: '50010517'
        bic:
          type: string
          example: DEUTDEFF
        bookingProposalDate:
          type: string
          example: '2025-07-14T00:00:00Z'
        contactAccountNumber:
          type: number
          example: 70000
        contactId:
          type: string
          example: eaa28f49-6028-4b6e-bb12-d8f6278073fc
        contactName:
          type: string
          example: John Doe
        currency:
          type: string
          enum:
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BRL
            - BSD
            - BTN
            - BWP
            - BYR
            - BZD
            - CAD
            - CDF
            - CHF
            - CLP
            - CNY
            - COP
            - CRC
            - CUC
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EEK
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GQE
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LTL
            - LVL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRO
            - MUR
            - MVR
            - MWK
            - MXN
            - MYR
            - MZM
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - UYU
            - UZS
            - VEB
            - VND
            - VUV
            - WST
            - XAF
            - XCD
            - XDR
            - XOF
            - XPF
            - YER
            - ZAR
            - ZMK
            - ZWR
          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'
        journalCode:
          type: string
          example: '60'
        iban:
          type: string
          example: DE43100500000920018963
        isPaymentOrder:
          type: boolean
          example: 'true'
        ledgerName:
          type: string
          example: Payroll
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/BookingProposalLineItemRequest'
        notes:
          type: string
          example: Bill for maintenance services
        number:
          type: string
          example: '1233330'
        orderId:
          type: string
          example: '3344566'
        paidDate:
          type: string
          example: '2021-01-01T00:00:00Z'
        paymentTermsId:
          type: string
          example: '03'
        status:
          type: string
          enum:
            - DRAFT
            - OPEN
          example: DRAFT
        totalGrossAmount:
          type: number
          example: 500
        vatId:
          type: string
          example: DE987654321
    FolderManagementDto:
      type: object
      properties:
        category:
          type: string
          example: Accounting
        folder:
          type: string
          example: Invoices
        register:
          type: string
          example: 2025 January
    BaseResponseDto:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/MetaResponse'
        data:
          oneOf:
            - type: object
            - type: array
    BookingProposalResponseDto:
      type: object
      properties:
        id:
          type: string
          example: BP-12345
        'addresses ':
          type: array
          items:
            $ref: '#/components/schemas/AddressBookingProposal'
        bankAccountId:
          type: string
          example: 5a6b7f5dw45c1c-403e-ad56-202fbc312414
        bankAccountNumber:
          type: number
          example: 5407324931
        bankCode:
          type: string
          example: '50010517'
        bic:
          type: string
          example: DEUTDEFF
        bookingProposalDate:
          type: string
          example: '2025-07-14T00:00:00Z'
        bookingType:
          type: string
          enum:
            - INVOICE
            - BILL
            - CREDIT_CARD
            - EXPENSE
            - CREDIT_NOTE
            - BILL_CREDIT_NOTE
            - INVOICE_CREDIT_NOTE
            - DOWN_PAYMENT
            - OTHER
          example: INVOICE
        contactAccountNumber:
          type: number
          example: 70000
        contactId:
          type: string
          example: eaa28f49-6028-4b6e-bb12-d8f6278073fc
        'contactName ':
          type: string
          example: John Doe
        createdDate:
          type: string
          example: '2025-07-16T00:00:00Z'
        currency:
          type: string
          enum:
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BRL
            - BSD
            - BTN
            - BWP
            - BYR
            - BZD
            - CAD
            - CDF
            - CHF
            - CLP
            - CNY
            - COP
            - CRC
            - CUC
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EEK
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GQE
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LTL
            - LVL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRO
            - MUR
            - MVR
            - MWK
            - MXN
            - MYR
            - MZM
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - UYU
            - UZS
            - VEB
            - VND
            - VUV
            - WST
            - XAF
            - XCD
            - XDR
            - XOF
            - XPF
            - YER
            - ZAR
            - ZMK
            - ZWR
          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'
        files:
          type: array
          items:
            type: string
            example: file1.pdf
        journalCode:
          type: string
          example: '60'
        iban:
          type: string
          example: DE43100500000920018963
        isPaymentOrder:
          type: boolean
          example: 'true'
        ledgerName:
          type: string
          example: Payroll
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/BookingProposalLineItemResponse'
        notes:
          type: string
          example: Bill for maintenance services
        number:
          type: string
          example: '1233330'
        orderId:
          type: string
          example: '3344566'
        paidDate:
          type: string
          example: '2021-01-01T00:00:00Z'
        paymentTermsId:
          type: string
          example: '03'
        status:
          type: string
          enum:
            - DRAFT
            - SUBMITTED
            - OPEN
            - PAID
            - PARTIALLY_PAID
            - VOIDED
            - CANCELLED
            - OVERDUE
            - DISPUTED
          example: DRAFT
        taskId:
          type: string
          example: ADHUR74BCBSW8399DCN
        totalGrossAmount:
          type: number
          example: 500
        updatedDate:
          type: string
          example: '2025-07-16T00:00:00Z'
        vatId:
          type: string
          example: DE987654321
    AddressBookingProposal:
      type: object
      properties:
        city:
          type: string
          example: city
    BookingProposalLineItemRequest:
      type: object
      properties:
        accountCode:
          type: string
          example: '200'
        accountId:
          type: string
          example: db32-4f56-8a9b-1234567890ab
        accountName:
          type: string
          example: EXPENSE
        accountNumber:
          type: number
          example: 4900
        bookingTaxCode:
          type: string
          example: '9'
        description:
          type: string
          example: Item A
        dimension1:
          type: string
          example: Marketing
        dimension2:
          type: string
          example: Service and Maintenance
        dimensions:
          type: array
          items:
            $ref: '#/components/schemas/DimensionCommonDto'
        discountAmount:
          type: number
          example: 100
        discountAmount2:
          type: number
          example: 50
        discountPercentage:
          type: number
          example: 20
        discountPercentage2:
          type: number
          example: 10
        taxCode:
          type: string
          example: '02'
        taxRatePercentage:
          type: number
          example: 19
        totalGrossAmount:
          type: number
          example: 500
        totalNetAmount:
          type: number
          example: 450
        type:
          type: string
          enum:
            - GOODS
            - SERVICES
          example: SERVICES
    MetaResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            type: string
            example: Field not used by target system
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
    BookingProposalLineItemResponse:
      type: object
      properties:
        id:
          type: string
          example: Item-112233
        accountCode:
          type: string
          example: '200'
        accountId:
          type: string
          example: db32-4f56-8a9b-1234567890ab
        accountName:
          type: string
          example: EXPENSE
        accountNumber:
          type: number
          example: 4900
        bookingTaxCode:
          type: string
          example: '9'
        createdDate:
          type: string
          example: '2021-01-01T00:00:00Z'
        description:
          type: string
          example: Item A
        dimension1:
          type: string
          example: Marketing
        dimension2:
          type: string
          example: Service and Maintenance
        dimensions:
          type: array
          items:
            $ref: '#/components/schemas/DimensionCommonDto'
        discountAmount:
          type: number
          example: 100
        discountAmount2:
          type: number
          example: 50
        discountPercentage:
          type: number
          example: 20
        discountPercentage2:
          type: number
          example: 10
        taxCode:
          type: string
          example: '02'
        taxRatePercentage:
          type: number
          example: 19
        totalGrossAmount:
          type: number
          example: 500
        totalNetAmount:
          type: number
          example: 450
        type:
          type: string
          enum:
            - GOODS
            - SERVICES
          example: SERVICES
        updatedDate:
          type: string
          example: '2021-01-01T00:00:00Z'
    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

````