# Fibre Cafe : Tenant API # Introduction The Fibre Cafe is a scalable, unified platform to support L2C provisioning, in-life modification/cease and T2R trouble resolution between communication providers (CP) and network operators or aggregators. CPs are known as 'tenants' on the Fibre Cafe and communicate with this API - the Fibre Cafe's Tenant API. The network operators and aggregators providing the underlying services are known as 'suppliers'. The Fibre Cafe will route requests from this API to appropriate supplier(s). Tenants will be configured to use suppliers based on requirements and commercial agreements. Initial availability and appointing requests are synchronous. Ordering requests are asynchronous with confirmation and updates via KCIs (Keep Customer Informed). **Note:** Order updates (KCIs) will be sent to the Tenant Updates API which the tenant must implement. __ © 2022-2026 Strategic Imperatives Version: 1.17 ## Servers ``` https://prod.fibregateway.com/v1 ``` ## Security ### oauth2 All requests to the Fibre Cafe must be authenticated and include a valid access token. The Fibre Cafe uses the industry standard [OAuth 2.0 protocol](https://oauth.net/2/). Type: oauth2 ## Download OpenAPI description [Fibre Cafe : Tenant API](https://docs.thefibrecafe.net/_bundle/openapi/prod/tenant-api/gen/index.yaml) ## Address Lookup Used to look up address identifiers and details for a given postal code or UPRN. This is not implemented by all suppliers - it is primarily provided to assist with NAD/District Code lookup for suppliers operating on the Openreach network. This follows the concepts in TMF673 - Address Management API. ### Find address details including UPRN, NAD and other identifiers. - [GET /addresses](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/address-lookup/handleaddresslookup.md): This endpoint can be called to lookup addresses and, in particular, address identifiers (e.g. NAD and District Code) to use in subsequent calls. Postal code or UPRN must be supplied. When using postal code, additional context such as house name, street number and/or street should be supplied to reduce returned results (results may be truncated by the underlying address source). Availability of this endpoint requires an address source to be configured - it is primarily provided to assist with NAD/District Code lookup for suppliers operating on the Openreach network. ## Service Availability Retrieve what services (if any) the supplier has available for a given address. This follows the concepts in TMF645 - Service Qualification API and TMF673 - Address Management API. ### Return available services for a given address. - [GET /service-availability](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-availability/handleavailabilitycheck.md): This endpoint can be called to find what services are available at a given address. An address query parameter must be supplied specifying address ID and type as described above. If required, a particular supplier or list of suppliers can be specified in the request; otherwise the Fibre Cafe will check with all suppliers as configured for the tenant. ## Quote Management Create and manage a quote to provide service at requested sites. This follows the concepts in TMF648 - Quote Management API. ### Return a quote for available services for a given address. - [POST /quote](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/quote-management/handlequote.md): This endpoint can be called to generate a quote for advanced services, such as Ethernet. The details of the individual supplier or list of suppliers must be specified in the request. ## Appointment Management Retrieve and reserve appointments for installing or maintaining a service at a given address. This follows the concepts in TMF646 - Appointment API. ### Return available appointment slots for a given service and address. - [GET /available-appointments](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/appointment-management/handleappointmentavailability.md): This endpoint can be called to find what appointments a supplier has available to install or maintain service(s) at a given address. An address query parameter must be supplied specifying address ID and type along with the required service specification as returned by the /service-availability endpoint. The next available appointments after the appointmentStartDate will be returned - a suitable date should be chosen based on installationLeadTime if this was provided during availability check. Appointment slots are classified based on day as weekday or saturday/sunday and by time to day, AM/PM or early morning/evening. Based on the tenant-supplier agreement, some of these classifications will be considered premium. This request will be routed to a particular supplier which must be specified. ### Reserve a previously returned appointment slot. - [POST /appointments](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/appointment-management/handlereserveappointment.md): This endpoint can be called to reserve an appointment with a supplier to install or maintain service(s) at a given address. Details of a previously returned available appointment must be provided to be reserved according to the supplier reservation policy. Where the reservation has a TTL (time to live) before being released, the expiry time will be stated. The returned reservation ID must be sent as part of the order at which point it should be considered confirmed. ## Order Management Create and manage an order to provide, cease or modify a service at a given address. This follows the concepts in TMF641 - Service Ordering Management API. ### Create an order for provide, cease or modify service. - [POST /service-orders](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handlecreateorder.md): This endpoint can be called to place a order with a supplier to provide, cease or modify a service. The Fibre Cafe will validate the request and generate an order number which is returned. If the order is rejected immediately then a 400 code will be returned with reason(s) for the rejection in the response. The order will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the order does not meet supplier validation/processing rules. Once the order is acknowledged, the supplier may assign their own order number which will be returned in the KCI. ### Retrieve current order details including updates (KCIs). - [GET /service-orders/{id}](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handlegetorder.md): This endpoint is called to retrieve the current details (including KCIs) about an inflight service order. ### Request an amendment to an inflight provide, cease or modify order. - [POST /service-order-amendments](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handleamendorder.md): This endpoint is called to request amendment(s) to an existing inflight order to provision, modify or cease a service. The Fibre Cafe will validate the request and generate an amendment reference which is returned. If the order amendment is rejected immediately then a 400 code will be returned with reason(s) for the rejection in the response. The order amendment will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the amendment does not meet supplier validation/processing rules. ### Request to cancel an inflight provide, cease or modify order. - [POST /service-order-cancellations](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handlecancelorder.md): This endpoint is called to request cancellation of an existing inflight order to provision, modify or cease a service. The Fibre Cafe will validate the request and generate a unique ID which is returned. If the order cancellation is rejected immediately then a 400 code will be returned with reason(s) for the rejection in the response. The order cancellation will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the cancellation does not meet supplier validation/processing rules. ### Create an order to provide ethernet service. - [POST /ethernet/service-orders](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handlecreateethernetorder.md): This endpoint can be called to place an ethernet order with a supplier - currently only provide is supported with cease and modify coming soon. The Fibre Cafe will validate the request and generate an order number which is returned. If the order is rejected immediately then a 400 code will be returned with reason(s) for the rejection in the response. The ethernet order will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the order does not meet supplier validation/processing rules. Once the order is acknowledged, the supplier may assign their own order number which will be returned in the KCI. ### Retrieve current ethernet order details including updates (KCIs). - [GET /ethernet/service-orders/{id}](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/order-management/handlegetethernetorder.md): This endpoint is called to retrieve the current details (including KCIs) about an inflight ethernet order. ## Service Test Management ### Create a service test record for an active service. - [POST /service-tests](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-test-management/handleservicetest.md): This endpoint can be called to perform a service test on an active service. The Fibre Cafe will validate the request and generate a service test identifier which is returned. If the test request is rejected immediately then a 4XX code will be returned with reason(s) for the rejection in the response. The Fibre Cafe will internally determine the best supplier test to execute based on supplier and service specification attributes, in addition to the PROBLEM_TYPE characteristics supplied. The service test result will be returned asynchronously via a KCI, and may also be queried via the GET /service-tests/{id} API. ### Retrieve current service test details including result if available. - [GET /service-tests/{id}](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-test-management/handlegetservicetestbyid.md): This endpoint is called to retrieve the current details and status for a service test request. The result of the test will be returned if available. ## Service Problem Management ### Create a problem/incident for an active service owned by the communications provider (CP). - [POST /service-problems](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-problem-management/handlecreateproblem.md): This endpoint can be called to raise a problem with a supplier to resolve a potential issue with a service. The Fibre Cafe will validate the request and generate a problem identifier which is returned. If the problem request is rejected immediately then a 4XX code will be returned with reason(s) for the rejection in the response. The problem will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the problem does not meet supplier validation/processing rules. Once the problem is acknowledged, the supplier may assign their internal reference number which will be returned in the KCI as a characteristic. ### Retrieve current service problem details including updates (KCIs). - [GET /service-problems/{id}](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-problem-management/handlegetserviceproblembyid.md): This endpoint is called to retrieve the current details (including KCIs) about a service problem request. ### Request to amend an inflight service problem. - [POST /service-problem-amendments](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-problem-management/handleamendproblem.md): This endpoint is called to request amendment of an existing inflight service problem on an active service. The Fibre Cafe will validate the request and generate a unique ID which is returned. If the problem amendment is rejected immediately then a 4XX code will be returned with reason(s) for the rejection in the response. The problem amendment will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the request does not meet supplier validation/processing rules. ### Request to cancel an inflight service problem. - [POST /service-problem-cancellations](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-problem-management/handlecancelproblem.md): This endpoint is called to request cancellation of an existing inflight service problem on an active service. The Fibre Cafe will validate the request and generate a unique ID which is returned. If the problem cancellation is rejected immediately then a 4XX code will be returned with reason(s) for the rejection in the response. The problem cancellation will then be sent to the supplier for processing and further updates will be sent via KCIs - this could include a rejection if the cancellation does not meet supplier validation/processing rules. ### Request to accept or reject resolution of an inflight service problem. - [PATCH /service-problem-resolutions/{id}](https://docs.thefibrecafe.net/openapi/prod/tenant-api/gen/service-problem-management/handleserviceproblemresolution.md): This endpoint is called to request acceptance or rejection of a supplier's resolution to an inflight service problem.