Xentral SalesOrder API

SalesOrder

OpenAPI Specification

xentral-salesorder-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account SalesOrder API
  version: v0.1
  description: Xentral is an ERP platform.
  contact:
    name: Xentral
    url: https://xentral.com
    email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
  description: Your Xentral Instance
  variables:
    xentralId:
      default: xentral
- url: https://{domain}
  description: Xentral at a custom domain
  variables:
    domain:
      default: xentral.com
security:
- BearerAuth: []
tags:
- name: SalesOrder
  description: SalesOrder
paths:
  /api/v3/salesOrders:
    get:
      tags:
      - SalesOrder
      summary: List sales orders V3
      description: 'This endpoint requires the following scopes: `salesOrder:read`.


        Paginated list of Sales Orders'
      operationId: GET::api-v3-salesorders
      parameters:
      - name: filter
        in: query
        description: "The filter parameter is used to filter the results of the given endpoint. \n\n\n**Supported filter operators by key:** \n\n`id`: *equals*, *notEquals*, *in*, *notIn* \n\n`documentNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentDate`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`writeProtection`: *equals*, *notEquals* \n\n`address.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`project.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`tags`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`tags.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`language`: *equals*, *notEquals*, *in*, *notIn* \n\n`bodyIntroduction`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`bodyOutroduction`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`project.abbreviation`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`internalDesignation`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`vatId`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deliveryTerms`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`internalComment`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`isDocumentSent`: *equals*, *notEquals* \n\n`editor.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`createdAt`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals*, *isNull*, *isNotNull* \n\n`updatedAt`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals*, *isNull*, *isNotNull* \n\n`documentAddress.name`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.title`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.contactPerson`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.department`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.subDepartment`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.addressSupplement`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.street`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.zipCode`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.city`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.state`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.country`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.gln`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.email`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.phone`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`documentAddress.fax`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`financials.paymentMethod.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`financials.tax.disableTaxNotice`: *equals*, *notEquals* \n\n`financials.tax.taxRates.standard`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`financials.tax.taxRates.reduced`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`financials.tax.taxation`: *equals*, *notEquals*, *in*, *notIn* \n\n`totals.net.amount`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`totals.net.currency`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`financials.paymentTerms.paymentTargetDays`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`financials.paymentTerms.paymentTargetDiscount`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`financials.paymentTerms.paymentTargetDiscountDays`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`totals.gross.amount`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`trafficLights.stock`: *equals*, *notEquals* \n\n`trafficLights.vat`: *equals*, *notEquals* \n\n`trafficLights.cashOnDelivery`: *equals*, *notEquals* \n\n`trafficLights.autoShipping`: *equals*, *notEquals* \n\n`trafficLights.customerCheck`: *equals*, *notEquals* \n\n`trafficLights.dateOfDelivery`: *equals*, *notEquals* \n\n`trafficLights.creditLimit`: *equals*, *notEquals* \n\n`trafficLights.deliveryBlock`: *equals*, *notEquals* \n\n`trafficLights.addressValidation`: *equals*, *notEquals* \n\n`trafficLights.production`: *equals*, *notEquals*, *in*, *notIn* \n\n`trafficLights.payment`: *equals*, *notEquals*, *in*, *notIn* \n\n`trafficLights.stockAvailableOpenSupply`: *equals*, *notEquals*, *in*, *notIn* \n\n`trafficLights.stockAvailableFifo`: *equals*, *notEquals*, *in*, *notIn* \n\n`status`: *equals*, *notEquals*, *in*, *notIn* \n\n`sales.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`costCenter`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`customerNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`supplierNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.name`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.title`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.contactPerson`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.department`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.subDepartment`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.addressSupplement`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.street`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.zipCode`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.city`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.state`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.country`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.gln`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.email`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.phone`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`deviatingDeliveryAddress.fax`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`isSalesOrderToSupplier`: *equals*, *notEquals* \n\n`externalOrderNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`customerOrderNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`transactionNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`externalOrderId`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`masterReferenceNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`desiredDeliveryDate`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`desiredDeliveryDateAsCalendarWeek`: *equals*, *notEquals* \n\n`earliestFulfillmentDate`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`reservationDate`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`preferredWarehouse.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`commissionConsignmentWarehouse.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`storageCountry`: *equals*, *notEquals*, *in*, *notIn* \n\n`useAlternativeDocumentTitle`: *equals*, *notEquals* \n\n`autoDispatch`: *equals*, *notEquals* \n\n`vatChecked`: *equals*, *notEquals* \n\n`createDocuments`: *equals*, *notEquals*, *in*, *notIn* \n\n`manualPaymentApproval`: *equals*, *notEquals* \n\n`manualShippingCostApproval`: *equals*, *notEquals* \n\n`manualDeliveryBlockApproval`: *equals*, *notEquals* \n\n`fastLane`: *equals*, *notEquals* \n\n`disableCancellationEmail`: *equals*, *notEquals* \n\n`disableTrackingEmail`: *equals*, *notEquals* \n\n`disablePaymentEmail`: *equals*, *notEquals* \n\n`directDebitDate`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`shippingMethod.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`lineItems.externalNumber`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`hasInvoice`: *equals*, *notEquals*"
        required: false
        style: deepObject
        schema:
          type: array
          items:
            properties:
              key:
                type: string
                enum:
                - id
                - documentNumber
                - documentDate
                - writeProtection
                - address.id
                - project.id
                - tags
                - tags.id
                - language
                - bodyIntroduction
                - bodyOutroduction
                - project.abbreviation
                - internalDesignation
                - vatId
                - deliveryTerms
                - internalComment
                - isDocumentSent
                - editor.id
                - createdAt
                - updatedAt
                - documentAddress.name
                - documentAddress.title
                - documentAddress.contactPerson
                - documentAddress.department
                - documentAddress.subDepartment
                - documentAddress.addressSupplement
                - documentAddress.street
                - documentAddress.zipCode
                - documentAddress.city
                - documentAddress.state
                - documentAddress.country
                - documentAddress.gln
                - documentAddress.email
                - documentAddress.phone
                - documentAddress.fax
                - financials.paymentMethod.id
                - financials.tax.disableTaxNotice
                - financials.tax.taxRates.standard
                - financials.tax.taxRates.reduced
                - financials.tax.taxation
                - totals.net.amount
                - totals.net.currency
                - financials.paymentTerms.paymentTargetDays
                - financials.paymentTerms.paymentTargetDiscount
                - financials.paymentTerms.paymentTargetDiscountDays
                - totals.gross.amount
                - trafficLights.stock
                - trafficLights.vat
                - trafficLights.cashOnDelivery
                - trafficLights.autoShipping
                - trafficLights.customerCheck
                - trafficLights.dateOfDelivery
                - trafficLights.creditLimit
                - trafficLights.deliveryBlock
                - trafficLights.addressValidation
                - trafficLights.production
                - trafficLights.payment
                - trafficLights.stockAvailableOpenSupply
                - trafficLights.stockAvailableFifo
                - status
                - sales.id
                - costCenter
                - customerNumber
                - supplierNumber
                - deviatingDeliveryAddress.name
                - deviatingDeliveryAddress.title
                - deviatingDeliveryAddress.contactPerson
                - deviatingDeliveryAddress.department
                - deviatingDeliveryAddress.subDepartment
                - deviatingDeliveryAddress.addressSupplement
                - deviatingDeliveryAddress.street
                - deviatingDeliveryAddress.zipCode
                - deviatingDeliveryAddress.city
                - deviatingDeliveryAddress.state
                - deviatingDeliveryAddress.country
                - deviatingDeliveryAddress.gln
                - deviatingDeliveryAddress.email
                - deviatingDeliveryAddress.phone
                - deviatingDeliveryAddress.fax
                - isSalesOrderToSupplier
                - externalOrderNumber
                - customerOrderNumber
                - transactionNumber
                - externalOrderId
                - masterReferenceNumber
                - desiredDeliveryDate
                - desiredDeliveryDateAsCalendarWeek
                - earliestFulfillmentDate
                - reservationDate
                - preferredWarehouse.id
                - commissionConsignmentWarehouse.id
                - storageCountry
                - useAlternativeDocumentTitle
                - autoDispatch
                - vatChecked
                - createDocuments
                - manualPaymentApproval
                - manualShippingCostApproval
                - manualDeliveryBlockApproval
                - fastLane
                - disableCancellationEmail
                - disableTrackingEmail
                - disablePaymentEmail
                - directDebitDate
                - shippingMethod.id
                - lineItems.externalNumber
                - hasInvoice
              op:
                description: operator
                type: string
                enum:
                - equals
                - notEquals
                - in
                - notIn
                - contains
                - notContains
                - startsWith
                - endsWith
                - lessThan
                - lessThanOrEquals
                - greaterThan
                - greaterThanOrEquals
                - isNull
                - isNotNull
              value:
                description: The property value.
                oneOf:
                - title: String
                  type: string
                - title: Array
                  type: array
                  items:
                    type: string
            type: object
            additionalProperties: false
      - name: sort
        in: query
        description: Sort via id, -id, documentNumber, -documentNumber, documentDate, -documentDate, customerNumber, -customerNumber, documentAddress.country, -documentAddress.country, project.id, -project.id, createdAt, -createdAt, updatedAt and -updatedAt. Default sort is id
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            enum:
            - id
            - -id
            - documentNumber
            - -documentNumber
            - documentDate
            - -documentDate
            - customerNumber
            - -customerNumber
            - documentAddress.country
            - -documentAddress.country
            - project.id
            - -project.id
            - createdAt
            - -createdAt
            - updatedAt
            - -updatedAt
      - name: search
        in: query
        description: Full-text-style search across predefined columns.
        required: false
        schema:
          type: string
      - name: include
        in: query
        required: false
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - lineItems
            - project
            - address
            - lineItems.product
            - tags
            - activity
            - customFields
            - lineItems.customFields
      - name: x-pagination
        in: header
        description: 'Controls the pagination format. Available types: simple, table, cursor. Defaults to ''simple'' if not specified.'
        required: false
        schema:
          type: string
          enum:
          - simple
          - table
          - cursor
          example: simple
      - name: perPage
        in: query
        description: 'Number of items per page. Default: 15, Max: 1000'
        required: false
        schema:
          type: integer
          example: 15
      - name: page
        in: query
        description: Page number. Only used with simple and table pagination.
        required: false
        schema:
          type: integer
          example: 1
      - name: cursor
        in: query
        description: The cursor to use for the paginated call. Only used with cursor pagination. Not compatible with page parameter
        required: false
        schema:
          type: string
          example: eyJpZCI6MTUsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0
      responses:
        '200':
          description: Paginated list of Sales Orders
          content:
            application/json:
              schema:
                anyOf:
                - title: 'Paginated Response: simple'
                  properties:
                    data:
                      type: array
                      items:
                        description: Sales order document
                        type: object
                        allOf:
                        - properties:
                            id:
                              description: ID of the document
                              type: string
                              example: '1'
                            documentNumber:
                              description: Document number. For drafts, this will be null.
                              type:
                              - string
                              - 'null'
                              example: I-12343
                            documentDate:
                              description: Main date of the document.
                              type:
                              - string
                              - 'null'
                              format: date
                              example: '2023-10-01'
                            writeProtection:
                              description: Indicates if the document is write protected.
                              type: boolean
                              example: false
                            customerNumber:
                              description: Customer number of the document.
                              type:
                              - string
                              - 'null'
                              example: CUST-54321
                            address:
                              description: Address entity of the document. By default, only the ID is returned. To get the full Address object, use the `include` parameter.
                              anyOf:
                              - required:
                                - id
                                - createdAt
                                - updatedAt
                                properties:
                                  id:
                                    type: string
                                    example: '42'
                                  isDeleted:
                                    description: Flagged if the entry was deleted.
                                    type: boolean
                                    example: false
                                  createdAt:
                                    description: Creation timestamp
                                    type: string
                                    format: date-time
                                    example: '2025-03-15T09:27:00+01:00'
                                  updatedAt:
                                    description: Last update timestamp
                                    type: string
                                    format: date-time
                                    example: '2025-10-20T14:45:12+01:00'
                                type: object
                                additionalProperties: false
                              - properties:
                                  id:
                                    type: string
                                type: object
                              - type: 'null'
                            project:
                              description: Project entity of the document. By default, only the ID is returned. To get the full Project object, use the `include` parameter.
                              anyOf:
                              - required:
                                - id
                                - name
                                - abbreviation
                                properties:
                                  id:
                                    type: string
                                    example: '54'
                                  name:
                                    type: string
                                    example: Standard Project
                                  abbreviation:
                                    type: string
                                    example: STANDARD
                                type: object
                                additionalProperties: false
                              - properties:
                                  id:
                                    type: string
                                type: object
                              - type: 'null'
                            tags:
                              description: Tags assigned to the document. This property is only returned if the `tags` include is used.
                              type: array
                              items:
                                properties:
                                  id:
                                    description: ID of the tag
                                    type: string
                                    example: '4'
                                  title:
                                    description: Title of the tag
                                    type: string
                                    example: important
                                type: object
                            documentAddress:
                              description: The recipients postal address of the document. This is is usually the postal address of the document's address entitiy, (e.g. customer), or is populated based on the preceding document. As this address is persisted on the document level, it can however be modified independently, and does not reflect changes that occurred since the document was created.
                              required:
                              - name
                              properties:
                                name:
                                  description: 'Represents an address consisting of a physical address and contact information.

                                    It is used in various documents, such as invoices, delivery notes, etc.'
                                  type: string
                                  example: John
                                type:
                                  type:
                                  - string
                                  - 'null'
                                  enum:
                                  - mrs
                                  - mr
                                  - company
                                  - other
                                  example: mr
                                title:
                                  type:
                                  - string
                                  - 'null'
                                  example: Ms.
                                contactPerson:
                                  type:
                                  - string
                                  - 'null'
                                  example: Laura Schneider
                                department:
                                  type:
                                  - string
                                  - 'null'
                                  example: Research & Development
                                subDepartment:
                                  type:
                                  - string
                                  - 'null'
                                  example: AI Lab
                                addressSupplement:
                                  type:
                                  - string
                                  - 'null'
                                  example: Gebäude B, 4. Etage
                                street:
                                  type:
                                  - string
                                  - 'null'
                                  example: Fuggerstraße 11
                                zipCode:
                                  type:
                                  - string
                                  - 'null'
                                  example: '86150'
                                city:
                                  type:
                                  - string
                                  - 'null'
                                  example: Augsburg
                                state:
                                  type:
                                  - string
                                  - 'null'
                                  example: BY
                                country:
                                  type:
                                  - string
                                  - 'null'
                                  example: DE
                                salutation:
                                  type:
                                  - string
                                  - 'null'
                                  example: Sehr geehrte Damen und Herren
                                gln:
                                  type:
                                  - string
                                  - 'null'
                                  example: '1234567890123'
                                email:
                                  type:
                                  - string
                                  - 'null'
                                  example: laura.schneider@xentral.com
                                phone:
                                  type:
                                  - string
                                  - 'null'
                                  example: +1-234-567-8900
                                fax:
                                  type:
                                  - string
                                  - 'null'
                                  example: +1-234-567-8901
                                mobile:
                                  type:
                                  - string
                                  - 'null'
                                  example: +1-234-567-8902
                              type: object
                              example:
                                name: John
                                type: mr
                                title: Ms.
                                contactPerson: Laura Schneider
                                department: Research & Development
                                subDepartment: CAI Lab
                                addressSupplement: Gebäude B, 4. Etage
                                street: Fuggerstraße 11
                                zipCode: '86150'
                                city: Augsburg
                                state: BY
                                country: DE
                                salutation: Sehr geehrte Damen und Herren
                                gln: '1234567890123'
                                email: alice@example.com
                                phone: +1-234-567-8900
                                fax: +1-234-567-8901
                                mobile: +1-234-567-8902
                              additionalProperties: false
                            internalDesignation:
                              description: Internal designation, might be displayed in the letterhead.
                              type:
                              - string
                              - 'null'
                              example: FB-3860-L
                            isDocumentSent:
                              description: Indicates if the document has been sent to the recipient.
                              type: boolean
                              example: false
                            language:
                              description: ISO 639-1 Language of the document.
                              type: string
                              example: de
                            bodyIntroduction:
                              description: Text displayed on the document before the line items.
                              type:
                              - string
                              - 'null'
                              example: Dear customer, we are pleased to send you the following invoice.
                            bodyOutroduction:
                              description: Text displayed on the document after the line items.
                              type:
                              - string
                              - 'null'
                              example: Thank you for your business.
                            vatId:
                              description: VAT ID of the document.
                              type:
                              - string
                              - 'null'
                              example: DE123456789
                            deliveryTerms:
                              description: Delivery terms of the document.
                              type:
                              - string
                              - 'null'
                              example: DDP
                            internalComment:
                              description: Internal comment, does not s

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