Xentral SalesPrice API

SalesPrice

OpenAPI Specification

xentral-salesprice-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account SalesPrice 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: SalesPrice
  description: SalesPrice
paths:
  /api/v3/salesPrices:
    get:
      tags:
      - SalesPrice
      summary: 🔒 List sales prices V3
      description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.


        This endpoint requires the following scopes: `salesPrice:read`.


        Paginated list of SalesPrices.'
      operationId: GET::api-v3-salesprices
      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`product.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`customer.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`group.id`: *equals*, *notEquals*, *in*, *notIn* \n\n`currency`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`amount`: *equals*, *notEquals*, *in*, *notIn*, *greaterThan*, *lessThan* \n\n`remark`: *equals*, *notEquals*, *in*, *notIn*, *contains*, *notContains*, *startsWith*, *endsWith* \n\n`validFrom`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`expiresAt`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`createdAt`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals* \n\n`updatedAt`: *equals*, *notEquals*, *lessThan*, *lessThanOrEquals*, *greaterThan*, *greaterThanOrEquals*"
        required: false
        style: deepObject
        schema:
          type: array
          items:
            properties:
              key:
                type: string
                enum:
                - id
                - product.id
                - customer.id
                - group.id
                - currency
                - amount
                - remark
                - validFrom
                - expiresAt
                - createdAt
                - updatedAt
              op:
                description: operator
                type: string
                enum:
                - equals
                - notEquals
                - in
                - notIn
                - contains
                - notContains
                - startsWith
                - endsWith
                - greaterThan
                - lessThan
                - lessThanOrEquals
                - greaterThanOrEquals
              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, amount, -amount, createdAt, -createdAt, updatedAt and -updatedAt. Default sort is -created_at
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            enum:
            - id
            - -id
            - amount
            - -amount
            - createdAt
            - -createdAt
            - updatedAt
            - -updatedAt
      - name: perPage
        in: query
        description: 'Number of items per page. Default: 15, Max: 100'
        required: false
        schema:
          type: integer
          example: 15
      - name: page
        in: query
        description: Page number.
        required: false
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Paginated list of SalesPrices.
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: array
                    items:
                      description: SalesPrice view
                      properties:
                        id:
                          description: SalesPrice ID
                          type: string
                          pattern: '[0-9]+'
                          example: '1337'
                        product:
                          description: Product
                          properties:
                            id:
                              description: Product ID
                              type: string
                              pattern: '[0-9]+'
                          type: object
                          example:
                            id: '1337'
                        customer:
                          description: Customer
                          properties:
                            id:
                              description: Customer ID
                              type: string
                              pattern: '[0-9]+'
                          type:
                          - object
                          - 'null'
                          example:
                            id: '1337'
                        customerGroup:
                          description: Customer group
                          properties:
                            id:
                              description: Customer group ID
                              type: string
                              pattern: '[0-9]+'
                          type:
                          - object
                          - 'null'
                          example:
                            id: '1337'
                        price:
                          description: Money
                          properties:
                            amount:
                              oneOf:
                              - type: string
                              - type: number
                            currency:
                              description: Currency
                              type: string
                              example: EUR
                          type: object
                          example:
                            amount: '13.37'
                            currency: EUR
                          additionalProperties: false
                        amount:
                          description: Amount
                          type: number
                          format: float
                          example: 13.37
                        packageAmount:
                          description: Package amount
                          type:
                          - number
                          - 'null'
                          format: float
                          example: 13.37
                        customerProductNumber:
                          description: Customer product number
                          type:
                          - string
                          - 'null'
                          example: Number1
                        isNotCalculatedFromExchangeTable:
                          description: Whether is calculated from exchange table
                          type: boolean
                          example: true
                        hideInBulkPriceListing:
                          description: Whether to hide from bulk price listing
                          type: boolean
                          example: false
                        remark:
                          description: Remark
                          type:
                          - string
                          - 'null'
                          example: remark example
                        validFrom:
                          description: Valid from date
                          type:
                          - string
                          - 'null'
                          format: date
                          example: '2025-01-01'
                        expiresAt:
                          description: Expires at date
                          type:
                          - string
                          - 'null'
                          format: date
                          example: '2025-01-01'
                      type: object
                    x-description-ignore: true
                    x-example-ignore: true
                  meta:
                    description: Pagination meta data
                    properties:
                      currentPage:
                        description: The current page number
                        type: integer
                        example: 1
                      from:
                        description: The first item being returned in the current page
                        type: integer
                        example: 1
                        nullable: true
                      path:
                        description: The base path for the paginated results
                        type: string
                        example: https://api.example.com/items
                      perPage:
                        description: The number of items shown per page
                        type: integer
                        example: 15
                      to:
                        description: The last item being returned in the current page
                        type: integer
                        example: 15
                        nullable: true
                    type: object
                    x-example-ignore: true
                  links:
                    description: Pagination links
                    properties:
                      first:
                        description: URL to the first page
                        type: string
                        example: https://api.example.com/items?page=1
                        nullable: true
                      last:
                        description: URL to the last page
                        type: string
                        example: null
                        nullable: true
                      prev:
                        description: URL to the previous page
                        type: string
                        example: null
                        nullable: true
                      next:
                        description: URL to the next page
                        type: string
                        example: https://api.example.com/items?page=17
                        nullable: true
                    type: object
                    x-example-ignore: true
                type: object
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                properties:
                  message:
                    description: Too Many Requests
                    type: string
                    example: Too Many Requests
                type: object
      x-beta: true
      x-scopes:
      - salesPrice:read
    post:
      tags:
      - SalesPrice
      summary: 🔒 Create sales price V3
      description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.


        This endpoint requires the following scopes: `salesPrice:create`.


        Create a new sales price.'
      operationId: POST::api-v3-salesprices
      requestBody:
        content:
          application/json:
            schema:
              description: SalesPrice create payload
              required:
              - product
              - price
              - quantity
              properties:
                product:
                  description: Product
                  properties:
                    id:
                      description: Product ID
                      type: string
                      pattern: '[0-9]+'
                      example: '42'
                  type: object
                  example:
                    id: '1337'
                customer:
                  description: Customer (provide either customer or customerGroup, but not both)
                  properties:
                    id:
                      description: Customer ID
                      type: string
                      pattern: '[0-9]+'
                      example: '42'
                  type:
                  - object
                  - 'null'
                  example:
                    id: '1337'
                customerGroup:
                  description: Customer group (provide either customer or customerGroup, but not both)
                  properties:
                    id:
                      description: Customer group ID
                      type: string
                      pattern: '[0-9]+'
                      example: '42'
                  type:
                  - object
                  - 'null'
                  example:
                    id: '1337'
                price:
                  description: Money
                  properties:
                    amount:
                      oneOf:
                      - type: string
                      - type: number
                    currency:
                      description: Currency
                      type: string
                      example: EUR
                  type: object
                  example:
                    amount: '13.37'
                    currency: EUR
                  additionalProperties: false
                quantity:
                  description: Quantity
                  type: number
                  format: float
                  minimum: 1.0e-05
                  example: 13.37
                packageAmount:
                  description: Package amount
                  type:
                  - number
                  - 'null'
                  format: float
                  example: 13.37
                customerProductNumber:
                  description: Customer product number
                  type:
                  - string
                  - 'null'
                  maxLength: 255
                  example: Number1
                isNotCalculatedFromExchangeTable:
                  description: Whether the price is not calculated from exchange table
                  type: boolean
                  example: true
                hideInBulkPriceListing:
                  description: Whether to hide the price from bulk price listing
                  type: boolean
                  example: false
                remark:
                  description: Remark
                  type: string
                  example: remark example
                validFrom:
                  description: Valid from date
                  type: string
                  format: date
                  example: '2025-01-01'
                expiresAt:
                  description: Expires at date
                  type: string
                  format: date
                  example: '2025-01-01'
              type: object
      responses:
        '201':
          description: Create a new sales price.
          content:
            application/json:
              schema:
                properties:
                  data:
                    description: SalesPrice view
                    properties:
                      id:
                        description: SalesPrice ID
                        type: string
                        pattern: '[0-9]+'
                        example: '1337'
                      product:
                        description: Product
                        properties:
                          id:
                            description: Product ID
                            type: string
                            pattern: '[0-9]+'
                        type: object
                        example:
                          id: '1337'
                      customer:
                        description: Customer
                        properties:
                          id:
                            description: Customer ID
                            type: string
                            pattern: '[0-9]+'
                        type:
                        - object
                        - 'null'
                        example:
                          id: '1337'
                      customerGroup:
                        description: Customer group
                        properties:
                          id:
                            description: Customer group ID
                            type: string
                            pattern: '[0-9]+'
                        type:
                        - object
                        - 'null'
                        example:
                          id: '1337'
                      price:
                        description: Money
                        properties:
                          amount:
                            oneOf:
                            - type: string
                            - type: number
                          currency:
                            description: Currency
                            type: string
                            example: EUR
                        type: object
                        example:
                          amount: '13.37'
                          currency: EUR
                        additionalProperties: false
                      amount:
                        description: Amount
                        type: number
                        format: float
                        example: 13.37
                      packageAmount:
                        description: Package amount
                        type:
                        - number
                        - 'null'
                        format: float
                        example: 13.37
                      customerProductNumber:
                        description: Customer product number
                        type:
                        - string
                        - 'null'
                        example: Number1
                      isNotCalculatedFromExchangeTable:
                        description: Whether is calculated from exchange table
                        type: boolean
                        example: true
                      hideInBulkPriceListing:
                        description: Whether to hide from bulk price listing
                        type: boolean
                        example: false
                      remark:
                        description: Remark
                        type:
                        - string
                        - 'null'
                        example: remark example
                      validFrom:
                        description: Valid from date
                        type:
                        - string
                        - 'null'
                        format: date
                        example: '2025-01-01'
                      expiresAt:
                        description: Expires at date
                        type:
                        - string
                        - 'null'
                        format: date
                        example: '2025-01-01'
                    type: object
                type: object
        '400':
          description: Failed validation
          content:
            application/problem+json:
              schema:
                properties:
                  type:
                    description: Error messages
                    type: string
                    example: https://api.xentral.biz/problems/request-validation
                  title:
                    description: Error messages
                    type: string
                    example: Request payload validation failed.
                  violations:
                    description: Error messages
                    type: object
                    example:
                      product:
                      - The product field is required.
                      customer:
                      - The customer field must be an array.
                      price.amount:
                      - The price.amount field is required.
                type: object
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                properties:
                  message:
                    description: Too Many Requests
                    type: string
                    example: Too Many Requests
                type: object
      x-beta: true
      x-scopes:
      - salesPrice:create
    patch:
      tags:
      - SalesPrice
      summary: 🔒 Update multiple sales prices V3
      description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.


        This endpoint requires the following scopes: `salesPrice:update`.


        Update multiple sales prices.'
      operationId: PATCH::api-v3-salesprices
      requestBody:
        content:
          application/json:
            schema:
              description: SalesPrice update multiple data
              type: array
              items:
                description: SalesPrice view
                properties:
                  id:
                    description: SalesPrice ID
                    type: string
                    pattern: '[0-9]+'
                    example: '1337'
                  product:
                    description: Product
                    properties:
                      id:
                        description: Product ID
                        type: string
                        pattern: '[0-9]+'
                        example: '42'
                    type: object
                    example:
                      id: '1337'
                  customer:
                    description: Customer
                    properties:
                      id:
                        description: Customer ID
                        type: string
                        pattern: '[0-9]+'
                        example: '42'
                    type:
                    - object
                    - 'null'
                    example:
                      id: '1337'
                  customerGroup:
                    description: Customer group
                    properties:
                      id:
                        description: Customer group ID
                        type: string
                        pattern: '[0-9]+'
                        example: '42'
                    type:
                    - object
                    - 'null'
                    example:
                      id: '1337'
                  price:
                    description: Money
                    properties:
                      amount:
                        oneOf:
                        - type: string
                        - type: number
                      currency:
                        description: Currency
                        type: string
                        example: EUR
                    type: object
                    example:
                      amount: '13.37'
                      currency: EUR
                    additionalProperties: false
                  quantity:
                    description: from quantity
                    type: number
                    format: float
                    example: 13.37
                  packageAmount:
                    description: Package amount
                    type:
                    - number
                    - 'null'
                    format: float
                    example: 13.37
                  customerProductNumber:
                    description: Customer product number
                    type:
                    - string
                    - 'null'
                    maxLength: 255
                    example: Number1
                  isNotCalculatedFromExchangeTable:
                    description: Whether is calculated from exchange table
                    type: boolean
                    example: true
                  hideInBulkPriceListing:
                    description: Whether to hide from bulk price listing
                    type: boolean
                    example: false
                  remark:
                    description: Remark
                    type: string
                    example: remark example
                  validFrom:
                    description: Valid from date
                    type:
                    - string
                    - 'null'
                    format: date
                    example: '2025-01-01'
                  expiresAt:
                    description: Expires at date
                    type:
                    - string
                    - 'null'
                    format: date
                    example: '2025-01-01'
                type: object
                example:
                  id: '1337'
              example:
              - id: '1337'
      responses:
        '204':
          description: No Content
        '400':
          description: Failed validation
          content:
            application/problem+json:
              schema:
                properties:
                  type:
                    description: Error messages
                    type: string
                    example: https://api.xentral.biz/problems/request-validation
                  title:
                    description: Error messages
                    type: string
                    example: Request payload validation failed.
                  violations:
                    description: Error messages
                    type: object
                    example:
                      ? ''
                      : - The  field must be an array.
                type: object
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                properties:
                  message:
                    description: Too Many Requests
                    type: string
                    example: Too Many Requests
                type: object
      x-beta: true
      x-scopes:
      - salesPrice:update
  /api/v3/salesPrices/{id}:
    get:
      tags:
      - SalesPrice
      summary: 🔒 View sales price V3
      description: 'This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.


        This endpoint requires the following scopes: `salesPrice:read`.


        View a sales price.'
      operationId: GET::api-v3-salesprices-id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: View a sales price.
          content:
            application/json:
              schema:
                properties:
                  data:
                    description: SalesPrice view
                    properties:
                      id:
                        description: SalesPrice ID
                        type: string
                        pattern: '[0-9]+'
                        example: '1337'
                      product:
                        description: Product
                        properties:
                          id:
                            description: Product ID
                            type: string
                            pattern: '[0-9]+'
                        type: object
                        example:
                          id: '1337'
                      customer:
                        description: Customer
                        properties:
                          id:
                            description: Customer ID
                            type: string
                            pattern: '[0-9]+'
                        type:
                        - object
                        - 'null'
                        example:
                          id: '1337'
                      customerGroup:
                        description: Customer group
                        properties:
                          id:
                            description: Customer group ID
                            type: string
                            pattern: '[0-9]+'
                        type:
                        - object
                        - 'null'
                        example:
                          id: '1337'
                      price:
                        description: Money
                        properties:
                          amount:
                            oneOf:
                            - type: string
                            - type: number
                          currency:
                            description: Currency
                            type: string
                            example: EUR
                        type: object
                        example:
                          amount: '13.37'
                          currency: EUR
                        additionalProperties: false
                      amount:
                        description: Amount
                        type: number
                        format: float
                        example: 13.37
                      packageAmount:
                        description: Package amount
                        type:
                        - number
                        - 'null'
                        format: float
                        example: 13.37
                      customerProductNumber:
                        description: Customer product number
                        type:
                        - string
                        - 'null'
                        example: Number1
                      isNotCalculatedFromExchangeTable:
                        description: Whether is calculated from exchange table
                        type: boolean
                        example: true
                      hideInBulkPriceListing:
                        description: Whether to hide from bulk price listing
                        type: boolean
                        example: false
                      remark:
                        description: Remark
                        type:
                        - string
                        - 'null'
                        example: remark example
                      validFrom:
                        description: Valid from date
                        type:
                        - string
                        - 'null'
                        format: date
                        example: '2025-01-01'
                      expiresAt:
                        description: Expires at date
         

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