Phasio Manufacturer Discount Controller API

API for managing discounts

OpenAPI Specification

phasio-manufacturer-discount-controller-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Phasio Activity Internal Manufacturer Discount Controller API
  description: This is the API documentation for the Phasio application.
  version: '1.0'
servers:
- url: https://m-api.eu.phas.io
  description: Generated server url
security:
- Phasio API Bearer Token: []
tags:
- name: Manufacturer Discount Controller
  description: API for managing discounts
paths:
  /api/manufacturer/v1/discount:
    get:
      tags:
      - Manufacturer Discount Controller
      summary: Get all discounts
      operationId: getDiscounts
      parameters:
      - name: active
        in: query
        description: Filter for active discounts
        required: false
        schema:
          type: boolean
          default: true
        example: true
      - name: discountType
        in: query
        description: Filter by discount type (GENERIC, CUSTOMER, INSTANT)
        required: false
        schema:
          type: string
        example: GENERIC
      responses:
        '200':
          description: List of discounts retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscountDto'
    post:
      tags:
      - Manufacturer Discount Controller
      summary: Create a new discount
      operationId: createDiscount
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CreateCustomerDiscountDto'
              - $ref: '#/components/schemas/CreateGenericDiscountDto'
              - $ref: '#/components/schemas/CreateInstantDiscountDto'
        required: true
      responses:
        '200':
          description: Discount created successfully
          content:
            application/json:
              schema:
                type: integer
                format: int64
        '400':
          description: Invalid request or discount with same code already exists
  /api/manufacturer/v1/discount/validate:
    post:
      tags:
      - Manufacturer Discount Controller
      summary: Validate a discount code for a customer
      operationId: validateDiscount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateDiscountDto'
        required: true
      responses:
        '200':
          description: Discount is valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscountDto'
        '400':
          description: Invalid discount code or not applicable to customer
  /api/manufacturer/v1/discount/{discountId}/expire:
    patch:
      tags:
      - Manufacturer Discount Controller
      summary: Expire a discount immediately
      operationId: expireDiscount
      parameters:
      - name: discountId
        in: path
        description: ID of the discount to expire
        required: true
        schema:
          type: integer
          format: int64
        example: 1
      responses:
        '204':
          description: Discount expired successfully
        '400':
          description: Invalid request or discount not found
  /api/manufacturer/v1/discount/update-time-range:
    patch:
      tags:
      - Manufacturer Discount Controller
      summary: Update the time range of a discount
      operationId: updateTimeRange
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDiscountTimeRangeDto'
        required: true
      responses:
        '204':
          description: Time range updated successfully
        '400':
          description: Invalid request or discount not found
  /api/manufacturer/v1/discount/{discountId}:
    get:
      tags:
      - Manufacturer Discount Controller
      summary: Get a specific discount by ID
      operationId: getDiscount
      parameters:
      - name: discountId
        in: path
        description: ID of the discount to retrieve
        required: true
        schema:
          type: integer
          format: int64
        example: 1
      responses:
        '200':
          description: Discount retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscountDto'
        '404':
          description: Discount not found
components:
  schemas:
    ValidateDiscountDto:
      type: object
      properties:
        customerId:
          type: integer
          format: int64
        discountCode:
          type: string
      required:
      - customerId
      - discountCode
    CreateCustomerDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          code:
            type: string
          startTime:
            type: string
            format: date-time
          endTime:
            type: string
            format: date-time
          customerId:
            type: integer
            format: int64
      required:
      - code
      - customerId
      - discountType
      - endTime
      - percentage
      - startTime
    DiscountDto:
      type: object
      properties:
        discountId:
          type: integer
          format: int64
        discountType:
          type: string
        code:
          type: string
        percentage:
          type: number
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
      required:
      - discountId
      - discountType
      - endTime
      - percentage
      - startTime
    UpdateDiscountTimeRangeDto:
      type: object
      properties:
        discountId:
          type: integer
          format: int64
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
      required:
      - discountId
      - endTime
      - startTime
    CreateGenericDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          code:
            type: string
          startTime:
            type: string
            format: date-time
          endTime:
            type: string
            format: date-time
          genericDiscountNoe:
            type: string
      required:
      - code
      - discountType
      - endTime
      - genericDiscountNoe
      - percentage
      - startTime
    CreateDiscountDto:
      type: object
      properties:
        discountType:
          type: string
        percentage:
          type: number
      required:
      - discountType
      - percentage
    CreateInstantDiscountDto:
      allOf:
      - $ref: '#/components/schemas/CreateDiscountDto'
      - type: object
        properties:
          note:
            type: string
      required:
      - discountType
      - note
      - percentage
  securitySchemes:
    Phasio API Bearer Token:
      type: http
      name: Authorization
      in: header
      scheme: bearer
      bearerFormat: JWT