KPN

KPN Wholesale Broadband Access FPI/CIP API

KPN Wholesale Broadband Access (WBA) is a KPN Wholesale product offering copper and fiber access to wholesale customers. WBA has the following APIs available: * Functional Product Information: The Functional Product Information (FPI) service is used to provide WBA access information for new and existing WBA connections. FPI provides carrier vendor information and WBA technology availability with actual up and down bitrates with a reliability per technology type. * Carrier Information Product: The Carrier Information Product (CIP) service is used to provide information about the infrastructure and active services on the physical connection of a customer address.

OpenAPI Specification

kpn-wholesale-broadband-access-fpi-cip-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Wholesale Broadband Access
  version: v1.0.1
  description: >-
    KPN Wholesale Broadband Access (WBA) is a KPN Wholesale product offering copper and fiber access to wholesale customers. WBA has the following APIs available:
    
    * Functional Product Information: The Functional Product Information (FPI) service is used to provide WBA access information for new and existing WBA connections. FPI provides carrier vendor information and WBA technology availability with actual up and down bitrates with a reliability per technology type.
    
    * Carrier Information Product: The Carrier Information Product (CIP) service is used to provide information about the infrastructure and active services on the physical connection of a customer address.
    
    ### Key highlights

    - **Security:**  HTTPS, OAuth, Rate limits.

    - **Versioning:**  Supports version-less API, version tight. If no version
    is provided (in the header) it defaults to latest version. 

  
    ---
    
    ## [Source view](https://app.swaggerhub.com/apis/kpn/wholesale-broadband_access_fpi_cip/)<br/>
    [Documentation view](https://app.swaggerhub.com/apis-docs/kpn/wholesale-broadband_access_fpi_cip/)
    
    ---
    
    ## [KPN API Store](https://developer.kpn.com/)<br/>
    [Getting Started](https://developer.kpn.com/getting-started) <br/> [KPN Wholesale Broadband Access](https://www.kpn-wholesale.com/product-information/broadband/wba.htm)
    

    ---
  contact:
    name: API Support
    email: api_developer@kpn.com
    url: 'https://developer.kpn.com/support'
  termsOfService: 'https://developer.kpn.com/legal'
tags:
  - name: default
    description: ''
servers:
  - url: 'https://api-prd.kpn.com/wba'
externalDocs:
  description: HTTP response headers
  url: https://developer.kpn.com/documentation-response-headers

paths:
  '/fpi/addresses':
    get:
      summary: Retrieves Functional Product Information
      tags: [default]
      security:
        - oauth2: []
      description: |
        This API is in line with WBA FPI v26.

        The Functional Product Information (FPI) service is used to provide WBA access information for new and existing WBA connections. FPI provides carrier vendor information and WBA technology availability with actual up and down bitrates with a reliability per technology type. The reliability is defined as the probability that the bitrate can be achieved and is only applicable for WBA connections on copper lines. The provided reliability in FPI is within 50% to 100%. The reliability for fiber WBA connections is always 100%. It is allowed to request different reliability per copper technology type.
        
        An address is mandatory in the FPI request.
        For an existing WBA broadband connection, the WSO specifies the `xdf-access-serviceid`, provided by KPN when the connection was delivered. The `xdf-access-serviceid` is the unique identifier for the current access connection. The bitrates up/down are determined by measurement on the broadband connection of the `xdf-access-serviceid`.
        
        An address can have one or more carrier vendors. FPI provides information for the following carrier vendors:
        - MDF: WBA services on copper lines from central office (MDF)
        - SDF: WBA services on copper lines from street cabinet (SDF)
        - REGG: WBA Fiber to the Home (FttH) services from Reggefiber
        - KPNFO: WBA Fiber to the Office (FttO) services form KPNFO
        
        The API request should be of the form: `/fip/addresses?{query-parameters}`.
        
        Example without URL encoding: 
        
        `/fpi/addresses?requested-zipcode=1234AB&requested-housenumber=12&requested-housenrext=A&connectionpointnumber=001&technologyreliability=[{"technology-type":"ADSL2+_ISDN","reliability":"80"},{"technology-type":"GPON"}]`

        Example with URL encoding: 
        
        `/fpi/addresses?requested-zipcode=1234AB&requested-housenumber=12&requested-housenrext=A&connectionpointnumber=001&technologyreliability=%5B%7B%22technology-type%22%3A%22ADSL2+_ISDN%22%2C%22reliability%22%3A%2280%22%7D%2C%7B%22technology-type%22%3A%22GPON%22%7D%5D`
        
      parameters:
        - $ref: '#/components/parameters/requested-zipcode'
        - $ref: '#/components/parameters/requested-housenumber'
        - $ref: '#/components/parameters/requested-housenrext'
        - $ref: '#/components/parameters/connectionpointnumber'
        - $ref: '#/components/parameters/fiber-terminationpoint-id'
        - $ref: '#/components/parameters/xdf-access-serviceid'
        - $ref: '#/components/parameters/technologyreliability'
        - $ref: '#/components/parameters/service-group'
      responses:
        '200':
          description: WBA Functional Product Information response
          content:
            application/json:
              schema:
                type: object
                properties:
                  enduserinfo:
                    $ref: '#/components/schemas/enduserinfo-fpi-schema'
                  actualuserinfo:
                    $ref: '#/components/schemas/actualuserinfo-schema'
                  carriervendor:
                    $ref: '#/components/schemas/carriervendor-fpi-schema'
                  technologyavailability:
                    $ref: '#/components/schemas/technologyavailability-schema'
                  errorinfo:
                    type: object
                    properties:
                      errorcode:
                        $ref: '#/components/schemas/errorcode-schema'
                      commentcode:
                        $ref: '#/components/schemas/commentcode-schema'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '500':
          description: Server error
        '502':
          description: Bad gateway
        '503':
          description: Server unavailable


  '/cip/addresses':
    get:
      summary: Retrieves Carrier Information Product
      description: |
        This API is in line with WBA CIP v46.

        The Carrier Information Product (CIP) service provides information about the infrastructure and active services on the physical connection of a customer address. For physical carrier Copper, the ISRA with current and future connection details of all copperlines are shown. For physical carrier Fiber, all fiber-terminationpoints are shown including current and future connection details. To support WSO’s clean order process, a list of house number extensions per carrier-vendor will be provided in case of a wrong or missing housenumber extension and there are no other identifiers (i.e. phone number or xdf-access-service-id) specified for the connection.

        The Carrier Information service can be used for several scenarios:
        1. Scenario for an address connected to physical carrier Copper. User creates a CIP request for physical carrier Copper and the connection details for the copper connection will be shown
        2. Scenario for an address connected to physical carrier Fiber. User creates a CIP request for physical carrier Fiber and the connection details for the fiber connection will be shown
        3. Scenario for an address connected to both Copper and Fiber. User creates a CIP request without specifying physical carrier (empty field) and the connection details for the copper and fiber connection will be shown.

        When the user requests information for a Copper carrier, an optional phonenumber, xdf-service-id or a connectionpointnumber can be provided. The Carrier Info Product provides current and future type of services on all copper lines of the ISRA-connectionpoint. Note that there may be more than one ISRA-connectionpoints on the customer’s address. 
        
        In case one or two ISRA-connectionpoints exists, all connection details of those ISRA’s will be shown. If more than two ISRA-connectionpoints exist, the list of ISRA’s is shown without connection details and errorcode 642 will be returned When the user requests information for a Fiber carrier, an optional fiber-terminationpoint-id can be provided. The Carrier Info Product provides current and future type of services on the specified fiber-terminationpoint-id. If no fiber-terminationpoint was specified, the Carrier Info Service provides current and future type of services on all fiber-terminationpoints.

        The API request should be of the form: `/cip/addresses?{query-parameters}`.
        
        Example: 
        
        `/cip/addresses?requested-zipcode=1234AB&requested-housenumber=12&requested-housenrext=A&connectionpointnumber=001`
      tags: [default]
      security:
        - oauth2: []
      responses:
        '200':
          description: WBA Carrier Information Product response
          content:
            application/json:
              schema:
                type: object
                properties:
                  enduserinfo:
                    $ref: '#/components/schemas/enduserinfo-cip-schema'
                  planneduserinfo:
                    $ref: '#/components/schemas/planneduserinfo-schema'
                  carriervendor:
                    $ref: '#/components/schemas/carriervendor-cip-schema'
                  copperinfo:
                    $ref: '#/components/schemas/copperinfo-schema'
                  fiberinfo:
                    $ref: '#/components/schemas/fiberinfo-schema'
                  errorinfo:
                    type: object
                    properties:
                      errorcode:
                        $ref: '#/components/schemas/errorcode-schema'
                      commentcode:
                        $ref: '#/components/schemas/commentcode-schema'
                      note:
                        $ref: '#/components/schemas/note-schema'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '500':
          description: Server error
        '502':
          description: Bad gateway
        '503':
          description: Server unavailable
      parameters:
        - $ref: '#/components/parameters/requested-zipcode'
        - $ref: '#/components/parameters/requested-housenumber'
        - $ref: '#/components/parameters/requested-housenrext'
        - $ref: '#/components/parameters/physical-carrier'
        - $ref: '#/components/parameters/requested-phonenumber'
        - $ref: '#/components/parameters/copper-xdf-access-serviceid'
        - $ref: '#/components/parameters/connectionpointnumber'
        - $ref: '#/components/parameters/fiber-terminationpoint-id'
        - $ref: '#/components/parameters/fiber-xdf-access-serviceid'
components:

  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials

  parameters:
    requested-zipcode:
      in: query
      required: true
      name: requested-zipcode
      description: 'The zipcode for which to retrieve the functional product information or carrier information.'
      schema:
        $ref: '#/components/schemas/zipcode-schema'
    requested-housenumber:
      in: query
      required: true
      name: requested-housenumber
      description: 'The house number for which to retrieve the functional product information or carrier information.'
      schema:
        $ref: '#/components/schemas/housenumber-schema'
    requested-housenrext:
      in: query
      name: requested-housenrext
      description: 'The house number extension for which to retrieve the functional product information or carrier information.'
      schema:
        $ref: '#/components/schemas/housenrext-schema'
    connectionpointnumber:
      in: query
      name: connectionpointnumber
      description: 'The connectionpointnumber is an identification for the ISRA on the end-user’s address (e.g. 001, B, MTK, METERKAS). In case more connectionpoints exists on an address, the connectionpointnumber is required to retrieve connection details. If no connectionpointnumber was specified, the Carrier Information service will provide connection details for one or two ISRAs. If more than two ISRA’s are connected at the customers address, the Carrier Information service provides the list of available ISRA’s on the end-user address. This field is optional.'
      schema:
        $ref: '#/components/schemas/connectionpointnumber-schema'
    fiber-terminationpoint-id:
      in: query
      name: fiber-terminationpoint-id
      description: 'This is an optional field which specifies the fiber terminationpoint-id at the end-user’s address. In case of FTTH from carrier vendor Reggefiber (REGG), the fiber-terminationpoint-id is the name of the room on the address where the fiber is terminated. If a fiber-terminationpoint-id is specified, the Carrier Information Product will provide the current and future (planned) connection details for the given fiber-terminationpoint-id. If no fiber-terminationpoint-id is specified, the carrier-info will provide current and future connections of all fiber-terminationpoints on the end-user address.'
      schema:
        $ref: '#/components/schemas/fiber-terminationpoint-id-schema'
    physical-carrier:
      in: query
      name: physical-carrier
      description: 'Physical carrier of the connection between the end-user’s termination point (ISRA) and the remote access point (MDF/SDF/ODF). Valid input values are “Copper” or “Fiber”. This field is optional.'
      schema:
        $ref: '#/components/schemas/physical-carrier-schema'
    requested-phonenumber:
      in: query
      name: requested-phonenumber
      description: 'This is the phonenumber that will be used as reference for the copper-line and the ISRA. If a phonenumber is specified, address corrections can be done on zipcode, house number and house number extension. This field is optional.'
      schema:
        $ref: '#/components/schemas/phonenumber-schema'
    service-group:
      in: query
      name: service-group
      description: 'The service-group is a reference to the existing WBA service. The service-group is used for migration orders and for changes in existing WBA service of a WSO.'
      schema:
        $ref: '#/components/schemas/service-group-schema'
    technologyreliability:
      in: query
      name: technologyreliability
      description: |
        The optional technologyreliability query parameter should be provided as JSON array of objects. FPI uses a list of default technology types and reliability when these parameters are not used. A specified technology type and reliability in FPI overrules the default setting. ADSL_ISDN, SDSL and ADSL2+_ISDN are not shown in the output, unless explicitly specified in the request.

        Examples:

        [
          {
            "technology-type":"ADSL2+_POTS",
            "reliability":"80"
          }
        ]

        [
          {
            "technology-type":"GPON",
          }
        ]

        [
          {
            "technology-type":"ADSL2+_ISDN",
            "reliability":"80"
          },
          {
            "technology-type":"ADSL2+_POTS",
            "reliability":"80"
          }
        ]

        [
          {
            "technology-type":"ADSL2+_POTS",
            "reliability":"80"
          },
          {
            "technology-type":"GPON"
          }
        ]

        Note to supply this as query parameter, the special characeters must be url encoded (incl the + in ADSL2+). i.e. technologyreliability=[{"technology-type":"ADSL2+_POTS","reliability":"80"},{"technology-type":"GPON"}] becomes technologyreliability=%5B%7B%22technology-type%22%3A%22ADSL2%2B_POTS%22%2C%22reliability%22%3A%2280%22%7D%2C%7B%22technology-type%22%3A%22GPON%22%7D%5D
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/technologyreliability-schema'
    xdf-access-serviceid:  
      in: query
      name: xdf-access-serviceid
      description: 'The xdf-access-service-id is a 1-to-1 relationship between the address and the active copperpair or fiber connection. The xdf-access-service-id is used to provide most accurate bitrate and available technology type information for an existing WBA connection. If an xdf-access-serviceid is specified, address corrections can be done on zipcode, house number and house number extension. This field is optional.'
      schema:
        $ref: '#/components/schemas/xdf-access-serviceid-schema'
    copper-xdf-access-serviceid:  
      in: query
      name: copper-xdf-access-serviceid
      description: 'The xdf-access-service-id is a 1-to-1 relationship between the address and the active copperpair. The xdf-access-service-id is used to provide most accurate bitrate and available technology type information for an existing WBA connection. If an xdf-access-serviceid is specified, address corrections can be done on zipcode, house number and house number extension. This field is optional.'
      schema:
        $ref: '#/components/schemas/xdf-access-serviceid-schema'
    fiber-xdf-access-serviceid:  
      in: query
      name: fiber-xdf-access-serviceid
      description: 'This is the xdf-access-serviceid of the fiber connection. If xdf-access-serviceid and fiber-terminationpoint-id both are filled, the service-id will be taken as leading.'
      schema:
        $ref: '#/components/schemas/xdf-access-serviceid-schema'
  schemas:
    access-area-id-schema:
      type: string
      maxLength: 8
      description: An Access Area consists of a set of locations with DSLAMs connected to the Ethernet Transport Network.
      example: AA/12345
    actualuserinfo-schema:
      type: object
      description: This object is copied from the user provided address (requested address). This container is not filled when an error is returned.
      properties:
        zipcode:
          $ref: '#/components/schemas/zipcode-schema'
        housenumber:
          $ref: '#/components/schemas/housenumber-schema'
        housenrext:
          $ref: '#/components/schemas/housenrext-schema'
        connectionpointnumber:
          $ref: '#/components/schemas/connectionpointnumber-schema'
        fiber-terminationpoint-id:
          $ref: '#/components/schemas/fiber-terminationpoint-id-schema'
    planneduserinfo-schema:
      type: object
      description: The “planned” user-info is the customer address from installed base. Zipcode and housenumber may be corrected in case a phonenumber or xdf-access-serviceid was specified in the request.
      properties:
        zipcode:
          $ref: '#/components/schemas/zipcode-schema'
        housenumber:
          $ref: '#/components/schemas/housenumber-schema'
        housenrext:
          $ref: '#/components/schemas/housenrext-schema'
        street:
          $ref: '#/components/schemas/planned_user-street-schema'
        city:
          $ref: '#/components/schemas/planned-user-city-schema'
    areapop-schema:
      type: string
      maxLength: 15
      description: This field is filled with the AreaPoP (PoP location of the carrier vendor Fiber) connected to the customers address.
    asw-schema:
      type: string
      maxLength: 2
      description: 'Access Stability Value (ASW) is a broadband performance indicator from 1 (‘bad line’) to 10 (‘excellent line’). ASW is applicable for xDSL technology types on copper carriers except for technology type SDSL. ASW is not applicable for Fiber technology types FTTH and FTTO. ASW is determined by the actual speed measured on the DSL modem, the predicted speed for the same technology based on length and the line stability. ASW is determined on a weekly basis for active connections. An ASW value can be empty if one of the variables (actual speed, predicted speed, line stability) is not available.'
      example: 8
    availability-schema:
      type: string
      maxLength: 50
      description: |
        This field indicates the availability per technology type. A technology type can be Open (O), Planned (P), Closed (C) or Temporary Closed (TC). A technology type can be set to TC in case port-capacity is not available in the Distribution Point.''
      example: O
    carrier-status-schema:
      type: string
      description: |
        In case of a full match, the carrier status for each carrier-vendor will be shown. For carrier-vendor MDF/SDF, carrier-status will be Open or Planned (e.g. High-Rise building, or another reason why copper status is planned). If Copper is not feasible on this address, carrier-status is set to Closed. For carrier-vendor REGG or KPNFO, carrier-status will be returned based on the nl-type. If Fiber is not available on this address, carrier-status is set to Closed. In case of a fiber NL-type 9, carrier status is set to Planned. In case of a partial address match on Copper, no carrier-status can be returned. In case of a partial address match on Fiber, the carrier-status will be selected.
      example: O
    bandwidth-up-schema:
      type: string
      maxLength: 50
      description: 'This field provides the expected actual up bitrate in kbps, i.e. the actual bitrate as defined in the corresponding technology standard for an xDSL modem or a fiber NT (see WBA Annex 2).'
      example: 20139
    bandwidth-down-schema:
      type: string
      maxLength: 50
      description: 'This field provides the expected actual down bitrate in kbps, i.e. the actual bitrate as defined in the corresponding technology standard for an xDSL modem or a fiber NT (see WBA Annex 2).'
      example: 71968
    bonding-allowed-schema:
      type: string
      pattern: '(0|1|2|3)?'
      maxLength: 1
      example: 2
      description: |
        Bonding allowed information is mainly based on the quality of the copper cable and must not be confused with free available copper pairs. Refer to the table below with the values for the field bonding-allowed.
        0: No pair bonding. Bonding is not available and will not become available.
        1: Pair bonding upgrade not yet finished. Bonding not available yet. Check on quality of additional connections needed for bonding is not yet finished.
        2: Pair bonding upgrade finished. Bonding is available. Quality of additional connections for bonding is checked
        3: Temporary not available. Bonding temporary not available.
    cable-length-schema:
      type: string
      maxLength: 12
      description: 'Length of the copper cable connection (in meters) which can be used to determine NLS-type 3 category. In case this length <25m and no free copper pairs are available, a new line can be requested as NLS-type 3. In case this length is >=25m and no free copper pairs are available, WSO needs to request a quotation for installation of a new NLS-type 3 line via infraportal https://www.vwtelecom.com/cit-team WSO can submit a WBA order on NLS-type 1, when copperpair on ISRA is delivered.'
      example: 55
    location-ftu-schema:
      type: string
      maxLength: 50
      enum:
        - METERBOX
        - LIVINGROOM
        - BASEMENT
        - OTHER
      description: |
        Location of the FTU. This can have the following values:
        - METERBOX
        - LIVINGROOM
        - BASEMENT
        - OTHER
      example: LIVINGROOM
    mdf-cable-length-schema:
      type: string
      maxLength: 12
      description: The total length from MDF to the end of the cable. The house connection cable, having a separate cable-length is connected on any point in the distribution cable, not necessary on the end of the cable, but probably closer to the MDF.
    network-provider-schema:
      type: string
      maxLength: 50
      description: This is the network provider (owner of the network) of the passive connection. In case of KPN this field is filled with KPN Network NL.
      example: KPN Network NL
    carriervendor-fpi-schema:
      type: array
      items:
        type: object
        description: 'The carriervendor object has carrier vendor information (MDF, SDF, REGG or KPNFO) for the requested address.'
        properties:
          carrier-vendor-id:
            $ref: '#/components/schemas/carrier-vendor-id-schema'
          carrier-status:
            $ref: '#/components/schemas/carrier-status-schema'
          asw:
            $ref: '#/components/schemas/asw-schema'
          ftu-type:
            $ref: '#/components/schemas/ftu-type-schema'
          current-nt-type:
            $ref: '#/components/schemas/current-nt-type-schema'
          nl-type:
            $ref: '#/components/schemas/nl-type-schema'
          plan-date:
            $ref: '#/components/schemas/plan-date-schema'
          has-date:
            $ref: '#/components/schemas/has-date-schema'
          san-only:
            $ref: '#/components/schemas/san-only-schema'
          commentcode:
            $ref: '#/components/schemas/commentcode-schema'
          addresslist:
            type: array
            items:
              type: object
              description: |
                The addresslist optional object is used in case of a partial address match. All known addresses (list of house number extension) for the carrier-vendor (MDF, SDF, REGG, KPNFO) will be provided. In case of a full match and multiple copper or fiber termination points exists, FPI will return the list of known Copper ISRA connectionpoint (only connectionpoint number) or fiber-termination point on the requested address.
              properties:
                zipcode:
                  $ref: '#/components/schemas/zipcode-schema'
                housenumber:
                  $ref: '#/components/schemas/housenumber-schema'
                housenrext:
                  $ref: '#/components/schemas/housenrext-schema'
                isra-specs:
                  $ref: '#/components/schemas/isra-specs-schema'
                fiber-terminationpoint-id:
                  $ref: '#/components/schemas/fiber-terminationpoint-id-schema'
    carriervendor-cip-schema:
      type: array
      items:
        type: object
        description: 'The optional carriervendor object is used when the requested housenumber-extension does not exists and there is no other identifier (phonenumber or xdf-access-serviceid) in the request to identify the connection. All known addresses per carrier-vendor / physical-carrier will be provided including carrier-status (Open, Closed, Planned) and planned-nl-type for fiber. Errorcode 251 is returned in case requested zipcode and housenumber exists, but the requested housenumber extension is missing or incorrect. The list of known housenumber extensions on the requested addresses is provided for each carrier-vendor (MDF, SDF, REGG, non-network). The WSO can choose a valid housenumber extension from the list. Errorcode 202 will be returned in case the requested zipcode and housenumber is unknown.'
        properties:
          carrier-vendor-id:
            $ref: '#/components/schemas/carrier-vendor-id-schema'
          physical-carrier:
            $ref: '#/components/schemas/physical-carrier-schema'
          address:
            type: array
            items:
              type: object
              description: |
                This is the list of the known zipcode, house number, house number extension, carrier-status and planned-nl-type per carrier-vendor (REGG, KPNFO, MDF or non-network). Note that in CIPv44, housenrext has a max of 5 positions.
              properties:
                zipcode:
                  $ref: '#/components/schemas/zipcode-schema'
                housenumber:
                  $ref: '#/components/schemas/housenumber-schema'
                housenrext:
                  $ref: '#/components/schemas/housenrext-schema'
                carrier-status:
                  $ref: '#/components/schemas/carrier-status-schema'
                planned-nl-type:
                  $ref: '#/components/schemas/nl-type-schema'
    carrier-vendor-id-schema:
      type: string
      maxLength: 50
      description: 'The carrier-vendor is the provider of the WBA physical carrier between DSLAM port and customer location, i.e.: - Copper carrier: MDF, SDF - Fiber carrier: REGG, KPNFO. Non-network will be returned for an existing address where no infrastructure (fiber or copper) is found in the installed base.'
      example: REGG
    cgb-name-schema:
      type: string
      maxLength: 16
      example: Asd-C
      description: This is the MDF-location where the end-user address is connected to.
    city-schema:
      type: string
      maxLength: 24
      example: Den Haag
    planned-user-city-schema:
      type: string
      maxLength: 80
      example: Den Haag
    commentcode-schema:
      type: string
      maxLength: 80
      description: |
        Commentcodes are never blocking but meant to inform the WSO about certain situations.    
        
        Information about commentcodes can be found in the document *WBA Fulfillment Error Comment Code List*, which is provided to every KPN Wholesale Broadband Access customer.
      example: 9065
    connectionpointnumber-schema:
      type: string
      maxLength: 3
      minLength: 0
      pattern: '\d{3}'
      example: 001
    construction-type-schema:
      type: string
      enum:
        - EXISTING_CONSTRUCTION
        - NEW_CONSTRUCTION
        - UNKNOWN
      maxLength: 50
      description: |
        Possible values for this field are:
        - EXISTING_CONSTRUCTION (“bestaande bouw”)
        - NEW_CONSTRUCTION (“nieuwbouw”)
        - UNKNOWN
      example: EXISTING_CONSTRUCTION
    copperinfo-schema:
      type: object
      description: 'This object is present in the response for physical-carrier “Copper” and will be returned when requested address has copper connections.'
      properties:
        carrier-vendor-id:
          $ref: '#/components/schemas/carrier-vendor-id-schema'
        carrier-status:
          $ref: '#/components/schemas/carrier-status-schema'
        requestedlinedetails:
          type: object
          description: 'This object is filled when a phonenumber and/or xdf-access-serviceid was specified in the request.'
          properties:
            main-phonenumber:
              $ref: '#/components/schemas/phonenumber-schema'
            currenttelephonytype:
              $ref: '#/components/schemas/telephonytype-schema'
            xdf-access-serviceid:
              $ref: '#/components/schemas/xdf-access-serviceid-schema'
            additional-xdf-access-serviceid:
              $ref: '#/components/schemas/xdf-access-serviceid-schema'
            status-connection:
              $ref: '#/components/schemas/status-connection-schema'
            isra-pin:
              $ref: '#/components/schemas/isra-pin-schema'
            plandate:
              $ref: '#/components/schemas/plan-date-schema'
        connectionpointinfo:
          type: array
          items:
            type: object
            properties:
              cgb-name:
                $ref: '#/components/schemas/cgb-name-schema'
              isra-specs:
                $ref: '#/components/schemas/isra-specs-schema'
              number-of-nl1-lines:
                $ref: '#/components/schemas/number-of-nl-lines-schema'
              number-of-nl2-lines:
                $ref: '#/components/schemas/number-of-nl-lines-schema'
              san-only:
                $ref: '#/components/schemas/san-only-schema'
              bonding-allowed:
                $ref: '#/components/schemas/bonding-allowed-schema'
              plandate:
                $ref: '#/components/schemas/plan-date-schema'
              cable-length:
                $ref: '#/components/schemas/cable-length-schema'
              mdf-cable-length:
                $ref: '#/components/schemas/mdf-cable-length-schema'
              copperconnection:
                type: array
                items:
                  type: object
                  properties:
                    current-typeofconnection:
                      $ref: '#/components/schemas/typeofconnection-schema'
                    current-xdf-access-serviceid:
                      $ref: '#/components/schemas/xdf-access-serviceid-schema'
                    current-phonenumber:
                      $ref: '#/components/schemas/phonenumber-schema'
    

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kpn/refs/heads/main/openapi/kpn-wholesale-broadband-access-fpi-cip-openapi.yml