Visma Customer Invoice Drafts API

Draft invoices sent to customers before they are finalized and posted to the accounting system. Overview of Customer Invoice Functionality: [Customer Invoices](https://support.spiris.se/bokforing-fakturering-plus/en-se/content/online-help/sales-invoices.htm) ___ Available in any of the following variants: * Pro * Standard * Invoicing * Solo

Operations 6

GET /customerinvoicedrafts Get all customer invoice drafts #
POST /customerinvoicedrafts Create a single customer invoice draft #
GET /customerinvoicedrafts/{invoiceDraftId} Get a customer invoice draft by id #
PUT /customerinvoicedrafts/{customerInvoiceDraftId} Replace the data in a customer invoice draft #
DELETE /customerinvoicedrafts/{customerInvoiceDraftId} Delete a customer invoice draft #
POST /customerinvoicedrafts/{customerInvoiceDraftId}/convert Convert a CustomerInvoiceDraft to a CustomerInvoice #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/visma-customerinvoicedrafts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

visma-customerinvoicedrafts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bookkeeping & Invoicing/eAccounting API V2 Customer Invoice…
  description: 'Visit our complete Bookkeeping & Invoicing/eAccounting API docs for how to get started, information about authentication, error handling, query customization and more.


    ✉ API Support'
  version: v2
servers:
- url: https://eaccountingapi.vismaonline.com/v2/
tags:
- name: CustomerInvoiceDrafts
  description: 'Draft invoices sent to customers before they are finalized and posted to the accounting system.

    Overview of Customer Invoice Functionality: Customer Invoices


    ___


    Available in any of the following variants:

    * Pro

    * Standard

    * Invoicing

    * Solo'
paths:
  /customerinvoicedrafts:
    get:
      tags:
      - CustomerInvoiceDrafts
      summary: Get all customer invoice drafts
      description: 'Get all customer invoice drafts, or add query parameters to filter the results. The response will include a list of customer invoice drafts with their details, such as customer information, rows, totals and attachments.


        ___

        Requires any of the following scopes:

        * ea:sales

        * ea:sales_readonly'
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseOfCustomerInvoiceDraftApi'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: getCustomerinvoicedrafts
      x-operation-id-source: derived
    post:
      tags:
      - CustomerInvoiceDrafts
      summary: Create a single customer invoice draft
      description: 'Create a new customer invoice draft.


        ___

        Requires any of the following scopes:

        * ea:sales'
      parameters:
      - name: overrideCustomerIsPrivatePerson
        in: query
        description: True to override if the customer on the draft is a private individual
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInvoiceDraftApi'
      responses:
        '201':
          description: Customer invoice draft created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerInvoiceDraftApi'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: postCustomerinvoicedrafts
      x-operation-id-source: derived
  /customerinvoicedrafts/{invoiceDraftId}:
    get:
      tags:
      - CustomerInvoiceDrafts
      summary: Get a customer invoice draft by id
      description: 'Get a specific customer invoice draft by its unique identifier. The response will include the invoice draft details, such as customer information, rows, totals and attachments.


        ___

        Requires any of the following scopes:

        * ea:sales

        * ea:sales_readonly'
      parameters:
      - name: invoiceDraftId
        in: path
        description: Id of the draft
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerInvoiceDraftApi'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: getCustomerinvoicedraftsByInvoiceDraftId
      x-operation-id-source: derived
  /customerinvoicedrafts/{customerInvoiceDraftId}:
    put:
      tags:
      - CustomerInvoiceDrafts
      summary: Replace the data in a customer invoice draft
      description: 'Replace an existing customer invoice draft''s data with the provided new data. The draft must already exist in the system.


        ___

        Requires any of the following scopes:

        * ea:sales'
      parameters:
      - name: customerInvoiceDraftId
        in: path
        description: This is the id of the draft to update
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInvoiceDraftApi'
      responses:
        '200':
          description: Customer invoice draft updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerInvoiceDraftApi'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: putCustomerinvoicedraftsByCustomerInvoiceDraftId
      x-operation-id-source: derived
    delete:
      tags:
      - CustomerInvoiceDrafts
      summary: Delete a customer invoice draft
      description: 'Delete an existing customer invoice draft.


        ___

        Requires any of the following scopes:

        * ea:sales'
      parameters:
      - name: customerInvoiceDraftId
        in: path
        description: The id of the draft you want to delete
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Customer invoice draft deleted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: deleteCustomerinvoicedraftsByCustomerInvoiceDraftId
      x-operation-id-source: derived
  /customerinvoicedrafts/{customerInvoiceDraftId}/convert:
    post:
      tags:
      - CustomerInvoiceDrafts
      summary: Convert a CustomerInvoiceDraft to a CustomerInvoice
      description: 'Convert an existing customer invoice draft to a customer invoice.


        ___

        Requires any of the following scopes:

        * ea:sales'
      parameters:
      - name: customerInvoiceDraftId
        in: path
        description: Id of the draft you want to convert
        required: true
        schema:
          type: string
          format: uuid
      - name: keepOriginalDraftDate
        in: query
        description: Set to true so invoice date matches draft date
        schema:
          type: boolean
          default: false
      - name: overrideCompanyKeepOriginalDraftDate
        in: query
        description: Set to true to override company settings for draft date
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInvoiceDraftValidationApi'
      responses:
        '201':
          description: Customer invoice created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerInvoiceApi'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonExtendedBadRequest'
      operationId: postCustomerinvoicedraftsByCustomerInvoiceDraftIdConvert
      x-operation-id-source: derived
components:
  schemas:
    SalesDocumentRotRutReductionPersonApi:
      type: object
      properties:
        Id:
          type: string
          description: Unique Id provided by the system
          format: uuid
          readOnly: true
        Ssn:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Social security number
        Amount:
          type: number
          format: double
      additionalProperties: false
    PaginatedResponseOfCustomerInvoiceDraftApi:
      required:
      - Data
      - Meta
      type: object
      properties:
        Meta:
          $ref: '#/components/schemas/CommonPaginationMetadata'
        Data:
          type: array
          items:
            $ref: '#/components/schemas/CustomerInvoiceDraftApi'
      additionalProperties: false
    CreditedByApi:
      type: object
      properties:
        CreditInvoiceId:
          type: string
          description: The Id of the customer invoice
          format: uuid
      additionalProperties: false
    CommonPaginationMetadata:
      required:
      - CurrentPage
      - PageSize
      - ServerTimeUtc
      - TotalNumberOfPages
      - TotalNumberOfResults
      type: object
      properties:
        CurrentPage:
          type: integer
          description: The current page number
          format: int32
        PageSize:
          type: integer
          description: The number of results per page
          format: int32
        TotalNumberOfPages:
          type: integer
          description: The total number of pages available
          format: int32
        TotalNumberOfResults:
          type: integer
          description: The total number of results available for the query
          format: int32
        ServerTimeUtc:
          type: string
          description: <strong>Possible values:</strong><br/>2017-07-21T17:32:28Z<br/><br/>The date-time notation as defined by RFC 3339, section 5.6.
          format: date-time
      additionalProperties: false
    CommonError:
      type: object
      properties:
        Field:
          type:
          - string
          - 'null'
        ErrorCode:
          type:
          - string
          - 'null'
        Message:
          type:
          - string
          - 'null'
        Key:
          type:
          - string
          - 'null'
      additionalProperties: false
    CustomerInvoiceDraftValidationApi:
      type: object
      properties:
        TotalAmountInvoiceCurrency:
          type:
          - number
          - 'null'
          description: Invoice total amount. Should be negative when credit invoice
          format: double
        TotalVatAmountInvoiceCurrency:
          type:
          - number
          - 'null'
          description: Invoice VAT amount. Should be negative when credit invoice
          format: double
        TotalRoundingsInvoiceCurrency:
          type:
          - number
          - 'null'
          description: Invoice Roundings amount. Can be both positive and negative depending on the rounding.
          format: double
        Rows:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomerInvoiceDraftValidationRowApi'
          description: A set of invoice rows to validate. We match upon the line number.
      additionalProperties: false
    CustomerInvoiceVatApi:
      type: object
      properties:
        AmountInvoiceCurrency:
          type: number
          format: double
          readOnly: true
        VatAmountInvoiceCurrency:
          type: number
          format: double
          readOnly: true
        VatPercent:
          type: number
          format: double
          readOnly: true
      additionalProperties: false
    CustomerInvoiceDraftApi:
      required:
      - CustomerId
      - EuThirdParty
      - RotReducedInvoicingType
      type: object
      properties:
        Id:
          type: string
          description: Unique Id provided by the system
          format: uuid
          readOnly: true
        CustomerId:
          type: string
          description: 'Source: Get from /v2/customers'
          format: uuid
        CreatedUtc:
          type:
          - string
          - 'null'
          description: Is automatically set
          format: date-time
          readOnly: true
        IsCreditInvoice:
          type: boolean
        RotReducedInvoicingType:
          enum:
          - 0
          - 1
          - 2
          type: integer
          format: int32
        RotReducedInvoicingPropertyName:
          maxLength: 40
          minLength: 0
          type:
          - string
          - 'null'
        RotReducedInvoicingOrgNumber:
          maxLength: 11
          minLength: 0
          type:
          - string
          - 'null'
        MaxAllowedTaxReductionAmount:
          type: number
          description: Maximum allowed tax reduction amount
          format: double
          readOnly: true
        RotReducedInvoicingAmount:
          type: number
          description: 'Format: 2 decimals.'
          format: double
        RotReducedInvoicingAutomaticDistribution:
          type: boolean
        RotPropertyType:
          type:
          - integer
          - 'null'
          description: <strong>Possible values:</strong><br/>1 = Apartment,<br/>2 = Property<br/><br/>Leave blank or set to null if you do not intend to use ROT or Green Technology functionality.
          format: int32
        HouseWorkOtherCosts:
          type:
          - number
          - 'null'
          format: double
        Rows:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomerInvoiceDraftRowApi'
        Persons:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/SalesDocumentRotRutReductionPersonApi'
        YourReference:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        OurReference:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        BuyersOrderReference:
          maxLength: 35
          minLength: 0
          type:
          - string
          - 'null'
          description: Can be null or empty
        ElectronicReference:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
          description: Set this if you later intend to send the invoice electronically. Can only be set for non-private individuals
        SubscriptionNumber:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        ContractNumber:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        InvoiceCustomerName:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Value is automatically set up depending on the selected customer's properties
          readOnly: true
        InvoiceAddress1:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Sending a null value will make the draft use the value on the customer
        InvoiceAddress2:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Sending a null value will make the draft use the value on the customer
        InvoicePostalCode:
          maxLength: 10
          minLength: 0
          type:
          - string
          - 'null'
          readOnly: true
        InvoiceCity:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          readOnly: true
        InvoiceCountryCode:
          maxLength: 2
          minLength: 0
          type:
          - string
          - 'null'
          readOnly: true
        InvoiceCurrencyCode:
          type:
          - string
          - 'null'
          readOnly: true
        DeliveryCustomerName:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryAddress1:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryAddress2:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryPostalCode:
          maxLength: 10
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryCity:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryCountryCode:
          maxLength: 2
          minLength: 0
          type:
          - string
          - 'null'
          description: Set a value if you want to override the existing property value taken from the customer.
        DeliveryMethodName:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
        DeliveryTermName:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
        TermsOfPaymentId:
          type:
          - string
          - 'null'
          description: Specify a different terms of payment for the invoice. If not filled customer's terms of payment will be used
          format: uuid
        DeliveryMethodCode:
          maxLength: 20
          minLength: 0
          type:
          - string
          - 'null'
        DeliveryTermCode:
          maxLength: 20
          minLength: 0
          type:
          - string
          - 'null'
        EuThirdParty:
          type: boolean
        CustomerIsPrivatePerson:
          type: boolean
          readOnly: true
        ReverseChargeOnConstructionServices:
          type: boolean
          readOnly: true
        SalesDocumentAttachments:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          readOnly: true
        MessageThreads:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          description: Fetch messages via GET /v2/messagethreads/{messageThreadId}
          readOnly: true
        Notes:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          description: Fetch notes via GET /v2/notes/{noteId}
          readOnly: true
        InvoiceDate:
          type:
          - string
          - 'null'
          format: date-time
        DueDate:
          type:
          - string
          - 'null'
          description: Due date of the customer invoice draft
          format: date-time
        DeliveryDate:
          type:
          - string
          - 'null'
          format: date-time
        TotalAmount:
          type: number
          format: double
          readOnly: true
        TotalVatAmount:
          type: number
          format: double
          readOnly: true
        TotalRoundings:
          type: number
          format: double
          readOnly: true
        TotalAmountBaseCurrency:
          type: number
          format: double
          readOnly: true
        TotalVatAmountBaseCurrency:
          type: number
          format: double
          readOnly: true
        CustomerNumber:
          maxLength: 16
          minLength: 0
          type:
          - string
          - 'null'
          readOnly: true
        CustomerName:
          type:
          - string
          - 'null'
          description: Customer's actual name
          readOnly: true
        IncludesVat:
          type: boolean
          description: <strong>Possible values:</strong><br/>True = Company settings checkbox 'ShowPricesExclVatPC' is checked and customer type is 'Private'<br/>False = Otherwise
          readOnly: true
        ReplaceUnitPriceWhenZero:
          type: boolean
          description: <strong>Possible values:</strong><br/>True = Replaces row unit prices that are equal to zero with article's unit price<br/>False = Always uses the value on the row
        UsesGreenTechnology:
          type: boolean
          description: <strong>Possible values:</strong><br/>True = Customer invoice draft benefits from deduction on Green Technology and must have RotReducedInvoicingType set to normal<br/>False = Customer invoice draft does not use Green Technology deduction
        ContributionMargin:
          $ref: '#/components/schemas/ContributionMarginApi'
        IsDirectDebit:
          type:
          - boolean
          - 'null'
          description: Indicate whether direct debit should be applied, based on IsDirectDebitEnabled from customer settings
        BackgroundId:
          type:
          - string
          - 'null'
          description: Identifier for the background image or template used on the PDF printout.
          format: uuid
      additionalProperties: false
    CustomerInvoiceApi:
      required:
      - CustomerId
      - EuThirdParty
      - RotReducedInvoicingType
      - Rows
      type: object
      properties:
        Id:
          type: string
          description: Unique Id provided by the system
          format: uuid
          readOnly: true
        EuThirdParty:
          type: boolean
          description: Default is false. True only if EU intermediary, VAT triangulation rules apply. Only if EU company is invoicing to a company from a different EU country, may set to True if desired.
        IsCreditInvoice:
          type: boolean
        CurrencyCode:
          type:
          - string
          - 'null'
          readOnly: true
        CurrencyRate:
          type:
          - number
          - 'null'
          description: 'Default: Automatic calculation of the currency rate. Enter this value to provide a custom rate'
          format: double
        CreatedByUserId:
          type:
          - string
          - 'null'
          format: uuid
          readOnly: true
        TotalAmount:
          type: number
          description: Total amount on this invoice expressed in base currency
          format: double
          readOnly: true
        TotalVatAmount:
          type: number
          description: Total VAT amount on this invoice expressed in base currency
          format: double
          readOnly: true
        TotalRoundings:
          type: number
          description: Total roundings amount on this invoice expressed in base currency
          format: double
          readOnly: true
        TotalAmountInvoiceCurrency:
          type: number
          description: Total amount on this invoice expressed in the invoice currecy
          format: double
          readOnly: true
        TotalVatAmountInvoiceCurrency:
          type: number
          description: Total VAT amount on this invoice expressed in the invoice currency
          format: double
          readOnly: true
        SetOffAmountInvoiceCurrency:
          type: number
          description: Total credited amount on this invoice expressed in the invoice currency
          format: double
          readOnly: true
        CustomerId:
          type: string
          format: uuid
        Rows:
          type: array
          items:
            $ref: '#/components/schemas/CustomerInvoiceRowApi'
        VatSpecification:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomerInvoiceVatApi'
          description: Contains a summary of amounts for each VAT rate
          readOnly: true
        InvoiceDate:
          type:
          - string
          - 'null'
          format: date-time
        DueDate:
          type:
          - string
          - 'null'
          format: date-time
        DeliveryDate:
          type:
          - string
          - 'null'
          format: date-time
        RotReducedInvoicingType:
          maximum: 2
          minimum: 0
          type: integer
          description: <strong>Possible values:</strong><br/>0 = Normal,<br/>1 = Rot,<br/>2 = Rut
          format: int32
        MaxAllowedTaxReductionAmount:
          type: number
          description: 'Default: maximum allowed tax reduction amount'
          format: double
          readOnly: true
        RotReducedInvoicingAmount:
          type:
          - number
          - 'null'
          description: Default is automatic tax reduction calculation. Used for the manual input of the deducted tax reduction
          format: double
        RotReducedInvoicingPercent:
          type: number
          description: 'Format: 4 decimals'
          format: double
          readOnly: true
        RotReducedInvoicingPropertyName:
          type:
          - string
          - 'null'
          description: Used for providing a custom name. Is required when RotPropertyType or UsesGreenTechnology is set
        RotReducedInvoicingOrgNumber:
          maxLength: 11
          minLength: 0
          type:
          - string
          - 'null'
        Persons:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/SalesDocumentRotRutReductionPersonApi'
          description: 'Purpose: Required for ROT, RUT or Green Technology invoices only'
        RotReducedInvoicingAutomaticDistribution:
          type: boolean
          readOnly: true
        ElectronicReference:
          type:
          - string
          - 'null'
          description: Optional reference for sending invoices electronically
        SubscriptionNumber:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        ContractNumber:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        ElectronicAddress:
          type:
          - string
          - 'null'
          description: Electronic address for sending invoices electronically
          readOnly: true
        EdiServiceDelivererId:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
        OurReference:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        YourReference:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
        BuyersOrderReference:
          maxLength: 35
          minLength: 0
          type:
          - string
          - 'null'
          description: Used when sending electronic invoices. Can be null or empty
        InvoiceCustomerName:
          type:
          - string
          - 'null'
          readOnly: true
        InvoiceAddress1:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: If the value is null it will be filled with the value from the customer
        InvoiceAddress2:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: If the value is null it will be filled with the value from the customer
        InvoicePostalCode:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Default value is the value from the selected customer
        InvoiceCity:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Default value is the value from the selected customer
        InvoiceCountryCode:
          maxLength: 2
          minLength: 0
          type:
          - string
          - 'null'
          description: Default value is the value from the selected customer
        DeliveryCustomerName:
          maxLength: 100
          minLength: 0
          type:
          - string
          - 'null'
          description: Takes the value from the selected customer
        DeliveryAddress1:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Takes the value from the selected customer
        DeliveryAddress2:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Takes the value from the selected customer
        DeliveryPostalCode:
          maxLength: 10
          minLength: 0
          type:
          - string
          - 'null'
          description: Takes the value from the selected customer
        DeliveryCity:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Takes the value from the selected customer
        DeliveryCountryCode:
          maxLength: 2
          minLength: 0
          type:
          - string
          - 'null'
        DeliveryMethodName:
          type:
          - string
          - 'null'
          readOnly: true
        DeliveryTermName:
          type:
          - string
          - 'null'
          readOnly: true
        DeliveryMethodCode:
          type:
          - string
          - 'null'
          readOnly: true
        DeliveryTermCode:
          type:
          - string
          - 'null'
          readOnly: true
        CustomerIsPrivatePerson:
          type: boolean
          description: True if the customer of this invoice is a private individual, false otherwise
          readOnly: true
        TermsOfPaymentId:
          type: string
          description: Specify a different terms of payment for the invoice. If not filled customer's terms of payment will be used
          format: uuid
        CustomerEmail:
          type:
          - string
          - 'null'
          readOnly: true
        InvoiceNumber:
          type: integer
          format: int32
          readOnly: true
        CustomerNumber:
          type:
          - string
          - 'null'
          readOnly: true
        CustomerName:
          type:
          - string
          - 'null'
          readOnly: true
        PaymentReferenceNumber:
          type:
          - string
          - 'null'
          description: Empty if UsesPaymentReferenceNumber not activated on the company. Use /v2/companysettings
          readOnly: true
        RotPropertyType:
          maximum: 2
          minimum: 1
          type:
          - integer
          - 'null'
          description: <strong>Possible values:</strong><br/>1 = Apartment,<br/>2 = Property<br/><br/>Leave blank or set to null if you do not intend to use ROT or Green Technology functionality.
          format: int32
        SalesDocumentAttachments:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          description: Attachments for the customer invoice. Use POST /v2/salesdocumentattachments/customerinvoice to upload attachments.
          readOnly: true
        MessageThreads:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          description: Fetch messages via GET /v2/messagethreads/{messageThreadId}
          readOnly: true
        Notes:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          description: Fetch notes via GET /v2/notes/{noteId}
          readOnly: true
        HasAutoInvoiceError:
          type: boolean
          description: True if there was an error when trying to send the invoice via AutoInvoice, false otherwise
          readOnly: true
        IsNotDelivered:
          type: boolean
          description: True if sending by email has failed, false otherwise
          readOnly: true
        ReverseChargeOnConstructionServices:
          type: boolean
          description: True if this invoice contains reverse charge on construction services. False otherwise
          readOnly: true
        WorkHouseOtherCosts:
          type:
          - number
          - 'null'
          format: double
        RemainingAmount:
          type: number
          description: Remaining amount to be paid on the invoice expressed in base currency
          format: double
          readOnly: true
        Rem

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visma/refs/heads/main/openapi/visma-customerinvoicedrafts-api-openapi.yml