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:phasio-manufacturer-customer-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Phasio 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 (error code INVALID_CUSTOMER_PAYLOAD)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized - missing operator context
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'409':
description: Customer with the same email or phone number, or an organisation with the same name, already exists (error codes CUSTOMER_VALIDATION_ERROR, CUSTOMER_ORGANISATION_DUPLICATE_NAME)
content:
application/json: {}
/api/manufacturer/v1/customer/organisation/{organisationId}:
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:
application/json:
schema:
$ref: '#/components/schemas/CustomerDto'
'400':
description: Invalid customer data (error code INVALID_CUSTOMER_PAYLOAD)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized - missing operator context
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'404':
description: Customer organisation not found (error code CUSTOMER_ORGANISATION_NOT_FOUND)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
/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
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
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
delete:
tags:
- Manufacturer Customer Controller
summary: Delete a customer
description: Hard deletes a customer and removes PII data. The last customer in an organisation cannot be deleted; delete the organisation instead.
operationId: deleteCustomer
parameters:
- name: customerId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Customer deleted successfully
content:
'*/*':
schema:
type: string
'404':
description: Customer not found (error code CUSTOMER_NOT_FOUND)
content:
'*/*':
schema:
type: string
'409':
description: The customer is the last one in its organisation and cannot be deleted (error code LAST_CUSTOMER_IN_ORGANISATION)
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: Customers retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Paginated'
'400':
description: Invalid filter or query (error code INVALID_FILTER)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
components:
schemas:
Paginated:
type: object
properties:
content:
type: array
items: {}
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
organisationId:
type: integer
format: int64
organisationName:
type: string
isApproved:
type: boolean
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
notificationPreference:
type: string
discountId:
type: integer
format: int64
discountPercentage:
type: number
language:
type: string
required:
- customerId
- firstName
- isApproved
- lastName
- notificationPreference
- organisationId
- phoneNumber
CreateCustomerDto:
type: object
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
authCustomerId:
type: string
required:
- notificationPreference
ApiError:
type: object
additionalProperties: true
description: Stable error contract. `error` is a SCREAMING_SNAKE code that clients match on; `message` is a human-readable sentence. Some errors add extra string fields (for example organisationId).
properties:
error:
type: string
example: ORDER_NOT_FOUND
message:
type: string
example: Order not found
required:
- error
- message
securitySchemes:
Phasio_API_Bearer_Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT