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

Return a quote for available services for a given address.

Request

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.

Security
oauth2
Headers
X-Request-IDstringrequired

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

X-Conversation-IDstringrequired

Identifier to track message journey across the Fibre Cafe gateway

Bodyapplication/json
idinteger>= 1required

A unique identifier of the quote (generated by the Fibre Cafe)

externalIdentifierstring[ 0 .. 64 ] characters

A unique identifier of the quote as provided by the tenant

Example: "QUO-ETH-5001"
sitesArray of objects(Site)>= 2 itemsrequired
sites[].​namestringrequired

The name of the site

Example: "Strategic Imperative Offices"
sites[].​postcodestring[ 1 .. 12 ] charactersrequired

Postal code

Example: "TW184LG"
sites[].​rolestring(SiteRole)required

The role of the site in an Ethernet connection

Enum"A-END""B-END""MULTI-POINT"
sites[].​addressobject(AddressIdentifier)required

Address identifier for location including type of identifier.

sites[].​address.​idstringrequired

Address identifier of provided type e.g. UPRN

Example: "200004033694"
sites[].​address.​typestringrequired

Type of addressId provided e.g. UPRN

Example: "UPRN"
sites[].​siteCharacteristicsArray of objects(Characteristic)>= 0 items
contractDetailsobject(ContractItem)required

A generic entity to capture the contract details of a product/service.

contractDetails.​contractLengthobject(ContractLength)required

A generic entity to capture the duration of a contract

contractDetails.​contractLength.​valueinteger>= 0required

The length of the contract

Example: 36
contractDetails.​contractLength.​unitstringrequired

The duration unit of the contract

Enum"MONTH""YEAR"
Example: "MONTH"
contractDetails.​billingFrequencystringrequired

The frequency the product/service will be invoiced by the supplier

Enum"MONTHLY""QUARTERLY""ANNUALLY"
contractDetails.​priceAlterationstring[ 0 .. 64 ] characters

A price override/promotion code available between the tenant and supplier

serviceArray of objects(Service)non-emptyrequired
service[].​serviceSpecificationobject(ServiceSpecification)required

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

service[].​serviceSpecification.​idstring[ 1 .. 50 ] charactersrequired

Unique identifier for this service specification (if available)

Example: "ftthl2r"
service[].​serviceCharacteristicArray of objects(Characteristic)>= 0 itemsrequired
service[].​serviceCharacteristic[].​namestring^[A-Z_]{5,50}required

Name of the object characteristic

Example: "END_USER_CPE"
service[].​serviceCharacteristic[].​valuestring[ 1 .. 50 ] charactersrequired

Value for this characteristic

Example: "Zyzel DX3301"
curl -i -X POST \
  https://api.provided_by_supplier.net/quote \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Conversation-ID: string' \
  -H 'X-Request-ID: string' \
  -d '{
    "id": 1,
    "externalIdentifier": "QUO-ETH-5001",
    "sites": [
      {
        "name": "Strategic Imperative Offices",
        "postcode": "TW184LG",
        "role": "A-END",
        "address": {
          "id": "200004033694",
          "type": "UPRN"
        },
        "siteCharacteristics": [
          {
            "name": "END_USER_CPE",
            "value": "Zyzel DX3301"
          }
        ]
      },
      {
        "name": "Strategic Imperative Offices",
        "postcode": "TW184LG",
        "role": "A-END",
        "address": {
          "id": "200004033694",
          "type": "UPRN"
        },
        "siteCharacteristics": [
          {
            "name": "END_USER_CPE",
            "value": "Zyzel DX3301"
          }
        ]
      }
    ],
    "contractDetails": {
      "contractLength": {
        "value": 36,
        "unit": "MONTH"
      },
      "billingFrequency": "MONTHLY",
      "priceAlteration": "string"
    },
    "service": [
      {
        "serviceSpecification": {
          "id": "ftthl2r"
        },
        "serviceCharacteristic": [
          {
            "name": "END_USER_CPE",
            "value": "Zyzel DX3301"
          }
        ]
      }
    ]
  }'

Responses

Request successful - quote details 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
One of:

A generic entity to capture the available quote detail response.

idstring>= 1^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...required

A unique identifier of the quote (generated by the Fibre Cafe)

Example: "3456cf7d-4471-42e4-a5be-c24ed58a7aa6"
externalIdentifierstring[ 0 .. 64 ] characters

A unique identifier of the quote as provided by the tenant

Example: "QUO-ETH-5001"
sitesArray of objects(Site)>= 2 itemsrequired
sites[].​namestringrequired

The name of the site

Example: "Strategic Imperative Offices"
sites[].​postcodestring[ 1 .. 12 ] charactersrequired

Postal code

Example: "TW184LG"
sites[].​rolestring(SiteRole)required

The role of the site in an Ethernet connection

Enum"A-END""B-END""MULTI-POINT"
sites[].​addressobject(AddressIdentifier)required

Address identifier for location including type of identifier.

sites[].​address.​idstringrequired

Address identifier of provided type e.g. UPRN

Example: "200004033694"
sites[].​address.​typestringrequired

Type of addressId provided e.g. UPRN

Example: "UPRN"
sites[].​siteCharacteristicsArray of objects(Characteristic)>= 0 items
contractDetailsobject(ContractItem)required

A generic entity to capture the contract details of a product/service.

contractDetails.​contractLengthobject(ContractLength)required

A generic entity to capture the duration of a contract

contractDetails.​contractLength.​valueinteger>= 0required

The length of the contract

Example: 36
contractDetails.​contractLength.​unitstringrequired

The duration unit of the contract

Enum"MONTH""YEAR"
Example: "MONTH"
contractDetails.​billingFrequencystringrequired

The frequency the product/service will be invoiced by the supplier

Enum"MONTHLY""QUARTERLY""ANNUALLY"
contractDetails.​priceAlterationstring[ 0 .. 64 ] characters

A price override/promotion code available between the tenant and supplier

serviceArray of objects(Service)non-emptyrequired
service[].​serviceSpecificationobject(ServiceSpecification)required

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

service[].​serviceSpecification.​idstring[ 1 .. 50 ] charactersrequired

Unique identifier for this service specification (if available)

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

Name of the service

Example: "FTTH"
service[].​serviceCharacteristicArray of objects(Characteristic)>= 0 itemsrequired
service[].​serviceCharacteristic[].​namestring^[A-Z_]{5,50}required

Name of the object characteristic

Example: "END_USER_CPE"
service[].​serviceCharacteristic[].​valuestring[ 1 .. 50 ] charactersrequired

Value for this characteristic

Example: "Zyzel DX3301"
supplierQuoteIdstring[ 0 .. 64 ] charactersrequired

A unique identifier generated by the supplier for the quote item within the overall quote entity, as provided by the supplier

Example: "SUPP2-QUO-ETH-5001"
estimatebooleanrequired

Set to true if the quote provided is considered an advisory quote or estimate and final quote provided as part of the order process.

Example: false
createdstring(date-time)required

Date/time when the quote was created

Example: "2022-01-01T09:09:33.001Z"
validForstring(date-time)required

Date/time the quote remains valid

Example: "2022-01-01T09:45:39.001Z"
quotePricesArray of objects(QuotePrices)>= 0 itemsrequired

The price of the quote as provided by the supplier for a product/service.

quotePrices[].​productstring<= 100 charactersrequired

The product or add-on the price relates to, as defined by the supplier

quotePrices[].​productLocationstring<= 64 characters

The location the product is served from, as defined by the supplier. Only provided if it impacts price.

quotePrices[].​priceTypestringrequired

The type of price

Enum"ONE_OFF""RECURRING"
quotePrices[].​pricePeriodstring

The period the price applies

Enum"ONCE""DAILY""WEEKLY""MONTHLY""QUARTERLY""ANNUALLY"
quotePrices[].​priceobject(Price)

A generic entity to capture the price of a product/service.

quotePrices[].​descriptionstring[ 0 .. 64 ] characters

A description of the price

Response
application/json
{ "id": "3456cf7d-4471-42e4-a5be-c24ed58a7aa6", "externalIdentifier": "QUO-ETH-5001", "sites": [ {}, {} ], "contractDetails": { "contractLength": {}, "billingFrequency": "MONTHLY", "priceAlteration": "string" }, "service": [ {} ], "supplierQuoteId": "SUPP2-QUO-ETH-5001", "estimate": false, "created": "2022-01-01T09:09:33.001Z", "validFor": "2022-01-01T09:45:39.001Z", "quotePrices": [ {} ] }

Appointment Management

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

This follows the concepts in TMF646 - Appointment API.

Operations

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