Skip to content

Fibre Cafe : Supplier API (1.15)

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

Download OpenAPI description
Languages
Servers
https://api.provided_by_supplier.net

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.

Operations

Quote Management

Create and manage a quote to provide service at requested sites. This follows the concepts in TMF648 - Quote Management API.

Operations

Appointment Management

Retrieve and reserve appointments for installing a service at a given address.

This follows the concepts in TMF646 - Appointment API.

Operations

Return available appointment slots for a given service and address.

Request

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.

Security
oauth2
Query
addressobjectrequired

Address identifier of provided type e.g. UPRN to check for appointment availability

Example: address={"id":"200004033694","type":"UPRN"}
address.​idstringrequired

Address identifier of provided type e.g. UPRN

Example: "200004033694"
address.​typestringrequired

Type of addressId provided e.g. UPRN

Example: "UPRN"
serviceSpecificationobjectrequired

The service to be installed during this appointment

Example: serviceSpecification={"id":"ftthl2r"}
serviceSpecification.​idstring[ 1 .. 50 ] charactersrequired

Unique identifier for this service specification (if available)

Example: "ftthl2r"
serviceSpecification.​namestring[ 1 .. 50 ] charactersread-only

Name of the service

Example: "FTTH"
appointmentFromDatestring(date)

Find appointment slots from this date

Example: appointmentFromDate=2022-01-05
classificationsArray of strings(TimeslotClassification)

Find appointment slots only of these classification types (comma delimited list)

Items Enum"WEEKDAY""WEEKDAY_AM""WEEKDAY_PM""WEEKDAY_EARLY""WEEKDAY_EVENING""SATURDAY""SATURDAY_AM""SATURDAY_PM""SATURDAY_EARLY""SATURDAY_EVENING"
Example: classifications=WEEKDAY_AM,WEEKDAY_PM
appointmentPurposestring(AppointmentPurpose)required

Purpose of the appointment : PROVIDE, REPAIR, MODIFY

Example: appointmentPurpose=PROVIDE
Headers
X-Request-IDstringrequired

Unique identifier to identify request and response events across the Fibre Cafe gateway

X-Conversation-IDstringrequired

Identifier to track message journey across the Fibre Cafe gateway

Tenantstringrequired

The tenant that has placed the request on the Fibre Cafe

Example: TENANT1
curl -i -X GET \
  'https://api.provided_by_supplier.net/available-appointments?address={%22id%22%3A%22200004033694%22%2C%22type%22%3A%22UPRN%22}&serviceSpecification={%22id%22%3A%22ftthl2r%22}&appointmentFromDate=2022-01-05&classifications=WEEKDAY_AM%2CWEEKDAY_PM&appointmentPurpose=PROVIDE' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Tenant: TENANT1' \
  -H 'X-Conversation-ID: string' \
  -H 'X-Request-ID: string'

Responses

Request successful - zero or more available appointments were returned

Headers
X-Request-IDstringrequired

Unique identifier to identify request and response events across the Fibre Cafe gateway

X-Conversation-IDstringrequired

Identifier to track message journey across the Fibre Cafe gateway

Bodyapplication/json
addressobject(AddressIdentifier)

Address identifier for location including type of identifier.

serviceSpecificationobject(ServiceSpecification)

Details of a service the supplier provides at the selected address.

availableTimeslotsArray of objects(Timeslot)>= 0 itemsrequired

List of available appointment timeslots

availableTimeslots[].​timeslotStartDateTimestring(date-time)required

Start date/time for this timeslot

Example: "2022-01-10T09:00:00.000Z"
availableTimeslots[].​timeslotEndDateTimestring(date-time)required

End date/time for this timeslot

Example: "2022-01-10T13:00:00.000Z"
availableTimeslots[].​classificationstring(TimeslotClassification)read-only

Timeslot classification

Enum"WEEKDAY""WEEKDAY_AM""WEEKDAY_PM""WEEKDAY_EARLY""WEEKDAY_EVENING""SATURDAY""SATURDAY_AM""SATURDAY_PM""SATURDAY_EARLY""SATURDAY_EVENING"
Example: "SATURDAY_AM"
availableTimeslots[].​standardbooleanread-only

Timeslot is classified as standard (non-premium)

Default true
Response
application/json
{ "address": { "id": "200004033694", "type": "UPRN" }, "serviceSpecification": { "id": "ftthl2r", "name": "FTTH" }, "availableTimeslots": [ {} ] }

Reserve an appointment slot.

Request

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.

Security
oauth2
Headers
X-Request-IDstringrequired

Unique identifier to identify request and response events across the Fibre Cafe gateway

X-Conversation-IDstringrequired

Identifier to track message journey across the Fibre Cafe gateway

Tenantstringrequired

The tenant that has placed the request on the Fibre Cafe

Example: TENANT1
Bodyapplication/json
idnumber>= 1required

Unique identifier for this appointment

Example: 234
addressobject(AddressIdentifier)required

Address identifier for location including type of identifier.

address.​idstringrequired

Address identifier of provided type e.g. UPRN

Example: "200004033694"
address.​typestringrequired

Type of addressId provided e.g. UPRN

Example: "UPRN"
serviceSpecificationobject(ServiceSpecification)required

Details of a service the supplier provides at the selected address.

serviceSpecification.​idstring[ 1 .. 50 ] charactersrequired

Unique identifier for this service specification (if available)

Example: "ftthl2r"
purposestring(AppointmentPurpose)

Purpose of the appointment : PROVIDE, REPAIR, MODIFY

Example: "PROVIDE"
timeslotobject(Timeslot)required

Represents an appointment timeslot with a supplier.

timeslot.​timeslotStartDateTimestring(date-time)required

Start date/time for this timeslot

Example: "2022-01-10T09:00:00.000Z"
timeslot.​timeslotEndDateTimestring(date-time)required

End date/time for this timeslot

Example: "2022-01-10T13:00:00.000Z"
curl -i -X POST \
  https://api.provided_by_supplier.net/appointments \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Tenant: TENANT1' \
  -H 'X-Conversation-ID: string' \
  -H 'X-Request-ID: string' \
  -d '{
    "id": 234,
    "address": {
      "id": "200004033694",
      "type": "UPRN"
    },
    "serviceSpecification": {
      "id": "ftthl2r"
    },
    "purpose": "PROVIDE",
    "timeslot": {
      "timeslotStartDateTime": "2022-01-10T09:00:00.000Z",
      "timeslotEndDateTime": "2022-01-10T13:00:00.000Z"
    }
  }'

Responses

Operation successful - appointment was reserved. Returned ID will be used when placing order

Headers
X-Request-IDstringrequired

Unique identifier to identify request and response events across the Fibre Cafe gateway

X-Conversation-IDstringrequired

Identifier to track message journey across the Fibre Cafe gateway

Bodyapplication/json
supplierReferencestring[ 1 .. 50 ] characters

Unique reference generated by the supplier for this appointment

Example: "A234"
expiryDateTimestring(date-time)

Where an appointment is reserved, this contains the date/time when the reservation will expire.

Example: "2022-01-01T13:45:00.000Z"
idnumber>= 1required

Unique identifier for this appointment

Example: 234
addressobject(AddressIdentifier)required

Address identifier for location including type of identifier.

address.​idstringrequired

Address identifier of provided type e.g. UPRN

Example: "200004033694"
address.​typestringrequired

Type of addressId provided e.g. UPRN

Example: "UPRN"
serviceSpecificationobject(ServiceSpecification)required

Details of a service the supplier provides at the selected address.

serviceSpecification.​idstring[ 1 .. 50 ] charactersrequired

Unique identifier for this service specification (if available)

Example: "ftthl2r"
serviceSpecification.​namestring[ 1 .. 50 ] charactersread-only

Name of the service

Example: "FTTH"
purposestring(AppointmentPurpose)

Purpose of the appointment : PROVIDE, REPAIR, MODIFY

Example: "PROVIDE"
timeslotobject(Timeslot)required

Represents an appointment timeslot with a supplier.

timeslot.​timeslotStartDateTimestring(date-time)required

Start date/time for this timeslot

Example: "2022-01-10T09:00:00.000Z"
timeslot.​timeslotEndDateTimestring(date-time)required

End date/time for this timeslot

Example: "2022-01-10T13:00:00.000Z"
timeslot.​classificationstring(TimeslotClassification)read-only

Timeslot classification

Enum"WEEKDAY""WEEKDAY_AM""WEEKDAY_PM""WEEKDAY_EARLY""WEEKDAY_EVENING""SATURDAY""SATURDAY_AM""SATURDAY_PM""SATURDAY_EARLY""SATURDAY_EVENING"
Example: "SATURDAY_AM"
timeslot.​standardbooleanread-only

Timeslot is classified as standard (non-premium)

Default true
Response
application/json
{ "supplierReference": "A234", "expiryDateTime": "2022-01-01T13:45:00.000Z", "id": 234, "address": { "id": "200004033694", "type": "UPRN" }, "serviceSpecification": { "id": "ftthl2r", "name": "FTTH" }, "purpose": "PROVIDE", "timeslot": { "timeslotStartDateTime": "2022-01-10T09:00:00.000Z", "timeslotEndDateTime": "2022-01-10T13:00:00.000Z", "classification": "SATURDAY_AM", "standard": true } }

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.

Operations

Service Test Management

Handle a request to perform a service test on a given active line/service.

Operations

Service Problem Management

Create and manage a service problem for a given line/service.

Operations