Phasio Manufacturer Customer Controller API
API for managing customer records and operations
API for managing customer records and operations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/phasio-manufacturer-customer-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Phasio Activity Internal Manufacturer Customer 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 Customer Controller
description: API for managing customer records and operations
paths:
/api/manufacturer/v1/customer:
post:
tags:
- Manufacturer Customer Controller
summary: Create a new customer
description: Creates a new customer record
operationId: createCustomer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCustomerDto'
required: true
responses:
'200':
description: Customer created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDto'
'400':
description: Invalid customer data
'401':
description: Unauthorized - missing operator context
'409':
description: Customer with the same email or phone number already exists
content:
application/json: {}
patch:
tags:
- Manufacturer Customer Controller
summary: Update a customer
description: Updates an existing customer record
operationId: updateCustomer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerUpdateDto'
required: true
responses:
'200':
description: Customer updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDto'
'400':
description: Invalid customer data or customer not found
/api/manufacturer/v1/customer/upload:
post:
tags:
- Manufacturer Customer Controller
summary: Upload customers from a file
description: Imports multiple customers from a CSV or Excel file
operationId: uploadCustomers
requestBody:
content:
application/json:
schema:
type: object
properties:
file:
type: string
format: binary
description: CSV or Excel file containing customer data
required:
- file
responses:
'204':
description: Customers uploaded successfully
'400':
description: Invalid file format or operator ID mismatch
/api/manufacturer/v1/customer/principal:
post:
tags:
- Manufacturer Customer Controller
summary: Get a customer by principal
description: Retrieves a customer using their principal identifier (username, email, etc.)
operationId: getCustomer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerRequestDto'
required: true
responses:
'200':
description: Customer retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDto'
'404':
description: Customer not found
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/customer/phone:
post:
tags:
- Manufacturer Customer Controller
summary: Get a customer by phone number
description: Retrieves a customer using their phone number. Always returns 200 - exists flag indicates whether a match was found.
operationId: getCustomerByPhone
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerRequestDto'
required: true
responses:
'200':
description: Lookup completed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerPhoneLookupDto'
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/customer/organisation/{organisationId}:
get:
tags:
- Manufacturer Customer Controller
summary: Get customers by organization
description: Retrieves all customers belonging to a specific organization
operationId: getCustomersByOrganisation
parameters:
- name: organisationId
in: path
description: ID of the organization to get customers for
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Customers retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomerDto'
post:
tags:
- Manufacturer Customer Controller
summary: Create a customer in an organization
description: Creates a new customer that belongs to a specific organization
operationId: createCustomerInOrganisation
parameters:
- name: organisationId
in: path
description: ID of the organization to add the customer to
required: true
schema:
type: integer
format: int64
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCustomerDto'
required: true
responses:
'200':
description: Customer created successfully
content:
text/plain:
schema:
type: string
'400':
description: Invalid customer data or organization ID
content:
text/plain:
schema:
type: string
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/customer/email:
post:
tags:
- Manufacturer Customer Controller
summary: Get a customer by email
description: Retrieves a customer using their email address. Always returns 200 - exists flag indicates whether a match was found.
operationId: getCustomerByEmail
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerRequestDto'
required: true
responses:
'200':
description: Lookup completed
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerEmailLookupDto'
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/customer/{customerId}:
get:
tags:
- Manufacturer Customer Controller
summary: Get a customer by ID
description: Retrieves details of a specific customer by their ID
operationId: getCustomer_3
parameters:
- name: customerId
in: path
description: ID of the customer to retrieve
required: true
schema:
type: integer
format: int64
example: 1
responses:
'200':
description: Customer retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDto'
'404':
description: Customer not found
delete:
tags:
- Manufacturer Customer Controller
summary: Delete a customer
description: Hard deletes a customer and removes PII data
operationId: deleteCustomer_1
parameters:
- name: customerId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Customer deleted successfully
content:
'*/*':
schema:
type: string
'400':
description: Customer could not be deleted
content:
'*/*':
schema:
type: string
'404':
description: Customer not found
content:
'*/*':
schema:
type: string
/api/manufacturer/v1/customer/paginated:
get:
tags:
- Manufacturer Customer Controller
summary: Get customers with filtering
description: Retrieves a paginated list of customers with optional filtering and search using RSQL
operationId: getCustomersPaginated
parameters:
- name: filter
in: query
description: filter specification
required: true
schema:
type: string
- name: page
in: query
description: Zero-based page index (0..N)
required: false
schema:
type: integer
default: 0
minimum: 0
- name: size
in: query
description: The size of the page to be returned
required: false
schema:
type: integer
default: 30
minimum: 1
- name: sort
in: query
description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
required: false
schema:
type: array
default:
- updateDt,DESC
items:
type: string
- name: search
in: query
description: Optional search term
required: false
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PaginatedCustomerDto'
/api/manufacturer/v1/customer/count:
get:
tags:
- Manufacturer Customer Controller
summary: Get count of customers
description: Retrieves the total count of customers with optional filtering
operationId: getCount
parameters:
- name: searchQuery
in: query
description: Search query for filtering customers
required: false
schema:
type: string
example: john
responses:
'200':
description: Count retrieved successfully
content:
application/json:
schema:
type: integer
format: int64
'401':
description: Unauthorized - missing operator context
/api/manufacturer/v1/customer/{customerId}/auth:
delete:
tags:
- Manufacturer Customer Controller
summary: Reset customer authentication
description: Resets customer to OTP-only auth, clearing their password
operationId: resetCustomerAuth
parameters:
- name: customerId
in: path
required: true
schema:
type: integer
format: int64
responses:
'204':
description: Customer auth reset successfully
content:
'*/*':
schema:
type: string
'404':
description: Customer not found
content:
'*/*':
schema:
type: string
components:
schemas:
PaginatedCustomerDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/CustomerDto'
totalElements:
type: integer
totalPages:
type: integer
pageNumber:
type: integer
pageSize:
type: integer
isEmpty:
type: boolean
isFirst:
type: boolean
isLast:
type: boolean
required:
- content
- isEmpty
- isFirst
- isLast
- pageNumber
- pageSize
- totalElements
- totalPages
CustomerDto:
type: object
properties:
email:
type: string
customerId:
type: integer
format: int64
organisationName:
type: string
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
language:
type: string
notificationPreference:
type: string
discountId:
type: integer
format: int64
discountPercentage:
type: number
customerType:
type: string
required:
- customerType
- language
- notificationPreference
CustomerUpdateDto:
type: object
properties:
customerId:
type: integer
format: int64
email:
type: string
phoneNumber:
type: string
firstName:
type: string
lastName:
type: string
notificationPreference:
type: string
language:
type: string
required:
- customerId
CustomerEmailLookupDto:
type: object
properties:
isDuplicate:
type: boolean
customer:
$ref: '#/components/schemas/CustomerDto'
message:
type: string
required:
- isDuplicate
CustomerPhoneLookupDto:
type: object
properties:
isDuplicate:
type: boolean
customer:
$ref: '#/components/schemas/CustomerDto'
message:
type: string
required:
- isDuplicate
CreateCustomerDto:
type: object
description: Customer data to create
properties:
firstName:
type: string
lastName:
type: string
email:
type: string
phoneNumber:
type: string
language:
type: string
enum:
- EN
- DE
- EL
- FR
- NL
- SL
- DA
- TR
- PL
- ES
- BG
- IT
- UK
- RU
- SV
notificationPreference:
type: string
enum:
- EMAIL
- SMS
- WHATSAPP
affiliate:
type: string
organisationName:
type: string
taxExempt:
type: boolean
required:
- notificationPreference
CustomerRequestDto:
type: object
description: Customer request data containing the principal
properties:
customerPrincipal:
type: string
required:
- customerPrincipal
securitySchemes:
Phasio_API_Bearer_Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT