Phasio Manufacturer Discount Controller API
API for managing discounts
API for managing discounts
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