KCI (Keep Customer Informed) updates are sent from a supplier to the tenant to provide order updates. For example, updates about an inflight order for a new service may include order state changes, delays and requests for information. A KCI update may represent an unsolicited cease from the supplier.
Fibre Cafe : Tenant Updates API (1.14)
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'.
Where suppliers need to send updates back to the tenant (KCIs - Keep Customer Informed) then this API will be called. Each tenant is responsible for implementing this API definition for the Fibre Cage to call.
Examples of KCIs are where the order/problem state and/or order/problem fields have changed or to provide feedback on any requests e.g. amendment/cancellation submitted on the Tenant API asynchronously.
Unsolicited ceases can also be sent via this API - these will be represented as a new order in the system that follows a similar but reduced order flow. __
© 2022-2026 Strategic Imperatives
Unique identifier to link request and response events across the Fibre Cafe gateway - this will change with each request
- ProvideServiceOrderUpdate
- CeaseServiceOrderUpdate
- ModifyServiceOrderUpdate
- UnsolicitedCeaseServiceOrderUpdate
- ProvideEthernetOrderUpdate
- ServiceTestUpdate
- ServiceProblemUpdate
An update for a provide service order
KCI update - informational, no action required.
Unique identifier for this update (UUID)
System identifier for a supplier on the Fibre Cafe that is associated with this order
Date/time when supplier issued this update
Date/time when Fibre Cafe received this update
Date/time when Fibre Cafe delivered this update to the tenant API
The supplier has added these note(s) about the order relating to this KCI
The type of update - informational
Represents an informational update from the supplier - these are given a reason type to aid with any process/flows on the tenant system.
Type of informational update:
- CREATED : Entity has been created by supplier (unsolicited cease)
- ACKNOWLEDGED : Supplier has acknowledged receipt (KCI1)
- COMMITTED : Supplier has committed to fulfillment (KCI2)
- DELAY : There is a problem causing a delay
- RESUMED : The problem causing the delay has been resolved without impact on target date
- REAPPOINTED : Supplier has re-appointed (if not suitable then treat as a REAPPOINT)
- RESCHEDULED : Supplier makes an unsolicited change to the target date
- ADDITIONAL : Supplier has flagged that additional information is available
- RESUBMIT : The tenant needs to resubmit
- WARNING : Supplier has flagged a warning
- UPDATE : Supplier has made a generic update not covered by other types
- AMENDED : Supplier has accepted and applied the requested amendment
- CANCELLED : Supplier has accepted and applied the requested cancellation
- TERMINATED : Supplier has terminated this request without fulfilling it
- COMPLETED : Supplier has completed the request (KCI3)
Code representing problem - these may be sent as informational or action required updates depending on whether the tenant is required to resolve the problem.
- ACCESS_ISSUE
- ACTIVATION_FAILED
- ADDITIONAL_WORK
- APPOINTMENT_NOT_REQUIRED
- CAPACITY_ISSUE
- COST_ISSUE
- CUSTOMER_CHANGED_MIND
- FAULT_AT_NODE
- FAULT_AT_ONT
- FAULT_AT_POP
- INFORMATION_REQUIRED
- INSTALL_FAILED
- INVALID_REQUEST
- LINKED_ORDER_ISSUE
- NETWORK_ISSUE
- NETWORK_UNAVAILABLE
- NOT_IMPLEMENTED
- NO_LONGER_REQUIRED
- OTHER
- PARTIAL_INSTALL
- PLANNING_ISSUE
- PROPERTY_UNOCCUPIED
- REJECTION
- ROUTER_NOT_AVAILABLE
- SITE_UNSAFE
- SURVEY_REQUIRED
- TELECARE_ISSUE
- TIMED_OUT
- UNABLE_TO_ATTEND
- UNKNOWN_FAULT
- WAYLEAVE_ISSUE
Textual information about this update - e.g. reason for the delay
Supplier's reason or problem code - where available
The primary entity type this KCI regards (will be supplied in entity field) - provide service order
Represents an order for new service(s) at a particular address.
Unique reference identifying this service order (order number - generated by Fibre Cafe)
The type of order - new, (re)start, takeover, transfer or swap
System identifier for a supplier on the Fibre Cafe that is associated with this order
Order reference generated by the supplier once acknowledged (for information only)
Order lifecycle adapted from TMF641 - order update events (KCIs) will be forwarded to the tenant as the order transitions from one state to the other.
Address identifier for location including type of identifier.
Address identifier of given type
Type of address identifier
Order for a service that the supplier provides at the selected address.
Details of a service the supplier provides at the selected address.
List of service characteristics for the service order item - e.g. for FTTH service
- AUTHENTICATION_AGENT (DHCPRelayAgent, PPPIntermediateAgent, None)
- REMOTE_ID
- LINE_PROFILE
- SERVICE_ID
- ENNI_ID
- SERVICE_VLAN_ID
- CUSTOMER_VLAN_ID
- CABLE_LINK_ID
- CIRCUIT_REFERENCE
- SITE_NAME
- SITE_LOCATION
- ONT_REFERENCE
- ONT_SERIAL_NUMBER
- ONT_PORT
Represents a contact available at the given address - primary contact must be provided.
Contact email address (if available)
Represents a contact available at the given address - primary contact must be provided.
Unique identifier for the reserved appointment (if applicable)
Appointment reference generated by the supplier for a re-appointed timeslot (only returned if applicable)
Represents a re-appointed timeslot from the supplier (only returned if applicable)
Where not appointed, allows a date to be requested for the service activation.
When the supplier first commits to fulfil the order this field will contain the expected completion date. Once set, this value cannot change.
The current expected completion date. This can be different to the committedDate if the order has been delayed for any reason, and can change possibly multiple times.
Engineer tasks to be performed at installation appointment.
- INSTALL_ROUTER
- TEST_SINGLE_DEVICE
- ADDITIONAL_CABLING
- TEST_MULTIPLE_DEVICES
- INSTALL_BBU
- VOICE_REINJECTION
- PROVE_IP_VOICE
- ENSURE_TELECARE
Hazard information about the site where the service will be installed
Information about restrictions on the site where the service will be installed
Any notes about the order. This may include additional information that is required
Date/time when the order was created
Date/time when the order was last updated
Represents a previous request to amend an existing inflight provide order. Any value(s) supplied will replace the existing value.
An amendment request has the following states:
- PENDING : Supplier has received the amendment request and will accept or reject it shortly
- FAILED_TO_SEND : The Fibre Cafe was unable to send the order amendment request
- COMPLETED : The amendment request has been accepted by the supplier and applied to the order
- REJECTED : The amendment request has been rejected by the supplier
Represents a request from the tenant to cancel an inflight order.
Cancellation requests have the following states:
- PENDING : Supplier has received the cancellation request and will accept or reject it shortly
- FAILED_TO_SEND : The Fibre Cafe was unable to send the order cancellation request
- COMPLETED : The cancellation request has been accepted by the supplier and the order cancelled
- REJECTED : The cancellation request has been rejected by the supplier
- https://api.provided_by_tenant.net/kcis/kcis
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.provided_by_tenant.net/kcis/kcis \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-Conversation-ID: string' \
-H 'X-Request-ID: string' \
-d '{
"entityType": "PROVIDE_ORDER",
"entity": {
"id": 123,
"orderType": "NEW",
"supplier": "DUMMY_SUPPLIER",
"supplierOrderNumber": "A123X",
"status": "PENDING_CANCELLATION",
"address": {
"id": "A00000031882",
"type": [
"UPRN",
"NAD",
"ROBT",
"DistrictCode"
],
"additionalIdentifiers": [
{
"id": "A00000031882",
"type": [
"UPRN",
"NAD",
"ROBT",
"DistrictCode"
]
}
]
},
"serviceOrderItem": {
"serviceSpecification": {
"id": "ftthl2r",
"name": "FTTH"
},
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"value": "1G_1G"
}
]
},
"primaryContact": {
"name": "John Smith",
"email": "john@smith.com",
"phoneNumber": "01234 567890"
},
"secondaryContact": {
"name": "John Smith",
"email": "john@smith.com",
"phoneNumber": "01234 567890"
},
"appointmentReservationId": 345,
"appointmentSupplierReference": "123456543",
"appointmentTimeslot": {
"timeslotStartDateTime": "2022-01-10T09:00:00.000Z",
"timeslotEndDateTime": "2022-01-10T13:00:00.000Z"
},
"requestedCompletionDate": "2022-01-10",
"committedDate": "2022-01-01T09:09:33.001Z",
"targetDate": "2022-01-01T09:09:33.001Z",
"engineerTasks": [
"TEST_SINGLE_DEVICE"
],
"hazards": "Hazardous materials stored on site",
"onSiteRestrictions": "Restricted access",
"notes": "Lorem ipsum dolor sit amet...",
"created": "2022-01-01T09:09:33.001Z",
"updated": "2022-01-01T09:45:39.001Z",
"serviceOrderAmendment": {
"id": 345,
"orderId": 123,
"appointmentReservationId": 234,
"status": "REJECTED"
},
"serviceOrderCancellation": {
"id": 234,
"orderId": 123,
"supplierReference": "A123X-1",
"reasonCode": "CUSTOMER_CHANGED_MIND",
"text": "Delivery too long",
"status": "REJECTED"
}
},
"id": "3456cf7d-4471-42e4-a5be-c24ed58a7aa6",
"supplier": "SUPPLIER1",
"sequenceNumber": 1,
"issuedOn": "2022-01-10T09:00:00.000Z",
"receivedOn": "2022-01-10T09:00:00.000Z",
"deliveredOn": "2022-01-10T09:00:00.000Z",
"supplierNotes": [
{
"note": "Lorem ipsum dolor sit amet...",
"type": [
"Engineer Note",
"Site Visit Note",
"Customer Update"
],
"created": "2022-01-01T09:09:33.001Z"
}
],
"updateType": "INFORMATIONAL",
"information": {
"type": "CREATED",
"code": "NETWORK_ISSUE",
"text": "Resolving network issue",
"supplierCode": "313",
"supplierCodes": [
"313"
]
}
}'No content