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): 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):' 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): 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): 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):' 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): 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): 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