# Fibre Cafe : Supplier 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 the Fibre Cafe's Tenant API. The network operators and aggregators providing the underlying services are known as 'suppliers' and provide the Supplier API. Each supplier is responsible for implementing this southbound API specification for the Fibre Cafe to retrieve available services and support appointing and order management. **Note:** Order updates (KCIs) must be sent to the Supplier Updates API hosted by the Fibre Cafe. __ © 2022-2026 Strategic Imperatives Version: 1.15 ## Servers ``` https://api.provided_by_supplier.net ``` ## Security ### oauth2 The Fibre Cafe can support a number of different authentication mechanisms e.g. OAuth2, Mutual TLS, Basic Auth. We recommend the industry standard [OAuth 2.0 protocol](https://oauth.net/2/) client credentials flow where possible. Type: oauth2 ## Download OpenAPI description [Fibre Cafe : Supplier API](https://docs.thefibrecafe.net/_bundle/openapi/prod/supplier-api/gen/index.yaml) ## 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 given address. - [GET /service-availability](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/service-availability/handleavailabilitycheck.md): This endpoint is called to find what services are available at a given address with a supplier. An address query parameter will be supplied specifying address ID and type. All parameters are mandatory and will always be supplied by the Fibre Cafe. ## 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/supplier-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 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/supplier-api/gen/appointment-management/handleappointmentavailability.md): This endpoint is called to find what appointments a supplier has available to install service(s) at a given address. An address query parameter will be supplied specifying address ID and type along with the required serviceSpecification(s) as returned by the /service-availability endpoint. All parameters are mandatory and will always be supplied by the Fibre Cafe. ### Reserve an appointment slot. - [POST /appointments](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/appointment-management/handlereserveappointment.md): This endpoint is called to reserve an appointment with a supplier to install service(s) at a given address. This endpoint will be supplied a previously returned available appointment slot to be reserved according to the supplier reservation policy. Where the reservation has a TTL (time to live) before being released, the expiry time should be returned. The returned appointment ID will 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 to provide, cease or modify a service. - [POST /service-orders](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/order-management/handlecreateorder.md): This endpoint is called to place an order with the supplier to provision a new service or cease/modify an existing service. The supplier should validate the order request and accept the order if the validation is successful or otherwise reject the order. If the order is rejected, a 422 code should be returned with reason(s) for the rejection in the response. If the order is accepted, the supplier may return a 202 accepted response without acknowledging the order if further validation/processing is required. In this scenario, the supplier must then send an order update (KCI) to later acknowledge the order and provide the order number. Alternatively, the supplier can synchronously acknowledge the order by returning a 201 created response with the returned order containing the supplier order number and status of ACKNOWLEDGED. The order can also be committed at this stage by returning the order status of IN_PROGRESS. ### Request an amendment to an inflight provide, cease or modify order. - [POST /service-order-amendments](https://docs.thefibrecafe.net/openapi/prod/supplier-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. A request will contain 1 or more fields to be amended - only fields supplied should be changed e.g. if a new contact phone number is provided then the existing contact name and email address would remain the same. The supplier should validate the amendment request. If the request is invalid or not possible then a 422 code should be returned with reason(s) for the rejection in the response. The supplier may return a 202 accepted response without confirming the cancellation if further validation/processing is required. In this scenario, the supplier must then send an order update (KCI) to later confirm the order was cancelled or if rejected. Alternatively, the supplier can confirm the amendment immediately by returning a 201 created response. ### Request to cancel an inflight provide, cease or modify order. - [POST /service-order-cancellations](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/order-management/handlecancelorder.md): This endpoint is called to request cancellation of an existing inflight order to provision/modify/cease a service or for a cancellation other (unsolicited cease). The supplier should validate the cancellation request. If the request is invalid or not possible then a 422 code should be returned with reason(s) for the rejection in the response. The supplier may return a 202 accepted response without confirming the cancellation if further validation/processing is required. In this scenario, the supplier must then send an order update (KCI) to later confirm the order was cancelled or if rejected. Alternatively, the supplier can confirm the cancellation immediately by returning a 201 created response. ### Create an order to provide ethernet service. - [POST /ethernet/service-orders](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/order-management/handlecreateethernetorder.md): This endpoint can be called to place an ethernet order with a supplier to provide service. Ability to cease or modify a service will follow in a later update. The supplier should validate the order request and accept the order if the validation is successful or otherwise reject the order. If the order is rejected, a 422 code should be returned with reason(s) for the rejection in the response. If the order is accepted, the supplier may return a 202 accepted response without acknowledging the order if further validation/processing is required. In this scenario, the supplier must then send an order update (KCI) to later acknowledge the order and provide the order number. Alternatively, the supplier can synchronously acknowledge the order by returning a 201 created response with the returned order containing the supplier order number and status of ACKNOWLEDGED. The order can also be committed at this stage by returning the order status of IN_PROGRESS. ## Service Test Management Handle a request to perform a service test on a given active line/service. ### Perform a service test on an active live/service. - [POST /service-tests](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/service-test-management/handleservicetest.md): This endpoint is called to request a service test on an active line/service. The supplier should validate and accept the request if the validation is successful or otherwise reject it. If the service test is rejected, a 422 code should be returned with reason(s) for the rejection in the response. If the service test is accepted, the supplier should return a 201 created response with the service test reference and start the test. The result of the service test should be sent asynchronously via the Fibre Cafe - Supplier Updates API once the test has completed. ## Service Problem Management Create and manage a service problem for a given line/service. ### Create a problem/incident for an active service owned by the communications provider (CP). - [POST /service-problems](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/service-problem-management/handlecreateproblem.md): This endpoint is called to raise a problem with the supplier to resolve a potential issue with a service. The supplier should validate and accept the request if the validation is successful or otherwise reject it. If the request is rejected, a 422 code should be returned with reason(s) for the rejection in the response. If the request is accepted, the supplier may return a 202 accepted response without acknowledging the service problem if further validation/processing is required. In this scenario, the supplier must then send an update (KCI) to later acknowledge the service problem and provide the problem reference. Alternatively, the supplier can synchronously acknowledge the service problem by returning a 201 created response with the response containing the problem reference and status of ACKNOWLEDGED. The service problem can also be committed at this stage by returning the status of IN_PROGRESS. ### Request to amend an inflight service problem. - [POST /service-problem-amendments](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/service-problem-management/handleamendproblem.md): This endpoint is called to request amendment of an existing inflight service problem on an active service. A request will contain 1 or more fields to be amended - only fields supplied should be changed. The supplier should validate the amendment request. If the request is invalid or not possible then a 422 code should be returned with reason(s) for the rejection in the response. The supplier may return a 202 accepted response without confirming the amendment if further validation/processing is required. In this scenario, the supplier must then send an update (KCI) to later confirm the amendment was applied or if rejected. Alternatively, the supplier can confirm the amendment immediately by returning a 201 created response. ### Request to cancel an inflight service problem. - [POST /service-problem-cancellations](https://docs.thefibrecafe.net/openapi/prod/supplier-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 supplier should validate the cancellation request. If the request is invalid or not possible then a 422 code should be returned with reason(s) for the rejection in the response. The supplier may return a 202 accepted response without confirming the cancellation if further validation/processing is required. In this scenario, the supplier must then send an update (KCI) to later confirm the cancellation was completed or if rejected. Alternatively, the supplier can confirm the cancellation immediately by returning a 201 created response. ### Request to accept or reject resolution of an inflight service problem. - [PATCH /service-problem-resolutions/{id}](https://docs.thefibrecafe.net/openapi/prod/supplier-api/gen/service-problem-management/handleserviceproblemresolution.md): This endpoint is called to signify acceptance or rejection of a supplier's resolution to an inflight service problem. Where the tenant is satisfied with the resolution, the status of the resolution will be set to ACCEPTED and the service problem can be closed with the status set to COMPLETED. Alternatively, the status will be REJECTED if the tenant is not satisfied and they should provide a reason in the tenantNotes field. The status problem will be re-opened with the status set back to IN_PROGRESS.