Xentral Project API

Project resource.

OpenAPI Specification

xentral-project-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account Project 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: Project
  description: Project resource.
paths:
  /api/v1/projects:
    get:
      tags:
      - Project
      operationId: Project.list
      summary: List projects
      description: Returns a collection of projects
      parameters:
      - in: query
        name: page
        required: false
        style: deepObject
        schema:
          type: object
          additionalProperties: false
          required:
          - number
          - size
          properties:
            number:
              type: string
              pattern: \d+
              description: Page number should be an integer greater than or equal to 1
            size:
              type: string
              pattern: \d+
              description: Page size should usually be an integer between 10 and 50.
      - name: filter
        in: query
        style: deepObject
        schema:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              key:
                type: string
                enum:
                - search
                - id
                - name
                - keyName
                - description
                - currency
                - normalTaxRate
                - reducedTaxRate
                - storageProcess
                - pickingProcess
              op:
                type: string
                enum:
                - equals
                - notEquals
                - in
                - notIn
                - exactlyIn
                - allIn
                - allNotIn
                - contains
                - notContains
                - startsWith
                - endsWith
                - greaterThan
                - lessThan
                - is
                - lessThanOrEquals
                - greaterThanOrEquals
              value:
                oneOf:
                - type: string
                  description: Used for the operations 'equals', 'notEquals', 'contains', 'notContains', 'startsWith', 'endsWith' and 'is'.
                  title: String
                - type: array
                  description: Used for the operations 'in', 'notIn', 'exactlyIn', 'allIn' and 'allNotIn'.
                  title: Array
                  items:
                    type: string
      - name: order
        in: query
        style: deepObject
        schema:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              field:
                type: string
                enum:
                - id
                - name
                - keyName
                - description
                - currency
                - normalTaxRate
                - reducedTaxRate
                - storageProcess
                - pickingProcess
              dir:
                type: string
                enum:
                - asc
                - desc
      responses:
        '200':
          description: Operation completed successfully.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                          pattern: \d+
                          example: '17'
                          description: Resource identifier.
                        name:
                          x-description-missing: true
                          type: string
                          example: Berlin Project
                        keyName:
                          x-description-missing: true
                          type: string
                          example: BER_PROJ_001
                        description:
                          x-description-missing: true
                          type: string
                          example: A project based in Berlin focusing on software development and integration.
                        currency:
                          x-description-missing: true
                          type: string
                          example: EUR
                        normalTaxRate:
                          x-description-missing: true
                          type: number
                          format: float
                          example: 13.3
                        reducedTaxRate:
                          x-description-missing: true
                          type: number
                          format: float
                          example: 13.3
                        storageProcess:
                          x-description-missing: true
                          type: string
                          enum:
                          - none
                          - order
                          - orderPointOfSale
                          example: order
                        pickingProcess:
                          x-description-missing: true
                          type: string
                          enum:
                          - invoiceMail
                          - shipmentNote
                          - shipmentNoteScan
                          - shipmentNoteWarehouse
                          - shipmentNoteWarehouseScan
                          - twoLevel
                          example: invoiceMail
                        defaultCustomerPaymentMethod:
                          type: object
                          nullable: true
                          description: Default payment method used for customers in this project
                          example:
                            id: '13'
                            type: paypal
                            designation: Paypal
                          properties:
                            id:
                              type: string
                              pattern: \d+
                              example: '17'
                              description: Resource identifier.
                            type:
                              type: string
                              description: Type of the payment method
                              example: paypal
                            designation:
                              type: string
                              description: Name of the payment method
                              example: Paypal
                        defaultSupplierPaymentMethod:
                          type: object
                          nullable: true
                          description: Default payment method used for suppliers in this project
                          example:
                            id: '13'
                            type: paypal
                            designation: Paypal
                          properties:
                            id:
                              type: string
                              pattern: \d+
                              example: '17'
                              description: Resource identifier.
                            type:
                              type: string
                              description: Type of the payment method
                              example: paypal
                            designation:
                              type: string
                              description: Name of the payment method
                              example: Paypal
                        defaultShippingMethod:
                          type: object
                          nullable: true
                          description: Default shipping method used for this project
                          example:
                            id: '10'
                            type: Go
                            designation: GO!
                          properties:
                            id:
                              type: string
                              pattern: \d+
                              example: '17'
                              description: Resource identifier.
                            type:
                              type: string
                              description: Type of the shipping method
                              example: Go
                            designation:
                              type: string
                              description: Name of the shipping method
                              example: GO!
                        freeFields:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              value:
                                type: string
                            required:
                            - id
                            - value
                          example:
                          - id: '1'
                            value: test
                          - id: '2'
                            value: test1
                          - id: '3'
                            value: ''
                  extra:
                    type: object
                    required:
                    - totalCount
                    - page
                    additionalProperties: false
                    x-description-ignore: true
                    properties:
                      totalCount:
                        description: the total count of all items
                        type: integer
                        example: 1
                      page:
                        description: The pagination object containing the current page number and size
                        type: object
                        required:
                        - number
                        - size
                        additionalProperties: false
                        properties:
                          number:
                            description: The current page number
                            type: integer
                            example: 1
                          size:
                            description: The size of the pages
                            type: integer
                            example: 10
                        example:
                          number: 1
                          size: 10
                    example:
                      totalCount: 1
                      page:
                        number: 1
                        size: 10
              example:
                data:
                - id: '91'
                  name: Standard - 1
                  keyName: STANDARD1
                  description: This is a standard project
                  currency: EUR
                  normalTaxRate: 19
                  reducedTaxRate: 7
                  storageProcess: none
                  pickingProcess: twoLevel
                  defaultCustomerPaymentMethod:
                    id: '13'
                    type: paypal
                    designation: Paypal
                  defaultSupplierPaymentMethod:
                    id: '13'
                    type: paypal
                    designation: Paypal
                  defaultShippingMethod:
                    id: '10'
                    type: Go
                    designation: GO!
                  freeFields:
                  - id: '1'
                    value: test
                  - id: '2'
                    value: test1
                  - id: '3'
                    value: ''
                  - id: '4'
                    value: ''
                  - id: '5'
                    value: ''
                  - id: '6'
                    value: ''
                  - id: '7'
                    value: test7
                  - id: '8'
                    value: ''
                  - id: '9'
                    value: ''
                  - id: '10'
                    value: ''
                - id: '92'
                  name: Standard - 2
                  keyName: STANDARD2
                  description: This is a standard project
                  currency: CH
                  normalTaxRate: 20
                  reducedTaxRate: 10
                  storageProcess: order
                  pickingProcess: shipmentNote
                  defaultCustomerPaymentMethod:
                    id: '13'
                    type: paypal
                    designation: Paypal
                  defaultSupplierPaymentMethod:
                    id: '13'
                    type: paypal
                    designation: Paypal
                  defaultShippingMethod:
                    id: '10'
                    type: Go
                    designation: GO!
                  freeFields:
                  - id: '1'
                    value: test
                  - id: '2'
                    value: test1
                  - id: '3'
                    value: ''
                  - id: '4'
                    value: ''
                  - id: '5'
                    value: ''
                  - id: '6'
                    value: ''
                  - id: '7'
                    value: test7
                  - id: '8'
                    value: ''
                  - id: '9'
                    value: ''
                  - id: '10'
                    value: ''
                extra:
                  totalCount: 2
                  page:
                    number: 1
                    size: 10
        '403':
          description: Unable to authorize the client
        '406':
          description: Requested resource representation does not exist.
        '429':
          description: Too many API calls made.
  /api/v1/projects/{id}/posSettings:
    get:
      tags:
      - Project
      operationId: Project.posSettings
      summary: List POS settings for project
      description: Returns a list of POS settings of a project
      parameters:
      - in: path
        name: id
        required: true
        description: The resource's identifier.
        schema:
          type: string
          pattern: \d+
          example: '17'
          description: Resource identifier.
      responses:
        '200':
          description: Operation completed successfully.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    x-description-missing: true
                    type: object
                    additionalProperties: false
                    properties:
                      storageProcess:
                        x-description-missing: true
                        type: string
                        example: Automated Storage
                      adapterBoxId:
                        x-description-missing: true
                        type: integer
                        example: 5
                      warehouse:
                        x-description-missing: true
                        type: integer
                        example: 5
                      priceGroup:
                        x-description-missing: true
                        type: integer
                        example: 5
                      cashRegister:
                        x-description-missing: true
                        type: integer
                        example: 5
                      defaultCustomer:
                        x-description-missing: true
                        type: integer
                        example: 5
                      allowAllCustomers:
                        x-description-missing: true
                        type: boolean
                        example: true
                      allowOnlyProjectItems:
                        x-description-missing: true
                        type: boolean
                        example: true
                      sumItems:
                        x-description-missing: true
                        type: boolean
                        example: true
                      discountItems:
                        x-description-missing: true
                        type: integer
                        example: 1
                      createDeliveryNote:
                        x-description-missing: true
                        type: boolean
                        example: true
                      label1:
                        x-description-missing: true
                        type: string
                        example: Shipping Label
                      label2:
                        x-description-missing: true
                        type: string
                        example: Return Label
                      applyItemDescriptionToReceipts:
                        x-description-missing: true
                        type: boolean
                        example: true
                      displayNet:
                        x-description-missing: true
                        type: boolean
                        example: true
                      allowMultipleOrdersPerCashier:
                        x-description-missing: true
                        type: boolean
                        example: true
                      journalPdfDetailedView:
                        x-description-missing: true
                        type: boolean
                        example: true
                      hideIndividualBookings:
                        x-description-missing: true
                        type: boolean
                        example: true
                      monthlyReportsWithoutIndividualDays:
                        x-description-missing: true
                        type: boolean
                        example: true
                      hideCountingLog:
                        x-description-missing: true
                        type: boolean
                        example: true
                      hideSignatureBlock:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentBar:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentBarPaid:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentEc:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentEcPaid:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentCreditCard:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentCreditCardPaid:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentTransfer:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonPaymentTransferPaid:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonInvoice:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonReceipt:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonDiscountPercent:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonDiscountEuro:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonWithdrawal:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonDeposit:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonTipping:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonTippingCredit:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonOpenDrawer:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonLoadReceipts:
                        x-description-missing: true
                        type: boolean
                        example: true
                      buttonCancellation:
                        x-description-missing: true
                        type: boolean
                        example: true
                      cashierAutologout:
                        x-description-missing: true
                        type: integer
                        example: 5
                      cashierAutologoutAfterPaymenet:
                        x-description-missing: true
                        type: integer
                        example: 5
                      extendedAddressFields:
                        x-description-missing: true
                        type: boolean
                        example: true
                      compulsorySelectionPaymentMethod:
                        x-description-missing: true
                        type: boolean
                        example: true
                      preselectionOfSalutation:
                        x-description-missing: true
                        type: string
                        example: Mr.
                      printerReceiptAfterCompletion:
                        x-description-missing: true
                        type: string
                        example: Print receipt after transaction completion
                      printerId:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerNumberOfDeliveryNotes:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerNumberOfInvoices:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerNumberOfCreditNotes:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerNumberOfDeliveryNoteDuplicates:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerPrintReceiptWithInvoice:
                        x-description-missing: true
                        type: boolean
                        example: true
                      printerPrintQr:
                        x-description-missing: true
                        type: boolean
                        example: true
                      printerReceiptActive:
                        x-description-missing: true
                        type: boolean
                        example: true
                      printerReceiptCount:
                        x-description-missing: true
                        type: integer
                        example: 5
                      printerReceiptLine1:
                        x-description-missing: true
                        type: string
                        example: Thank you for your purchase!
                      printerReceiptLine2:
                        x-description-missing: true
                        type: string
                        example: Please come again.
                      printerReceiptLine3:
                        x-description-missing: true
                        type: string
                        example: Please come again.
                      printerReceiptFreeField:
                        x-description-missing: true
                        type: boolean
                        example: true
                      printerReceiptQr:
                        x-description-missing: true
                        type: boolean
                        example: true
                      ownVatId:
                        x-description-missing: true
                        type: string
                        format: float
                        nullable: true
                        example: VAT12345678
                    example:
                      storageProcess: Automated Storage
                      adapterBoxId: 5
                      warehouse: 5
                      priceGroup: 5
                      cashRegister: 5
                      defaultCustomer: 5
                      allowAllCustomers: true
                      allowOnlyProjectItems: true
                      sumItems: true
                      discountItems: 1
                      createDeliveryNote: true
                      label1: Shipping Label
                      label2: Return Label
                      applyItemDescriptionToReceipts: true
                      displayNet: true
                      allowMultipleOrdersPerCashier: true
                      journalPdfDetailedView: true
                      hideIndividualBookings: true
                      monthlyReportsWithoutIndividualDays: true
                      hideCountingLog: true
                      hideSignatureBlock: true
                      buttonPaymentBar: true
                      buttonPaymentBarPaid: true
                      buttonPaymentEc: true
                      buttonPaymentEcPaid: true
                      buttonPaymentCreditCard: true
                      buttonPaymentCreditCardPaid: true
                      buttonPaymentTransfer: true
                      buttonPaymentTransferPaid: true
                      buttonInvoice: true
                      buttonReceipt: true
                      buttonDiscountPercent: true
                      buttonDiscountEuro: true
                      buttonWithdrawal: true
                      buttonDeposit: true
                      buttonTipping: true
                      buttonTippingCredit: true
                      buttonOpenDrawer: true
                      buttonLoadReceipts: true
                      buttonCancellation: true
                      cashierAutologout: 5
                      cashierAutologoutAfterPaymenet: 5
                      extendedAddressFields: true
                      compulsorySelectionPaymentMethod: true
                      preselectionOfSalutation: Mr.
                      printerReceiptAfterCompletion: Print receipt after transaction completion
                      printerId: 5
                      printerNumberOfDeliveryNotes: 5
                      printerNumberOfInvoices: 5
                      printerNumberOfCreditNotes: 5
                      printerNumberOfDeliveryNoteDuplicates: 5
                      printerPrintReceiptWithInvoice: true
                      printerPrintQr: true
                      printerReceiptActive: true
                      printerReceiptCount: 5
                      printerReceiptLine1: Thank you for your purchase!
                      printerReceiptLine2: Please come again.
                      printerReceiptLine3: Please come again.
                      printerReceiptFreeField: true
                      printerReceiptQr: true
                      ownVatId: VAT12345678
        '400':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - items
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflictItems
                    title:
                      type: string
                      minLength: 1
                    items:
                      type: array
                      items:
                        type: object
                        additionalProperties: false
                        required:
                        - id
                        - title
                        - messages
           

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