openapi: 3.2.0
info:
description: "MobileServicesManagement APIs\n\n ---\n \n ## [Source view](https://app.swaggerhub.com/apis/kpn/MobileServicesManagement-KPN/)
\n [Documentation view](https://app.swaggerhub.com/apis/kpn/MobileServicesManagement-KPN/)\n \n ---\n \n ## [KPN Developer](https://developer.kpn.com/)
\n [Getting Started](https://developer.kpn.com/getting-started)\n \n\n ---"
version: v11
title: MobileServicesManagement-KPN Rest Order Controller API
termsOfService: https://developer.kpn.com/legal
contact:
name: API Support
email: api_developer@kpn.com
url: https://developer.kpn.com/support
servers:
- url: https://api-prd.kpn.com/mobile/kpn/mobileservices
tags:
- name: rest-order-controller
description: Rest Order Controller
paths:
/order/authorize:
post:
tags:
- rest-order-controller
summary: Authorize order
description: Required privileges (one of the following):
- privileges_orders_authorization
operationId: authorizeUsingPOST
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrderSummary'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizeRequest'
description: authorizeRequest
required: true
/order/move:
post:
tags:
- rest-order-controller
summary: Move contract with given contractId to group with given destinationGroupId
description: 'Wish date should be empty, current or in the future. Reference number cannot exceed 25 character. When individualBundle field is set as true in ContractDetails, user is supposed to set moveAddonBundles to true or false.Otherwise it will be used as false by default. If individualBundle is false, the value of the field moveAddonBundles will not be used.
Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
'
operationId: moveContractUsingPOST
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrderSummary'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MoveContractRequest'
description: moveContractRequest
required: true
/order/operations:
get:
tags:
- rest-order-controller
summary: Get information about operations available for given contract.
description: Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
operationId: getAvailableOperationsUsingGET
parameters:
- name: contractId
in: query
description: contractId
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OperationsAvailability'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
/order/porting-out:
post:
tags:
- rest-order-controller
summary: Port out contract
description: Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
operationId: portingOutUsingPOST
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrderSummary'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PortingOutRequest'
description: portingOutRequest
required: true
/order/replace-sim:
post:
tags:
- rest-order-controller
summary: Replace sim for given contract
description: 'If eSim is used email is mandatory.
Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
'
operationId: replaceSimUsingPOST
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrderSummary'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReplaceSimRequest'
description: replaceSimRequest
required: true
/order/replace-sim/validator:
post:
tags:
- rest-order-controller
summary: Validate if sim card number can be used in replace sim operation
description: Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
operationId: validateUiccidUsingPOST
responses:
'200':
description: OK
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UiccidValidationData'
description: uiccidValidationData
required: true
/order/return-hardware:
post:
tags:
- rest-order-controller
summary: Return hardware
description: Required privileges (one of the following):- privileges_un-authorized_orders_creation
- privileges_orders_authorization
operationId: returnHardwareUsingPOST
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrderSummary'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: Forbidden
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Too Many Requests
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Service Unavailable
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- OAuth2: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReturnHardwareRequest'
description: returnHardwareRequest
required: true
components:
schemas:
ErrorResponse:
type: object
properties:
transactionId:
type: string
description: transaction id of the the request
title: Transaction ID
status:
type: string
description: Status
title: Status
name:
type: string
description: Error name
title: Error name
message:
type: string
description: Error message
title: Error message
info:
type: string
description: Additional information about error
title: Info
OrderSummary:
type: object
properties:
contextName:
type: string
creationDate:
type: string
id:
type: integer
format: int64
operation:
type: string
referenceNumber:
type: string
status:
type: string
enum:
- Failed
- Aborted
- Finished
- Suspended
- InProgress
- Waiting
- Draft
- WaitingForAuthorization
- Authorized
- Restored
- Canceled
- Scheduled
- Initialized
- Rejected
- ExternalScheduled
title: OrderSummary
BlockingOrder:
type: object
properties:
id:
type: integer
format: int64
kpnReference:
type: string
status:
type: string
enum:
- IN_PROGRESS
- UNAUTHORIZED
- NEW
- CLOSED
- CANCELED
- REJECTED
- DRAFT
- THIRD_PARTY
- HOLD_CUSTOMER
- WAITING
type:
type: string
enum:
- CONTRACTING
- SERVICE_REQUEST
title: BlockingOrder
ReplaceSimRequest:
type: object
properties:
confirmationCode:
type: string
contractId:
type: integer
format: int64
email:
type: string
esim:
type: boolean
newSimCardNumber:
type: string
referenceNumber:
type: string
wishDate:
type: string
format: date-time
title: ReplaceSimRequest
PortingOutRequest:
type: object
properties:
contractId:
type: integer
format: int64
referenceNumber:
type: string
wishDate:
type: string
format: date-time
title: PortingOutRequest
OperationAvailability:
type: object
properties:
blockingOrders:
type: array
items:
$ref: '#/components/schemas/BlockingOrder'
enabled:
type: boolean
visible:
type: boolean
title: OperationAvailability
ReturnHardwareRequest:
type: object
properties:
email:
type: string
hardwareToReturn:
type: array
description: Contract items' ids which represent hardware (you can find them in track-and-trace-service/orders/{id}/hardware)
items:
type: integer
format: int64
orderId:
type: integer
format: int64
description: Id of order which hardware was ordered
reason:
type: string
enum:
- WRONG_DELIVERY
- DEFECTIVE_ON_ARRIVAL
- OTHER
referenceNumber:
type: string
remarks:
type: string
title: ReturnHardwareRequest
AuthorizeRequest:
type: object
properties:
orderId:
type: integer
format: int64
title: AuthorizeRequest
UiccidValidationData:
type: object
properties:
contractId:
type: integer
format: int64
newSimCardNumber:
type: string
title: UiccidValidationData
MoveContractRequest:
type: object
properties:
contractId:
type: integer
format: int64
destinationGroupId:
type: integer
format: int64
moveAddonBundles:
type: boolean
referenceNumber:
type: string
wishDate:
type: string
format: date-time
title: MoveContractRequest
OperationsAvailability:
type: object
properties:
blockSim:
$ref: '#/components/schemas/OperationAvailability'
combineFixedMobile:
$ref: '#/components/schemas/OperationAvailability'
contractId:
type: integer
format: int64
modify:
$ref: '#/components/schemas/OperationAvailability'
move:
$ref: '#/components/schemas/OperationAvailability'
portOut:
$ref: '#/components/schemas/OperationAvailability'
replaceSim:
$ref: '#/components/schemas/OperationAvailability'
separateFixedMobile:
$ref: '#/components/schemas/OperationAvailability'
terminate:
$ref: '#/components/schemas/OperationAvailability'
unblockSim:
$ref: '#/components/schemas/OperationAvailability'
title: OperationsAvailability
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
scopes: {}
tokenUrl: https://api-prd.kpn.com/oauth/grip/msm/accesstoken?grant_type=client_credentials